// даём разумное имя для пинов, к которым подключены кнопки #define BUTTON_PIN_YELLOW A4 // была ли жёлтая кнопка отпущена? boolean buttonStateYellow = true; // состояние жёлтого светодиода boolean ledStateYellow = false; void setup() { // открываем последовательный порт на пинах 1 и 0 // к которому подключён модуль RS-485 Serial1.begin(9600); // 5 пин в режим выхода pinMode(5, OUTPUT); // подаём высокий уровень на 5 пин // значит устройство будет передавать данные digitalWrite(5, HIGH); } void loop() { // отпущена ли кнопка прямо сейчас... boolean buttonStateNowYellow = digitalRead(BUTTON_PIN_YELLOW); // если кнопка была отпущена и не отпущена сейчас if (buttonStateYellow && !buttonStateNowYellow) { delay(10); // считываем сигнал снова buttonStateNowYellow = digitalRead(BUTTON_PIN_YELLOW); if (!buttonStateNowYellow) { // если она всё ещё нажата // значит это клик! Инвертируем сигнал светодиода ledStateYellow = !ledStateYellow; if (ledStateYellow) { // посылаем на модули RS-485 символ «a» Serial1.print('a'); } else { // посылаем на модули RS-485 символ «b» Serial1.print('b'); } } } // запоминаем последнее состояние кнопки для новой итерации buttonStateYellow = buttonStateNowYellow; }