Помогите с прошивкой для Ардуино!
- Войдите на сайт для отправки комментариев
Чт, 08/02/2018 - 20:43
Здравствуйте! Помогите, пожалуйста, с прошивкой для Arduino Nano. Суть прошивки такова: считается время в часах, минутах и секундах. При нажатии на кнопки but_hours и but_minutes одновременно флажок становится противоположен сам себе. Если этот флаг (flag) равен 1, то нажатием кнопки but_hours мы можем увеличивать часы на единицу или нажатием кнопки but_minutes увеличиваем минуты на единицу. Проблема заключается в том, что я нажимаю кнопки и ничего не происходит. Помогите, пожалуйста!
Вот скетч:
#include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); // Устанавливаем какой дисплей unsigned long last_time; int sec; int minutes; int hours; int but_hours; int but_minutes; int flag; void setup() { lcd.init(); // инициализируем дисплей lcd.backlight(); // Включаем подсветку дисплея lcd.setCursor(0, 0); // Устанавливаем курсор pinMode(3, INPUT_PULLUP); pinMode(4, INPUT_PULLUP); } void loop() { if (millis() - last_time > 1000) { sec++; last_time = millis(); } if (sec == 60) { minutes++; lcd.clear(); sec = 0; } if (minutes == 60) { hours++; lcd.clear(); minutes = 0; } but_hours = !digitalRead(3); but_minutes = !digitalRead(4); if (but_hours == 1 && but_minutes == 1) { flag = !flag; } if (flag == 1) { if (but_hours == 1) { hours++; } if (but_minutes == 1) { minutes++; } } lcd.print(hours); lcd.print(":"); lcd.print(minutes); lcd.print(":"); lcd.print(sec); lcd.setCursor(0, 0); }
Заранее СПАСИБО!!!
установите изначально (в сетапе) flag =1 и попробуйте поменять часы и минуты
Ок, но что значит "поменять часы и минуты"?
P. S. Изменил, но не помогло :(