Ekranda bir menü yapın, Arduino'daki kontrol düğmeleri. - Vara Script
Arduino'da LCD ekranda menü gösterimi, kontrol düğmeleri ve bir döngü nasıl başlatılır.
arduino için ekrana çıktı veren düğmeli bir menü yapmak için 2 kütüphaneye ihtiyacımız var.
- LiquidCrystal_I2C
- Tel
Video, öğelerden birini seçebileceğiniz ve bir işlem başlatmak için düğmeye tıklayabileceğiniz bir menünün nasıl oluşturulacağının bir örneğini gösterir.
örneğin:
Röleyi açın/kapatın.
Bu, birçok proje için harika bir başlangıç.
Bu kodun yazarına (Video yazarı) teşekkür etmek istedim.
Bu menüde herhangi bir sayıda öğe oluşturulabilir. Kod LiquidCrystal 1602 ekranına yansıtılır. Arduino UNO'su
Kroki aşağıdan indirilebilir.
#include
#include
LiquidCrystal_I2C lcd(0x27, 16, 2);
int upButton = 10;
int downButton = 11;
int selectButton = 12;
int menu = 1;
void setup() {
lcd.begin();
lcd.backlight();
pinMode(upButton, INPUT_PULLUP);
pinMode(downButton, INPUT_PULLUP);
pinMode(selectButton, INPUT_PULLUP);
updateMenu();
}
void loop() {
if (!digitalRead(downButton)){
menu++;
updateMenu();
delay(100);
while (!digitalRead(downButton));
}
if (!digitalRead(upButton)){
menu--;
updateMenu();
delay(100);
while(!digitalRead(upButton));
}
if (!digitalRead(selectButton)){
executeAction();
updateMenu();
delay(100);
while (!digitalRead(selectButton));
}
}
void updateMenu() {
switch (menu) {
case 0:
menu = 1;
break;
case 1:
lcd.clear();
lcd.print(">MenuItem1");
lcd.setCursor(0, 1);
lcd.print(" MenuItem2");
break;
case 2:
lcd.clear();
lcd.print(" MenuItem1");
lcd.setCursor(0, 1);
lcd.print(">MenuItem2");
break;
case 3:
lcd.clear();
lcd.print(">MenuItem3");
lcd.setCursor(0, 1);
lcd.print(" MenuItem4");
break;
case 4:
lcd.clear();
lcd.print(" MenuItem3");
lcd.setCursor(0, 1);
lcd.print(">MenuItem4");
break;
case 5:
menu = 4;
break;
}
}
void executeAction() {
switch (menu) {
case 1:
action1();
break;
case 2:
action2();
break;
case 3:
action3();
break;
case 4:
action4();
break;
}
}
void action1() {
lcd.clear();
lcd.print(">Executing #1");
delay(1500);
}
void action2() {
lcd.clear();
lcd.print(">Executing #2");
delay(1500);
}
void action3() {
lcd.clear();
lcd.print(">Executing #3");
delay(1500);
}
void action4() {
lcd.clear();
lcd.print(">Executing #4");
delay(1500);
}
Download File;
Tepkiniz nedir?