Вопрос по коду

Этот код используется для включения и выключения Arduino, проблема в том, что я вообще не могу его понять. может кто-нибудь объяснить мне, как это работает?

New = digitalRead(button);
  if ( New!=old)
  {
    if ( New == HIGH ){
      if (LEDstatus == LOW)
    {  digitalWrite(LED,HIGH);
    LEDstatus = HIGH;
    }
    else 
    {
      digitalWrite(LED,LOW);
      LEDstatus=LOW;
    }
    }
    old=New;
  }

, 👍0

Обсуждение

Он не включает и не выключает Arduino. Он включает и выключает выходной контакт Arduino при нажатии кнопок., @Duncan C


1 ответ


Лучший ответ:

1

Сначала исправьте отступ:

New = digitalRead(button);
if ( New!=old) {                        // Если состояние кнопки изменилось
    if ( New == HIGH ) {                // Если кнопка сейчас находится в нажатом состоянии
        if (LEDstatus == LOW) {         // Если светодиод не горит
            digitalWrite(LED,HIGH);     // Включаем светодиод
            LEDstatus = HIGH;           // Запомним состояние светодиода для следующего раза
        } else {                        // Светодиод горел, поэтому выключите его
            digitalWrite(LED,LOW);
            LEDstatus=LOW;              // Запомним состояние светодиода для следующего раза
        }
    }
    old=New;
}

Это значительно упрощает понимание кода.

Он что-то делает только при нажатии кнопки (переходит в состояние ВЫСОКИЙ). Когда вы отпускаете кнопку, он ничего не делает.

Каждое нажатие кнопки меняет состояние светодиода.

если он был выключен, он включает его. Если он был включен, он его выключает.

,