#include "INHK_Pot3.h"
#include "Wave.h"
Potentiometer pot1(A0);
Potentiometer pot2(A1);
Potentiometer pot3(A2);
Potentiometer pot4(A3);
Potentiometer pot5(A4);
Potentiometer pot6(A5);
int resultingWave;
int amplitude1;
float frequency1;
int offset1 = 0;
int amplitude2;
float frequency2;
int offset2 = 0;
Wave carrierWave(100, 0.05);
Wave modulatorWave1(100, 1000);
Wave modulatorWave2(100, 0.05);
void setup() {
Serial.begin(115200); // Initialize serial communication
}
void loop() {
amplitude1 = pot1.readValue();
frequency1 = pot2.readValue();
offset1 = pot3.readValue();
// frequency1 = mapFloat(frequency1, 0, 255, 0.005, 0.5);
amplitude2 = pot4.readValue();
frequency2 = pot5.readValue();
offset2 = pot6.readValue();
frequency2 = mapFloat(frequency2, 0, 255, 0.005, 0.5);
// carrierWave.setAmplitude(amplitude1);
// carrierWave.setFrequency(frequency1);
// carrierWave.setOffset(offset1);
modulatorWave1.setAmplitude(amplitude1);
modulatorWave1.setFrequency(frequency1);
modulatorWave1.setOffset(offset1);
modulatorWave2.setAmplitude(amplitude2);
modulatorWave2.setFrequency(frequency2);
modulatorWave2.setOffset(offset2);
float mainWave = carrierWave.sineValue();
float modulator1 = modulatorWave1.squareValue();
float modulator2 = modulatorWave2.triangleValue();
resultingWave = (int) (mainWave + modulator1 + modulator2);
// Serial.print("mainWave: ");
// Serial.print(mainWave);
// Serial.print(" , ");
Serial.print("modulator1: ");
Serial.print(modulator1);
Serial.print(" , ");
Serial.print("modulator2: ");
Serial.print(modulator2);
// Serial.print(" , ");
// Serial.print("resultingWave: ");
// Serial.print(resultingWave);
Serial.println();
}
float mapFloat(float x, float in_min, float in_max, float out_min, float out_max) {
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}