Cara menggunakan tombol keypad pada LCD shield (How to use keypad on LCD shield)
Berikut saya coba share mengenai bagaimana menggunakan tombol pada Shield LCD.
material yang dibutuhkan:
- LCD shield (pin connection di sini)(skema keypad di sini).
- Arduino UNO
Hubungkan shield dengan UNO dengan cara di tumpuk.
Keypad untuk shield ini termasuk unik.
Karena hanya dengan menggunakan 1 buah pin input Analog, namun bisa sampai 5 tombol bahkan lebih.
Fungsi utamanya adalah sebagai pembagi tegangan fix / potensiometer permanen.
Rangkaian tombol keypad bisa di lihat disini.
Ketik sketch keypad seperti dibawah:
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // select the pins used on the LCD panel
// define some values used by the panel and buttons
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()
{ // Membaca tombol
adc_key_in = analogRead(0); // Membaca data dari pin analog.
// Nilai tombol yang tertera adalah: 0, 144, 329, 504, 741
// Tambahkan sekitar 50 kedalam nilai pembatasan maka selesai.
// Penentuan nilai tombol dan nama tombol seperti dibawah
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; // when all others fail, return this.
}
void setup()
{
lcd.begin(16, 2); // start the library
lcd.setCursor(0,0); // set the LCD cursor position
lcd.print("Push the buttons"); // print a simple message on the LCD
}
void loop()
{
lcd.setCursor(9,1); // move cursor to second line “1” and 9 spaces over
lcd.print(millis()/1000); // display seconds elapsed since power-up
lcd.setCursor(0,1); // move to the begining of the second line
lcd_key = read_LCD_buttons(); // read the buttons
switch (lcd_key)
{ // depending on which button was pushed, we perform an action
case btnRIGHT:
{ // push button “RIGHT” and show the word on the screen
lcd.print("RIGHT ");
break;
}
case btnLEFT:{
lcd.print("LEFT "); // push button “LEFT” and show the word on the screen
break;
}
case btnUP:
{
lcd.print("UP "); // push button “UP” and show the word on the screen
break;
}
case btnDOWN:{
lcd.print("DOWN "); // push button “DOWN” and show the word on the screen
break;
}
case btnSELECT:{
lcd.print("SELECT"); // push button “SELECT” and show the word on the screen
break;
}
case btnNONE:{
lcd.print(" "); // No action will show “None” on the screen
break;
}
}
}
Atau filenya ino nya bisa di download di sini.
Metode yang digunakan adalah pemilihan nilai tegangan analog.
untuk programnya sendiri, lebih kompatibel menggunakan switch case.
Keuntungan menggunakan metode ini adalah kita dapat membuat tombol sebanyak yang kita mau hanya dengan menggunakan 1 pin input analog.
Dikarenakan nilai analog sendiri sampai 255. jadi setidaknya bisa sampai 100 tombol bisa kita buat.
Nilai pembagi tegangannya sendiri bisa kita atur sesuai keinginan kita sendiri.
Jadi lebih flexibel dan simple.
Kita akan coba buat pilihan menu dengan menggunakan shield ini di postingan berikutnya.
Selamat belajar.
material yang dibutuhkan:
- LCD shield (pin connection di sini)(skema keypad di sini).
- Arduino UNO
LCD shield |
UNO |
Keypad untuk shield ini termasuk unik.
Karena hanya dengan menggunakan 1 buah pin input Analog, namun bisa sampai 5 tombol bahkan lebih.
Fungsi utamanya adalah sebagai pembagi tegangan fix / potensiometer permanen.
Rangkaian tombol keypad bisa di lihat disini.
Ketik sketch keypad seperti dibawah:
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // select the pins used on the LCD panel
// define some values used by the panel and buttons
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()
{ // Membaca tombol
adc_key_in = analogRead(0); // Membaca data dari pin analog.
// Nilai tombol yang tertera adalah: 0, 144, 329, 504, 741
// Tambahkan sekitar 50 kedalam nilai pembatasan maka selesai.
// Penentuan nilai tombol dan nama tombol seperti dibawah
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; // when all others fail, return this.
}
void setup()
{
lcd.begin(16, 2); // start the library
lcd.setCursor(0,0); // set the LCD cursor position
lcd.print("Push the buttons"); // print a simple message on the LCD
}
void loop()
{
lcd.setCursor(9,1); // move cursor to second line “1” and 9 spaces over
lcd.print(millis()/1000); // display seconds elapsed since power-up
lcd.setCursor(0,1); // move to the begining of the second line
lcd_key = read_LCD_buttons(); // read the buttons
switch (lcd_key)
{ // depending on which button was pushed, we perform an action
case btnRIGHT:
{ // push button “RIGHT” and show the word on the screen
lcd.print("RIGHT ");
break;
}
case btnLEFT:{
lcd.print("LEFT "); // push button “LEFT” and show the word on the screen
break;
}
case btnUP:
{
lcd.print("UP "); // push button “UP” and show the word on the screen
break;
}
case btnDOWN:{
lcd.print("DOWN "); // push button “DOWN” and show the word on the screen
break;
}
case btnSELECT:{
lcd.print("SELECT"); // push button “SELECT” and show the word on the screen
break;
}
case btnNONE:{
lcd.print(" "); // No action will show “None” on the screen
break;
}
}
}
Atau filenya ino nya bisa di download di sini.
Metode yang digunakan adalah pemilihan nilai tegangan analog.
untuk programnya sendiri, lebih kompatibel menggunakan switch case.
Keuntungan menggunakan metode ini adalah kita dapat membuat tombol sebanyak yang kita mau hanya dengan menggunakan 1 pin input analog.
Dikarenakan nilai analog sendiri sampai 255. jadi setidaknya bisa sampai 100 tombol bisa kita buat.
Nilai pembagi tegangannya sendiri bisa kita atur sesuai keinginan kita sendiri.
Jadi lebih flexibel dan simple.
Kita akan coba buat pilihan menu dengan menggunakan shield ini di postingan berikutnya.
Selamat belajar.
bisa tidak schematic rangkaiannya ditampilkan?
ReplyDeleteBisa di lihat dilink nya bos.
Delete