Загрузка данных


#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);
}