#define LCD_UPDATE_TIME 40 // интервал переключения между экранами, сек
#define LCD_SCREENS 4 // количество экранов с информацией
...
loop()
{
static byte screenPage = 1; // счетчик текущего номера экрана
static unsigned long prevScreenUpdateTime;
...
if (millis() - prevScreenUpdateTime > LCD_UPDATE_TIME * 1000) // кнопка не нажата более N сек
{
screenPage++;
if (screenPage > LCD_SCREENS) screenPage = 1;
my_clear(); //функция очистки экрана
switch (screenPage)
{
case 1:
{
.....
break;
}
case 2:
{
.....
break;
}
{
}