Проблема с условиями
- Войдите на сайт для отправки комментариев
Чт, 06/08/2015 - 14:49
Пишу код инкубатора для ATmega8(Arduino).
Возникла проблема, что при нажатии button2 условие начинает выполняться циклично, хотя кнопка уже отжата. Помогите решить. Вот код:
#include <LiquidCrystal.h>
#define button1 8
#define button2 9
#define button3 10
uint8_t a = 0;
// инициализация пинов
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
lcd.print("Otl");
}
void loop() {
if (digitalRead(button2) == HIGH) {
if (a > 2) {
a = 0;
delay(100);
} else {
a++;
delay(100);
}
}
switch (a) {
case 0:
//Общий показ
lcd.setCursor(0, 1);
lcd.print("0");
break;
case 1:
//Температура
lcd.setCursor(0, 1);
lcd.print("1");
break;
case 2:
//Влажность
lcd.setCursor(0, 1);
lcd.print("2");
break;
/* case 3:
///Время переворота
break; */
}
}
Значение переменной а у Вас изменяется только если digitalRead(button2) == HIGH , если кнопка не нажата, то переменная а остается неизменной, оттого и цикличность.
Значение переменной а у Вас изменяется только если digitalRead(button2) == HIGH , если кнопка не нажата, то переменная а остается неизменной, оттого и цикличность.
можете пожалуйста кодом показать, как исправить
Например, скобку ("}") из 24 строки переместить сразу за 45 строкой.
Именно !
Хотя лучше было бы вникнуть... дело хозяйское.
Так там вникать особо и не во что. При нажатии увеличивается счётчик и в зависимости от счётчика выполняется действие. Конечно если нажать и держать, то будут проблемы, но для этого уже лучше использовать класс BUTTON от Клапауция999 и не париться.
Более того код абстрактный, ничего особенного не делает, задача озвучена вскользь, чего париться? ;)