Arduino ile LCD KEYPAD modülü Kullanımı

Projelerimizde kullandığımız LCD ve Butonları neredeyse tüm projelerin olmazsa olmazı bundan dolayı Arduino ile Hobi için uğraşan kullanıcılara daha kolay olması için  birleştirilen ve arduino UNO ,MEGA ya rahatlıkla monte edilebilen modüldür.

Bu modülün resminde anlayacağınız gibi bir adet 16×2 LCD ve 6x butondan oluşuyor. Bizim bilmemiz gereken nokta ise modülde yer alan LCD nin ve butonların arduinonun hangi pinlerini kullandığıdır. Bu şekilde projelerinize modülü taktıktan sonra diğer pinler ile onlarca uygulama yapabilirsiniz.

lcdbutonmodul

Size burada bahsetmek istediğim bir hususta 6 butonun tek bir analog girişe bağlandığı yani her buton için analog değer var ve bu değeri bilmeniz gerekiyor ki rahatlıkla kullanabilesiniz. Her modül için bu değerlerin ölçülmesi ve program kodlarını buna göre güncellemeniz gerekmektedir.

Program Kodlarımız

#include <LiquidCrystal.h>

/*******************************************************

Kodlar www.arduinom.org sitesinde yayinlanmistir.

********************************************************/
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
int lcd_key = 0;
int adc_key_in = 0;
#define btnRIGHT 0
#define btnUP 1
#define btnDOWN 2
#define btnLEFT 3
#define btnSELECT 4
#define btnNONE 5
int read_LCD_buttons()
{
adc_key_in = analogRead(0); // herbuton icin analog degeri hesapla
if (adc_key_in &gt; 1000) return btnNONE;

 if (adc_key_in < 50) return btnRIGHT; 
 if (adc_key_in < 250) return btnUP; 
 if (adc_key_in < 400) return btnDOWN; 
 if (adc_key_in < 500) return btnLEFT; 
 if (adc_key_in < 850) return btnSELECT; 

// Kodlar asagidaki gibiydi ama degisiklikler yaptigim icin yukardaki kodlar bana uyanlar
/*
if (adc_key_in < 50) return btnRIGHT;
if (adc_key_in < 195) return btnUP;
if (adc_key_in < 380) return btnDOWN;
if (adc_key_in < 555) return btnLEFT;
if (adc_key_in < 790) return btnSELECT;
*/
return btnNONE;
}

void setup()
{
lcd.begin(16, 2);
lcd.setCursor(0,0);
lcd.print("www.arduinom.org");
lcd.setCursor(1,1);
lcd.print("BUTON KONTROLU");
delay(5000);
lcd.clear();
}

void loop()
{

lcd.setCursor(0,0);
lcd.print("BUTON KONTROLU");

lcd.setCursor(9,1);
lcd.print(adc_key_in);

lcd.print(" ");

lcd.setCursor(0,1); // kursoru ayarla
lcd_key = read_LCD_buttons(); // butonu algila

switch (lcd_key) // hangi butona basildigina gore degistir
{
case btnRIGHT:
{
lcd.print("SAG ");
break;
}
case btnLEFT:
{
lcd.print("SOL ");
break;
}
case btnUP:
{
lcd.print("YUKARI ");
break;
}
case btnDOWN:
{
lcd.print("ASAGI ");
break;
}
case btnSELECT:
{
lcd.print("SEC ");
break;
}
case btnNONE:
{
lcd.print("HICBIRI");
break;
}
}

}

Boş zamanlarda arduino ile uğraşan kendi halinde bir Öğretmen.

Bir Cevap Yazın

Time limit is exhausted. Please reload CAPTCHA.