#define BUTTON_PIN 34
// Средние значения кнопок
const int MUTE = 2400;
const int PHONE = 2700;
const int SOURCE = 2900;
const int PREV = 3100;
const int NEXT = 3250;
const int VOL_DOWN = 3450;
const int VOL_UP = 3600;
const int TOLERANCE = 40;
String getButton(int adc) {
if (abs(adc - MUTE) <= TOLERANCE) return "MUTE";
if (abs(adc - PHONE) <= TOLERANCE) return "PHONE";
if (abs(adc - SOURCE) <= TOLERANCE) return "SOURCE";
if (abs(adc - PREV) <= TOLERANCE) return "PREV";
if (abs(adc - NEXT) <= TOLERANCE) return "NEXT";
if (abs(adc - VOL_DOWN) <= TOLERANCE) return "VOL-";
if (abs(adc - VOL_UP) <= TOLERANCE) return "VOL+";
return "";
}
void setup() {
Serial.begin(115200);
// ADC ESP32
analogReadResolution(12);
}
void loop() {
int adc = analogRead(BUTTON_PIN);
String button = getButton(adc);
if (button != "") {
Serial.print("Нажата: ");
Serial.print(button);
Serial.print(" | ADC: ");
Serial.println(adc);
}
else if (adc < 100) {
Serial.println("Отпущено");
}
delay(100);
}