#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int butt0 = 2; // Кнопка СТОП Arduino, к нему подключена кнопка
const int butt1 = 4; // Кнопка 1 Arduino, к нему подключена кнопка
const int butt2 = 5; // Кнопка 2 Arduino, к нему подключена кнопка
const int butt3 = 6; // Кнопка 3 Arduino, к нему подключена кнопка
volatile int flag1 = 0;
boolean butt0_st = false;
boolean butt1_st = false;
boolean butt2_st = false;
boolean butt3_st = false;
int butt_men_st = 0;
const int butt1_st_pr = false;
const int butt2_st_pr = false;
const int butt3_st_pr = false;
char HauptMenu[][10] = {
"hello 1",
"hello 2",
"hello 3",
};
void setup() {
//Инициализация кнопок
pinMode(butt1, INPUT_PULLUP); // Кнопка 1 конфигуриуем как вход и задействуем внутренний подтягивающие резистор
pinMode(butt2, INPUT_PULLUP); // Кнопка 2 конфигуриуем как вход и задействуем внутренний подтягивающие резистор
pinMode(butt3, INPUT_PULLUP); // Кнопка 3 конфигуриуем как вход и задействуем внутренний подтягивающие резистор
pinMode(butt0, INPUT); // Кнопка 4 конфигуриуем как вход и задействуем внутренний подтягивающие резистор
//Инициализация прерывания
attachInterrupt(0, Hauptmenu, FALLING); // прерывание по вектору на главное меню
// Подключение дисплея и вывод приветствия с вкл. подсветки.
lcd.begin(16, 2);
lcd.setBacklight(1);
lcd.setCursor(0, 0);
lcd.print(HauptMenu[0]);
// delay (100);
// lcd.setCursor(0, 1);
// lcd.print("Lev Razumovsky");
// delay (100);
}
void loop() {
lcd.setCursor(0, 1);
lcd.print("1 → 2 ← 3 OK");
butt1_st = 1;
butt_men_st = 1;
if (digitalRead(butt1) == false)
{butt1_st = 1 ;
Butt1();};
//if (digitalRead(butt2) == false) {butt2_st = 1 ; Butt2();} ;
//if (digitalRead(butt3) == false) {butt3_st = 1 ; Butt3();} ;
}
void Butt1() {
lcd.setCursor(0, 0);
switch (butt_men_st){
case 0:
lcd.print("Punkt 1");
break;
case 1:
lcd.print(HauptMenu[2]);
break;
case 2:
lcd.print("Punkt 3");
break;
case 3:
lcd.print("Punkt 4");
break;
default:
// выполнить, если val ни 1 ни 2
// default опционален
break;
}
}
void Butt2() {
lcd.setCursor(0, 1);
lcd.print("Button 2 ");
butt2_st = 0;
}
void Butt3() {
lcd.setCursor(0, 1);
lcd.print("Button 3 ");
butt3_st = 0;
}
void Hauptmenu() {
if (flag1) flag1=0; else flag1 = 1 ;
}