J 창고

[Arduino] LCD 키패드 본문

컴퓨터/Firmware

[Arduino] LCD 키패드

JSFamily 2013. 12. 1. 21:17

DFBOT Arduino LCD Keypad Shield




#include <LiquidCrystal.h>

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 i = 0;


int read_LCD_buttons(){

  adc_key_in = analogRead(0);   

  if (adc_key_in > 1000) return btnNONE; 

  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;  

  return btnNONE;  

}

 

void setup(){

  lcd.begin(16, 2);            

  lcd.setCursor(0,0);

  lcd.print("Push the buttons"); 

  lcd.setCursor(9,1);           

  lcd.print(i);   

}

  

void loop(){

  lcd.setCursor(0,1);          

  lcd_key = read_LCD_buttons();  

  switch (lcd_key){

    case btnRIGHT:

      {

      lcd.print("RIGHT ");

      break;

      }

    case btnLEFT:

      {

      lcd.print("LEFT   ");

      break;

      }

    case btnUP:

      {

      i++;

      lcd.print("UP    ");

      if(i>=0){

        lcd.setCursor(9,1);       

        if(i>=10){

          lcd.setCursor(8,1);

          if(i>=100){

            lcd.setCursor(7,1);

            if(i>=1000){

              lcd.setCursor(6,1);

            }

          }

        }

      }

      lcd.print(i);

      break;

      }

    case btnDOWN:

    {

      i--;

      lcd.print("DOWN  ");

      if(i<10000){

        lcd.setCursor(5,1);

        lcd.print(" ");       

        if(i<1000){

          lcd.setCursor(6,1);

          lcd.print(" ");  

          if(i<100){

            lcd.setCursor(7,1);

            lcd.print(" ");            

            if(i<10){

              lcd.setCursor(8,1);

            }

          }

        }

      }

      if(i<0){

        i=0;

        lcd.setCursor(8,1);

        lcd.print("No");

      }

      else lcd.print(i);

      break;

    }

    case btnSELECT:

    {

      lcd.print("SELECT");

      break;

    }

    case btnNONE:

    {

      lcd.print("NONE  ");

      break;

    }

  } 

}

Comments