Здравствуйте, написал небольшой код, где считываю данные с датчиков и вывожу их на lcd экран, потом добавил энкодер чтобы было удобно переключаться между датчиками, и тут появилась проблема в том что данные на экране не обновляются.
void setup() {
Serial.begin(9600);
Wire.begin();
lcd.init(); // Инициализация lcd
lcd.backlight(); // Включаем подсветку
lastStateCLK = digitalRead(CLK);
}
void loop() {
// Считываем текущее состояние CLK
currentStateCLK = digitalRead(CLK);
if (currentStateCLK != lastStateCLK && currentStateCLK == 1) {
if (digitalRead(DT) != currentStateCLK) {
value--;
lcd.clear();
} else {
value++;
lcd.clear();
}
if (value > 4 || value < -4) {
value = 0;
lcd.clear();
delay(1);
}
if (value == 0) {
//данные с первого датчика
}
if (value == -1 || value == 1) {
//данные со второго датчика
}
if (value == -2 || value == 2) {
//данные с третьего датчика
}
if (value == -3 || value == 3) {
//данные с четвертого датчика
delay(1);
}
if (value == -4 || value == 4) {
//данные с пятого датчика
}
delay(1);
}
}
// Запоминаем последнее состояние CLK
lastStateCLK = currentStateCLK;
delay(1);
}
``` может кто нибудь знает как решить данную проблему, Заранее спасибо!!!
Я подключил энкодер, при повороте энкодера влево или вправо выводятся данные с определенного датчика, допустим открываю датчик реального времени, у меня появляется время но секунды минуты и т.д. не обновляются потому что этого не дает сделать вот это условие if (currentStateCLK != lastStateCLK && currentStateCLK == 1) так как энкодер не меняет свое положение, тут получается я сравниваю текущее положение энкодера с предыдущим, если они не равны то значение value уменьшается или увеличивается смотря в какую сторону повернули энкодер и дальше отталкиваясь от значения value считываются значения с датчика, но больше считываний с датчика не происходит так как условие не дает и получается что время у меня стоит на месте, а хочется чтобы было видно как тикают секунды минуты и т.д.
думал сделать для каждого датчика отдельный цикл, чтобы он крутил до того момента пока энкодер не сменит свое положение, но не знаю какое придумать условие для выхода с этого цикла