#include <LiquidCrystal.h>
LiquidCrystal lcd(0, 1, 2, 3, 4, 5);
int fader0map;
int fader1map;
int fader2map;
int fader3map;
int actualEnc;
int lastEnc;
int CH1Pan = 0;
int CH2Pan = 0;
int CH3Pan = 0;
int CH4Pan = 0;
int CH1gain = -15;
int CH2gain = -15;
int CH3gain = -15;
int CH4gain = -15;
bool page1 = true;
bool written = false;
bool pageSw = false;
bool encBtn = false;
bool encIsAtPan = true;
bool sel1 = false;
bool sel2 = false;
bool sel3 = false;
bool sel4 = false;
int selectedCH = 1;
const int analogPin = A15;
const int ledCount = 10;
int ledPins1[] = {
22, 23, 24, 25, 26, 27, 28, 29, 30, 31
};
void setup() {
lcd.begin(20, 4);
lcd.setCursor(0, 0);
lcd.print("Prototipo criado por");
lcd.setCursor(0, 1);
lcd.print("Adriano Emiclys"); // Discord: AntonioMontana
delay(1500);
lcd.setCursor(0, 0);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print(" ");
delay(100);
for (int thisLed = 0; thisLed < ledCount; thisLed++) {
pinMode(ledPins1[thisLed], OUTPUT);
}
lcd.setCursor(0, 0);
lcd.print("Fader 1: ");
lcd.setCursor(0, 1);
lcd.print("Fader 2: ");
lcd.setCursor(0, 2);
lcd.print("Fader 3: ");
lcd.setCursor(0, 3);
lcd.print("Fader 4: ");
lcd.setCursor(15, 4);
lcd.print("Pg: 1");
pinMode(22, HIGH);
pinMode(23, HIGH);
pinMode(24, HIGH);
pinMode(25, HIGH);
pinMode(26, HIGH);
pinMode(27, HIGH);
pinMode(28, HIGH);
pinMode(29, HIGH);
pinMode(30, HIGH);
pinMode(31, HIGH);
pinMode(13, INPUT);
pinMode(12, INPUT);
pinMode(11, INPUT);
pinMode(10, INPUT);
pinMode(9, INPUT);
pinMode(8, INPUT);
pinMode(7, INPUT);
pinMode(6, INPUT);
lastEnc = digitalRead(7);
}
void loop() {
fader0map = map(analogRead(A15), 0, 1023, -90, 10);
fader1map = map(analogRead(A14), 0, 1023, -90, 10);
fader2map = map(analogRead(A13), 0, 1023, -90, 10);
fader3map = map(analogRead(A12), 0, 1023, -90, 10);
if (encBtn == true) {
} else {
if (digitalRead(8) == HIGH) {
encBtn = true;
if (encIsAtPan == true) {
encIsAtPan = false;
} else {
encIsAtPan = true;
}
}
if (digitalRead(8) == LOW) {
encBtn = false;
}
if (pageSw == true) {
} else {
if (digitalRead(13) == HIGH) {
pageSw = true;
lcd.setCursor(0, 0);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 2);
lcd.print(" ");
lcd.setCursor(0, 3);
lcd.print(" ");
page1 = !page1;
if (page1 == false) {
if (selectedCH == 1) {
lcd.setCursor(0, 0);
lcd.print("CH" + String(selectedCH));
lcd.setCursor(4, 0);
lcd.print("BATERA");
lcd.setCursor(0, 1);
lcd.print("Gain: ");
lcd.setCursor(0, 2);
lcd.print("Pan: ");
lcd.setCursor(15, 4);
lcd.print("Pg: 2");
}
if (selectedCH == 2) {
lcd.setCursor(0, 0);
lcd.print("CH" + String(selectedCH));
lcd.setCursor(15, 4);
lcd.print("Pg: 2");
lcd.setCursor(4, 0);
lcd.print("BASS");
lcd.setCursor(0, 2);
lcd.print("Pan: ");
lcd.setCursor(0, 1);
lcd.print("Gain: ");
}
if (selectedCH == 3) {
lcd.setCursor(0, 0);
lcd.print("CH" + String(selectedCH));
lcd.setCursor(15, 4);
lcd.print("Pg: 2");
lcd.setCursor(4, 0);
lcd.print("GTR");
lcd.setCursor(0, 2);
lcd.print("Pan: ");
lcd.setCursor(0, 1);
lcd.print("Gain: ");
}
if (selectedCH == 4) {
lcd.setCursor(0, 0);
lcd.print("CH" + String(selectedCH));
lcd.setCursor(15, 4);
lcd.print("Pg: 2");
lcd.setCursor(4, 0);
lcd.print("VOZ");
lcd.setCursor(0, 2);
lcd.print("Pan: ");
lcd.setCursor(0, 1);
lcd.print("Gain: ");
}
}
if (page1 == true) {
lcd.begin(20, 4);
lcd.setCursor(0, 0);
lcd.print("Fader 1: ");
lcd.setCursor(0, 1);
lcd.print("Fader 2: ");
lcd.setCursor(0, 2);
lcd.print("Fader 3: ");
lcd.setCursor(0, 3);
lcd.print("Fader 4: ");
lcd.setCursor(15, 4);
lcd.print("Pg: 1");
}
}
}
if (digitalRead(13) == LOW) {
pageSw = false;
}
// Selecionar canal 1:
if (sel1 == true) {
} else {
if (digitalRead(12) == HIGH) {
sel1 = true;
selectedCH = 1;
written = false;
}
}
if (digitalRead(12) == LOW) {
sel1 = false;
}
// Selecionar canal 2:
if (sel2 == true) {
} else {
if (digitalRead(11) == HIGH) {
sel2 = true;
selectedCH = 2;
written = false;
}
}
if (digitalRead(11) == LOW) {
sel2 = false;
}
// Selecionar canal 3:
if (sel3 == true) {
} else {
if (digitalRead(10) == HIGH) {
sel3 = true;
selectedCH = 3;
written = false;
}
}
if (digitalRead(10) == LOW) {
sel3 = false;
}
// Selecionar canal 4:
if (sel4 == true) {
} else {
if (digitalRead(9) == HIGH) {
sel4 = true;
selectedCH = 4;
written = false;
}
}
if (digitalRead(9) == LOW) {
sel4 = false;
}
if (page1 == true) {
if (fader0map == -90) {
lcd.setCursor(9, 0);
lcd.print("-inf ");
} else {
lcd.setCursor(9, 0);
lcd.print(fader0map + String("dB "));
}
if (fader1map == -90) {
lcd.setCursor(9, 1);
lcd.print("-inf ");
} else {
lcd.setCursor(9, 1);
lcd.print(fader1map + String("dB "));
}
if (fader2map == -90) {
lcd.setCursor(9, 2);
lcd.print("-inf ");
} else {
lcd.setCursor(9, 2);
lcd.print(fader2map + String("dB "));
}
if ((fader3map <= -10) && (fader3map >= -89)) {
lcd.setCursor(9, 3);
lcd.print(fader3map + String("dB "));
} else {
if (fader3map > -9) {
lcd.setCursor(9, 3);
lcd.print(fader3map + String("dB "));
}
if (fader3map == -90) {
lcd.setCursor(9, 3);
lcd.print("-inf ");
}
}
} else {
// Página 2:
int sensorReading = analogRead(analogPin);
int ledLevel = map(sensorReading, 0, 1023, 0, ledCount);
for (int thisLed = 0; thisLed < ledCount; thisLed++) {
if (thisLed < ledLevel) {
digitalWrite(ledPins1[thisLed], HIGH);
}
else {
digitalWrite(ledPins1[thisLed], LOW);
}
}
lcd.setCursor(2, 0);
lcd.print(selectedCH);
lcd.setCursor(4, 0);
if (selectedCH == 1) {
if (written == true) {
} else {
lcd.print(" ");
lcd.setCursor(4, 0);
lcd.print("BATERA");
lcd.setCursor(0, 1);
lcd.print("Gain: ");
lcd.setCursor(0, 2);
lcd.print("Pan: " + String(CH1Pan));
written = true;
}
if (CH1gain >= 0) {
lcd.setCursor(6, 1);
lcd.print("+" + String(CH1gain) + String("dB "));
} else {
lcd.setCursor(6, 1);
lcd.print(CH1gain + String("dB "));
}
if (CH1Pan <= -101) {
CH1Pan = -100;
}
if (CH1Pan >= 101) {
CH1Pan = 100;
}
if (CH1gain <= -16) {
CH1gain = -15;
}
if (CH1gain >= 61) {
CH1gain = 60;
}
if (encIsAtPan == false) {
actualEnc = digitalRead(7);
if (actualEnc != lastEnc) {
if (digitalRead(6) != actualEnc) {
CH1gain++;
lastEnc = digitalRead(7);
} else {
CH1gain--;
lastEnc = digitalRead(7);
}
}
} else {
lcd.setCursor(6, 2);
lcd.print(CH1Pan + String(" "));
actualEnc = digitalRead(7);
if (actualEnc != lastEnc) {
if (digitalRead(6) != actualEnc) {
lastEnc = digitalRead(7);
CH1Pan++;
} else {
CH1Pan--;
lastEnc = digitalRead(7);
}
}
}
}
if (selectedCH == 2) {
if (written == true) {
} else {
lcd.print(" ");
lcd.setCursor(4, 0);
lcd.print("BASS");
lcd.setCursor(0, 1);
lcd.print("Gain: ");
written = true;
}
if (CH2gain >= 0) {
lcd.setCursor(6, 1);
lcd.print("+" + String(CH2gain) + String("dB "));
} else {
lcd.setCursor(6, 1);
lcd.print(CH2gain + String("dB "));
}
if (CH2gain <= -16) {
CH2gain = -15;
}
if (CH2gain >= 61) {
CH2gain = 60;
}
actualEnc = digitalRead(7);
if (actualEnc != lastEnc) {
if (digitalRead(6) != actualEnc) {
CH2gain++;
lastEnc = digitalRead(7);
} else {
CH2gain--;
lastEnc = digitalRead(7);
}
}
}
if (selectedCH == 3) {
if (written == true) {
} else {
lcd.print(" ");
lcd.setCursor(4, 0);
lcd.print("GTR");
lcd.setCursor(0, 1);
lcd.print("Gain: ");
written = true;
}
if (CH3gain >= 0) {
lcd.setCursor(6, 1);
lcd.print("+" + String(CH3gain) + String("dB "));
} else {
lcd.setCursor(6, 1);
lcd.print(CH3gain + String("dB "));
}
if (CH3gain <= -16) {
CH3gain = -15;
}
if (CH3gain >= 61) {
CH3gain = 60;
}
actualEnc = digitalRead(7);
if (actualEnc != lastEnc) {
if (digitalRead(6) != actualEnc) {
CH3gain++;
lastEnc = digitalRead(7);
} else {
CH3gain--;
lastEnc = digitalRead(7);
}
}
}
if (selectedCH == 4) {
if (written == true) {
} else {
lcd.print(" ");
lcd.setCursor(4, 0);
lcd.print("VOZ");
lcd.setCursor(0, 1);
lcd.print("Gain: ");
written = true;
}
if (CH4gain >= 0) {
lcd.setCursor(6, 1);
lcd.print("+" + String(CH4gain) + String("dB "));
} else {
lcd.setCursor(6, 1);
lcd.print(CH4gain + String("dB "));
}
if (CH4gain <= -16) {
CH4gain = -15;
}
if (CH4gain >= 61) {
CH4gain = 60;
}
actualEnc = digitalRead(7);
if (actualEnc != lastEnc) {
if (digitalRead(6) != actualEnc) {
CH4gain++;
lastEnc = digitalRead(7);
} else {
CH4gain--;
lastEnc = digitalRead(7);
}
}
}
}
}
}