Вообщем я создал вопрос где я говорил что инфа не обновлялась я нажимаю на кнопку появляется температура и всё и не в низ ни в верх не изменяется, так как места на дисплее мало под все данные я решил её изменят командой millis(); Почему не delay(2000); потому что она останавливает работу всего ардуино и вот эти 2 секунд ардуино тупо ничего не делает, мне бы подошло, но у меня много датчиков(будет) и мне нужна постоянная подача данных !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! без тормозов. (дальше идёт моя история читайте ниже) !!!!!!!!!!!! ПИШИТЕ ЕСЛИ НАДО ВИДЕО !!!!!! Код (C++): unsigned long timing; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! unsigned long timing1; unsigned long timing2; unsigned long timing3; unsigned long timing4; unsigned long timing5; #define PIN 3 #include <Wire.h> #include <LiquidCrystal_I2C.h> #include <TroykaDHT.h> #include "GyverButton.h" GButton butt1(PIN); DHT dht(A1, DHT22); LiquidCrystal_I2C lcd(0x27,20,4); // set the LCD address to 0x27 for a 16 chars and 2 line display // создаем свой символ и присваиваем ему имя "simvol" byte simvol[8] = { 0b01100, 0b10010, 0b10010, 0b01100, 0b00000, 0b00000, 0b00000, 0b00000 }; void setup() { lcd.init(); // initialize the lcd Serial.begin(9600); dht.begin(); lcd.backlight(); lcd.setCursor(0,1); lcd.print(" Smart"); lcd.backlight(); lcd.setCursor(0,0); lcd.print(" Maksim Grib"); delay(3000); lcd.clear(); } void loop(){ butt1.tick(); lcd.createChar(1, simvol); dht.read(); lcd.backlight(); lcd.setCursor(0,0); lcd.print(dht.getTemperatureC()); lcd.backlight(); lcd.setCursor(5,0); lcd.print(char(1)); lcd.backlight(); lcd.setCursor(0,1); lcd.print(dht.getHumidity()); lcd.backlight(); lcd.setCursor(5,1); lcd.print("%"); lcd.backlight(); lcd.setCursor(7,1); тип температура lcd.print("36.6C"); { вот я хочу изменять эти данные давления метры время и год число месяц что бы они каждые 2 секунды изменялись крч я писал 2 дня меня переделывал и не чего почти не добился вообщем оно не правильно как то работает например если не вставить этот код if (millis() - timing5 > 5000){ timing5 = millis(); lcd.clear(); то остаются старые данные вотак примерно вот типа это написано на экране: 765 данные начинают меняться и получается так 72М если его оставить экран иногда моргает весь и получается всякая дич* примерно так иногда так 765 или так 2M или вот так 72М иногда а вообще не чего не выводиться я не знаю уже что делать if (millis() - timing > 3000){ timing = millis(); lcd.backlight(); lcd.setCursor(13,1); lcd.print("765"); тип давление } if (millis() - timing5 > 5000){ timing5 = millis(); lcd.clear(); } if (millis() - timing1 > 5000){ timing1 = millis(); lcd.backlight(); lcd.setCursor(14,1); lcd.print("2M"); тип высота над уровнем моря } также и со временем и датой!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! { if (millis() - timing2 > 3000){ timing2 = millis(); lcd.backlight(); lcd.setCursor(6,0); lcd.print("2019:10:02"); тип год } if (millis() - timing4 > 5000){ timing4 = millis(); lcd.clear(); } if (millis() - timing3 > 5000){ timing3 = millis(); lcd.backlight(); lcd.setCursor(7,0); lcd.print("01:57:05"); тип время } } } }