Помогите с прошивкой для Ардуино!
- Войдите на сайт для отправки комментариев
Чт, 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. Изменил, но не помогло :(