// номер пина кнопки #define BUTTON_PIN 12 // номер пина светодиода #define LED_PIN A1 // номер пина реле #define RELAY_PIN 4 // номер пина датчика уровня шума #define NOISE_PIN A4 // порог срабатывания датчика шума #define SENSITIVITY_NOISE 200 // состояния системы enum State { OFF, ON, }; // объявлеем переменную state State state; void setup() { // система выключена state = OFF; pinMode(LED_PIN, OUTPUT); pinMode(RELAY_PIN, OUTPUT); } void loop() { // считываем текущее показание уровня шума // считываем текущее состояние кнопки int valNoise = analogRead(NOISE_PIN); bool valButton = digitalRead(BUTTON_PIN); // если показания шума превышают норму или нажата кнопка // и система была выключена if ((valNoise > SENSITIVITY_NOISE || !valButton) && state == OFF) { // включаем реле и переводим систему в режим «ON» digitalWrite(RELAY_PIN, HIGH); digitalWrite(LED_PIN, HIGH); state = ON; delay(500); } else if ((valNoise > SENSITIVITY_NOISE || !valButton) && state == ON) { // если показания шума превышают норму или нажата кнопка // и система была выключена // выключаем реле и переводим систему в режим «OFF» digitalWrite(RELAY_PIN, LOW); digitalWrite(LED_PIN, LOW); state = OFF; delay(500); } }