Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
products:aruno:exp5 [2020/05/24 15:55] alexnikproducts:aruno:exp5 [2020/08/27 16:16] (текущий) alexnik
Строка 26: Строка 26:
  
 void setup() {  void setup() { 
- pinMode(BUTTON, INPUT); +  pinMode(BUTTON, INPUT); 
- pinMode(LED, OUTPUT);  +  pinMode(LED, OUTPUT);  
-}+ }
  
 void loop() { void loop() {
Строка 36: Строка 36:
       if (switchState == HIGH) {       if (switchState == HIGH) {
         lightsOn = !lightsOn;         lightsOn = !lightsOn;
-      +       
-    +     
-    if(lightsOn) {+   if(lightsOn) {
       digitalWrite(LED, HIGH); // зажигаем светодиод       digitalWrite(LED, HIGH); // зажигаем светодиод
-    +     
     else {     else {
       digitalWrite(LED, LOW); // гасим светодиод       digitalWrite(LED, LOW); // гасим светодиод
-    +     
- }+  }
 </file> </file>
  
Строка 58: Строка 58:
 Если значение переменной **switchState** не равно значению переменной **oldSwitchState** (была нажата кнопка), то мы перезаписываем старое значение на новое и переходим к проверке того, какой именно поступает текущий сигнал. Если сигнал соответствует **HIGH**, то значение переменной **lightsOn** необходимо изменить на противоположное, поскольку была нажата кнопка.\\ Если значение переменной **switchState** не равно значению переменной **oldSwitchState** (была нажата кнопка), то мы перезаписываем старое значение на новое и переходим к проверке того, какой именно поступает текущий сигнал. Если сигнал соответствует **HIGH**, то значение переменной **lightsOn** необходимо изменить на противоположное, поскольку была нажата кнопка.\\
 Обратите внимание, что эта проверка происходит только если выполняется условие предыдущей проверки.\\ Обратите внимание, что эта проверка происходит только если выполняется условие предыдущей проверки.\\
-третий оператор **if** проверяет значение переменной ''lightsOn'', если значение равно **true** то выполняется выражение ''digitalWrite(LED, HIGH);'', светодиод загорается, и будет гореть до тех пор пока не будет нажата кнопка, после этого значение переменной измениться на **false**, и выполнится выражение ''digitalWrite(LED, LOW);'', и светодиод погаснет. +третий оператор **if** проверяет значение переменной ''lightsOn'', если значение равно **true** то выполняется выражение ''digitalWrite(LED, HIGH);'', светодиод загорается, и будет гореть до тех пор пока не будет нажата кнопка, после этого значение переменной измениться на **false**, и выполнится выражение ''digitalWrite(LED, LOW);'', и светодиод погаснет.\\
- +
-==== Дополнительные задания ==== +
- +
-<WRAP center round tip 60%> +
-Модифицируй программу так, чтобы светодиод зажигался или выключался только после двух нажатий. Подсказка: потребуется переменная для хранения количества нажатий. +
-</WRAP>+
  
 +Теперь загрузим скетч в контроллер, но по какой то причине кнопка не всегда срабатывает так как мы задумывали.\\
 +Данную проблему и ее решение рассмотрим в следующем эксперименте.