LCD KeyPad Shield ukUnt Arduino SKU: DFR0009 D1Robot

arduinopedia.com - LCD KeyPad Shield ukUnt Arduino SKU: DFR0009 D1Robot
Ini adalah  LCD Keypad Shield yang sangat populer untuk papan Arduino. Ini termasuk layar LCD 2×16 dan 6 tombol push sesaat. Pin 4, 5, 6, 7, 8, 9 dan 10 digunakan untuk antarmuka dengan LCD. Pin Analog 0digunakan untuk membaca tombol push.  LCD Shield ini mendukung penyesuaian kontras dan fungsi on / off backlit. Ini juga memperluas pin analog agar memudahkan membaca dan display sensor analog.

LCD Keypad Shield dikembangkan untuk board Arduino, untuk menyediakan antarmuka yang mudah digunakan yang memungkinkan pengguna mengakses menu, membuat pilihan, dll. Ini terdiri dari LCD warna biru 1602 berwarna biru. Tombol terdiri dari 5 tombol – pilih, atas, kanan, bawah dan kiri. Untuk menyimpan pin IO digital, antarmuka keypad hanya menggunakan satu saluran ADC. Nilai kunci dibaca melalui pembagi tegangan 5 tahap.
Spesifikasi :
  • Tegangan Operasi: 5V
  • 5 tombol Push untuk memasok panel kontrol menu kustom
  • Tombol RST untuk mengatur ulang program arduino
  • Mengintegrasikan potensiometer untuk menyesuaikan lampu latar
  • Tersedia pin I / O
  • Expanded Analog Pinout dengan konfigurasi DFRobot standar untuk perpanjangan sensor cepat
  • Dimensi: 80 x 58 mm
Pinout :

Penjelasan Perpustakaan :
Penjelasan Fungsi:
LiquidCrystal(rs, enable, d4, d5, d6, d7)
Membuat variabel tipe LiquidCrystal. Layar dapat dikontrol menggunakan 4 atau 8 jalur data. Jika yang pertama, hilangkan nomor pin untuk d0 ke d3 dan biarkan garis tersebut tidak terhubung. Pin RW dapat dihubungkan ke ground dan bukannya dihubungkan ke pin pada Arduino; jika demikian, hilangkan dari parameter fungsi ini. sebagai contoh:
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
lcd.begin(cols, rows)
Menginisialisasi antarmuka ke layar LCD, dan menentukan dimensi (lebar dan tinggi) layar. begin() perlu dipanggil sebelum perintah library LCD lainnya. Sebagai contoh:
lcd.begin(16, 2);
lcd.setCursor(col,row)
Tetapkan lokasi di mana teks berikutnya ditulis ke LCD akan ditampilkan. sebagai contoh:
lcd.setCursor(0,0);
lcd.print(data)
Mencetak teks ke contoh LCD.for:
lcd.print("hello, world!");
lcd.write(data)
Tulis karakter ke LCD.
contoh program :
/*************************************************************************************

  Mark Bramwell, July 2010

  This program will test the LCD panel and the buttons.When you push the button on the shield,
  the screen will show the corresponding one.
 
  Connection: Plug the LCD Keypad to the UNO(or other controllers)

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

#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(){               // read the buttons
    adc_key_in = analogRead(0);       // read the value from the sensor 

    // my buttons when read are centered at these valies: 0, 144, 329, 504, 741
    // we add approx 50 to those values and check to see if we are close
    // We make this the 1st option for speed reasons since it will be the most likely result

    if (adc_key_in > 1000) return btnNONE; 

    // For V1.1 us this threshold
    if (adc_key_in < 50)   return btnRIGHT;  
    if (adc_key_in < 250)  return btnUP; 
    if (adc_key_in < 450)  return btnDOWN; 
    if (adc_key_in < 650)  return btnLEFT; 
    if (adc_key_in < 850)  return btnSELECT;  

   // For V1.0 comment the other threshold and use the one below:
   /*
     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("NONE  ");  //  No action  will show "None" on the screen
             break;
       }
   }
}
Contoh 2
Contoh ini menunjukkan bahwa membaca input analog pada pin 1, mencetak hasilnya ke LCD. Program ini mengambil sensor temperture LM35 misalnya.
Koneksi:
Pasang keypad LCD ke UNO (atau pengendali lainnya)
Sensor suhu: S (biru) - A1 ()
Catatan: A0 telah ditempati.
VCC (merah) - VCC
GND (hitam) - GND

Kode :
/*******************************************************

   Description:
   Reads an analog input on pin 1, prints the result to the LCD.
   This program takes the temperture sensor LM35 for example. 
  
   Connection:
   Plug the LCD Keypad to the UNO(or other controllers)
   Temperture sensor:
   S(blue) -- A1()  
     Note: A0 has been occupied.
   VCC(red) -- VCC
   GND(black) -- GND

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

#include <LiquidCrystal.h>

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);        // select the pins used on the LCD panel

unsigned long tepTimer ;    

void setup(){ 
    lcd.begin(16, 2);                       // start the library
}

void loop(){ 
    lcd.setCursor(0, 0);                   // set the LCD cursor   position 
    int val;                               // variable to store the value coming from the analog pin 
    double data;                           // variable to store the temperature value coming from the conversion formula
    val=analogRead(1);                     // read the analog in value:
    data = (double) val * (5/10.24);       // temperature conversion formula
    
    if(millis() - tepTimer > 500){         // output a temperature value per 500ms 
             tepTimer = millis();

             // print the results to the lcd
             lcd.print("T: ");               
             lcd.print(data);             
             lcd.print("C");              
     } 
}

Hasilnya akan terlihat seperti ini :



Previous
Next Post »