Arduino
lcdkeypad

概要

オークションで買った、lcdkeypadを使ってみた。
嵌りポイントは、ポテンショメータを回さないと表示がでない。

写真

CIMG2524.JPG

ピン配置

uno shield
A0 button
D10 backlight
D9 enble
D8 RS
D7 DB7
D6 DB6
D5 DB5
D4 DB4

サンプルコード

#include <LiquidCrystal.h>

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
void setup()
{
    lcd.begin(16, 2);
    lcd.setCursor(0, 0);
    lcd.print("Hello World!");
}
void loop()
{
}

#include <LiquidCrystal.h>

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
#define btRIGHT         0
#define btUP            1
#define btDOWN          2
#define btLEFT          3
#define btSELECT        4
#define btNONE          5
#define err             6

int read(int adc_key_in)
{
    if (adc_key_in > 1000) return btNONE;
    if (adc_key_in < 50) return btRIGHT;
    if (adc_key_in < 250) return btUP;
    if (adc_key_in < 450) return btDOWN;
    if (adc_key_in < 650) return btLEFT;
    if (adc_key_in < 850) return btSELECT;
    return err;
}
void volt(int adc_key_in)
{
    lcd.setCursor(11, 1);
    lcd.print((float) adc_key_in * 5 / 1024);
}
void state(int lcd_key)
{
    lcd.setCursor(0, 1);
    switch (lcd_key)
    {
    case btRIGHT:
    {
        lcd.print("RIGHT ");
        break;
    }
    case btLEFT:
    {
        lcd.print("LEFT  ");
        break;
    }
    case btUP:
    {
        lcd.print("UP    ");
        break;
    }
    case btDOWN:
    {
        lcd.print("DOWN  ");
        break;
    }
    case btSELECT:
    {
        lcd.print("SELECT");
        break;
    }
    case btNONE:
    {
        lcd.print("      ");
        break;
    }
    case err:
    {
        lcd.print("ERROR ");
        break;
    }
    }
}
void setup()
{
    lcd.begin(16, 2);
    lcd.setCursor(0, 0);
    lcd.print("Push the buttons");
    lcd.setCursor(8, 1);
    lcd.print("A0     V");
}
void loop()
{
    int lcd_key = 0;
    lcd_key = read(analogRead(0));
    state(lcd_key);
    volt(analogRead(0));
}



以上。