#include <LiquidCrystal_I2C.h> // подключаем библу
#include <SPI.h>
#include <SD.h>
#include <GyverButton.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // адрес, столбцов, строк
GButton Up (2, HIGH_PULL); //Кнопка в верх
GButton Down (3, HIGH_PULL); //Кнопка в низ
GButton Midle (4, HIGH_PULL); //Центральная кнопка
GButton Right (5, HIGH_PULL); //Кнопка в право
GButton Left (6, HIGH_PULL); //Кнопка в лево
int LIST = 0 ; //переменная страниц
void setup() {
Serial.begin(9600);
lcd.init(); // инициализация
SD.begin();
lcd.backlight(); // включить подсветку
lcd.setCursor(0, 6); // столбец 1 строка 0
lcd.print("Menu");
Up.setDebounce(80); //Антидребезг кнопок
Down.setDebounce(80);
Midle.setDebounce(80);
Right.setDebounce(80);
Left.setDebounce(80);
}
void loop() {
Up.tick(); // обязательная функция отработки. Должна постоянно опрашиваться
Down.tick();
Midle.tick();
Right.tick();
Left.tick();
// Serial.println (LIST);
if (Up.isClick()){ //перемещение между страницами
LIST= LIST+1;
Serial.println (LIST);
}
if (Down.isClick()){
LIST= LIST-1;
Serial.println (LIST);
}
if (LIST > 4){ //ограничение значений страницы
LIST = 4;
}
else if(LIST < 0){
LIST = 0;
}
if (Midle.isClick()) { // выбор страницы
switch (LIST) {
case 0:Serial.println ("Midle is cklick0");Serial.println (LIST); break;
case 1:Serial.println ("Midle is cklick1");Serial.println (LIST); break;
case 2:Serial.println ("Midle is cklick2");Serial.println (LIST); break;
case 3:Serial.println ("Midle is cklick3");Serial.println (LIST); break;
case 4:Serial.println ("Midle is cklick4");Serial.println (LIST); break;
}
}
if (LIST = 0){ //Действие при текущем значении страницы
//lcd.setCursor(1,0);
//lcd.print ("Movement");
Serial.println ("Movement");
Serial.println (LIST);
}