Rob's web

LCD en keyboard shield

Lcd keypad shield

Op het shield wordt het 16 × 2 LCD tekst scherm gebruikt.

Schema

Pin functies

Knoppen

Drukknoppen

Testen

#include <LiquidCrystal.h>

#define btnRIGHT 0
#define btnUP 1
#define btnDOWN 2
#define btnLEFT 3
#define btnSELECT 4
#define btnNONE 5
#define btnUNKNOWN 6

int readkeypad(){
      int adc_key_in = analogRead(0);
      int ret = btnUNKNOWN;

      if (adc_key_in < 50) ret = btnRIGHT;
      if ((adc_key_in > 120) && (adc_key_in < 150)) ret = btnUP;
      if ((adc_key_in > 250) && (adc_key_in < 350)) ret = btnDOWN;
      if ((adc_key_in > 450) && (adc_key_in < 500)) ret = btnLEFT;
      if ((adc_key_in > 700) && (adc_key_in < 750)) ret = btnSELECT;
      if ((adc_key_in > 900) && (adc_key_in < 1150)) ret = btnNONE;

      return ret;
}

// Just for ease of displaying
const char *button[7] ={"Right ", "Up ", "Down ", "Left ", "Select ", " ", "??????"};

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

void setup() {
      lcd.begin(16, 2);
}

void loop() {
      lcd.setCursor(0, 0);
      lcd.print("Button Pressed:");
      lcd.setCursor(0, 1);
      lcd.print(button[readkeypad()]);
}