Merhaba arkadaşlar uygulamamız arduino ile LCD Keypad uygulamasını yapmayı göstereceğim.
LCD Tuş takımı kullanıcıların menü aracılığıyla istedikleri seçeneği seçmek için izin veren bir kullanıcı dostu bir arayüz sağlayan modüldür , Arduino uyumlu kartlar için geliştirilen , vb seçimleri bir 1602 beyaz karakter mavi aydınlatmalı LCD'ye yansıtır . Seçme , yukarı , sağa, aşağı ve sol - Tuş takımı 5 tuşlarından oluşmaktadır, Tuş takımı arayüzü sadece bir ADC kanalını kullanır. anahtar değeri 5 aşamalı gerilim bölücü üzerinden okunur .
![]() |
LCD-Keypad Modül |
KOD:
#include <LiquidCrystal.h>
// Initialize the library with the numbers of the interface pins
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
//States for the menu.
int currentMenuItem = 0;
int lastState = 0;
void setup() {
//Set the characters and column numbers.
lcd.begin(16, 2);
//Print default title.
clearPrintTitle();
}
void loop() {
//Call the main menu.
mainMenu();
}
void mainMenu() {
//State = 0 every loop cycle.
int state = 0;
//Refresh the button pressed.
int x = analogRead (0);
//Set the Row 0, Col 0 position.
lcd.setCursor(0,0);
//Check analog values from LCD Keypad Shield
if (x < 100) {
//Right
} else if (x < 200) {
//Up
state = 1;
} else if (x < 400){
//Down
state = 2;
} else if (x < 600){
//Left
} else if (x < 800){
//Select
state = 3;
}
//If we are out of bounds on th menu then reset it.
if (currentMenuItem < 0 || currentMenuItem > 4) {
currentMenuItem = 0;
}
//If we have changed Index, saves re-draws.
if (state != lastState) {
if (state == 1) {
//If Up
currentMenuItem = currentMenuItem - 1;
displayMenu(currentMenuItem);
} else if (state == 2) {
//If Down
currentMenuItem = currentMenuItem + 1;
displayMenu(currentMenuItem);
} else if (state == 3) {
//If Selected
selectMenu(currentMenuItem);
}
lastState = state;
}
delay(5);
}
//Seçenek ekranlarını yazıyoruz.
void displayMenu(int x) {
switch (x) {
case 1:
clearPrintTitle();
lcd.print ("1. SECENEK");
break;
case 2:
clearPrintTitle();
lcd.print ("2. SECENEK");
break;
case 3:
clearPrintTitle();
lcd.print ("3. SECENEK");
break;
case 4:
clearPrintTitle();
lcd.print ("4.SECENEK");
break;
}
}
//Üst bilgimizi yazdırıyoruz.
void clearPrintTitle() {
lcd.clear();
lcd.setCursor(0,0);
lcd.print("arduinocuyuz.blogspot.com.tr");
lcd.setCursor(0,1);
}
//Seçim Ekranımız Gösteriyoruz..
void selectMenu(int x) {
switch (x) {
case 1:
clearPrintTitle();
lcd.print ("1. SECENEK SECILDI");
//1. Seçeneğimizi hafızaya alıyoruz
break;
case 2:
clearPrintTitle();
lcd.print ("2. SECENEK SECILDI");
//2. Seçeneğimizi hafızaya alıyoruz
break;
case 3:
clearPrintTitle();
lcd.print ("3. SECENEK SECILDI");
//3. Seçeneğimizi hafızaya alıyoruz
break;
case 4:
clearPrintTitle();
lcd.print ("4. SECENEK SECILDI");
//4. Seçeneğimizi hafızaya alıyoruz
break;
}
}
LCD Uygulama Videosu
Merhaba
YanıtlaSilBenim bir sıkıntım var
Lcd Keypad'i arduibo uno ya taktım mavi ışık yandı ama sizin kodlarınızı yükledğim zaman ekranda hiç bişi gözükmüyo kütüphane dosyasınıda indirdim ama olmuyo ekranda sadece mavi ışık yanı aşka bişi yok yardım eder misiniz
Kontrast ayar potunu kullanarak degerleri dusurup veya yükselterek ayar yaptınız mı ?
SilBenimde benzer bir proje ödevim var en kısa zamanda yardımcı olursanız sevinirim şöyle ki;
YanıtlaSillcd keypad için üç tane menü olacak PID ile çalışacağım için 1. menü "P Degeri" 2. menü "I Degeri"
3. menü "D Degeri" olacak bunu yaptım fakat 1. menüye yani "P Degeri" ne girdiğimiz zaman bir sayısal bir değer girmek istiyorum nasıl yapabilirim???????????????
Merhabalar kodunuz çok yardımcı oldu öncelikle teşekkür ederim. Benim bir ödevim var menü tasarımı. ama alt menüde tasarlamamız isteniyor. seç butonuna basınca aşağı yukarı butonlarıyla gezilebilir alt menü yani.Kaç gündür uğraşıyorum acaba yardımcı olur musunuz nasıl yapabilirim ?
YanıtlaSilMerhaba ben alt menüde oluşturmak istiyorum yani 1. seçildikten sonra başka menüler çıkacak. yardımcı olabilir misiniz?
YanıtlaSilya benim aruniom nano bu sorunu nasıl çözebilirim
YanıtlaSil