const int NUM_SLIDERS = 10;
const int analogInputs[NUM_SLIDERS] = {4, 5, 6, 7, 15, 16, 17, 18, 8, 3};
int analogSliderValues[NUM_SLIDERS];
int mappedSliderValues[NUM_SLIDERS];
void setup() {
for (int i = 0; i < NUM_SLIDERS; i++) {
pinMode(analogInputs[i], INPUT);
}
Serial.begin(9600);
}
void loop() {
updateSliderValues();
mapSliderValues(); // Map 4096 values to 1024 values, ESP -> Deej
sendSliderValues(); // Actually send data (all the time)
// printSliderValues(); // For debug
delay(10);
}
// This is for ESPs since the ADC measures between 0 and 4095,
// however, deej expects 0 to 1023.
void mapSliderValues() {
for (int i = 0; i < NUM_SLIDERS; i++) {
mappedSliderValues[i] = map(analogSliderValues[i], 0, 4095, 0, 1023);
}
}
void updateSliderValues() {
for (int i = 0; i < NUM_SLIDERS; i++) {
analogSliderValues[i] = analogRead(analogInputs[i]);
}
}
void sendSliderValues() {
String builtString = String("");
for (int i = 0; i < NUM_SLIDERS; i++) {
builtString += String((int)mappedSliderValues[i]);
if (i < NUM_SLIDERS - 1) {
builtString += String("|");
}
}
Serial.println(builtString);
}
void printSliderValues() {
for (int i = 0; i < NUM_SLIDERS; i++) {
String printedString = String("Slider #") + String(i + 1) + String(": ") + String(analogSliderValues[i]) + String(" mV");
Serial.write(printedString.c_str());
if (i < NUM_SLIDERS - 1) {
Serial.write(" | ");
} else {
Serial.write("\n");
}
}
}