[#22 WEKIT 아두이노 종합키트 공략] 아두이노 LCD 1602 키패드 쉴드 사용법

 


안녕하세요 디바이스마트 입니다.


이번 시간엔 WKEIT 아두이노 LCD 키패드 쉴드 사용법에 대해

알아보도록 하겠습니다 !!



"

LCD 란?

"

LCD(Liquid Crystal Display)는 ‘액정’을 핵심 소재로 

한 평판 디스플레이입니다.


LCD 키패드 쉴드를 사용하면 아두이노를 통해

자신이 원하는 텍스트나, 센서 값을 LCD로 출력할 수 가 있습니다. 

더해서 + 쉴드 형식이라 복잡한 회로를 구성 할 필요 없이

작동이 가능한데요 !!


그럼 이 편리한 WKEIT 아두이노 LCD 키패드 쉴드를 통해

LCD 키패드 사용법에 대해 알아보는 시간 갖도록 하겠습니다 ~~~!!




△ WEKIT 아두이노 LCD 1602 키패드 실드 
[WK-ADB-M007]


< 아두이노와 LCD 키패드 결합 방법 >


위 사진과 같이 LCD 패드를 핀에 맟 춰서 결합하면 끝!! 입니다.


또한 WEKIT LCD 키패드 쉴드는 후면에 핀 배치도가 상세히

작성되어 있어 정말 편합니다 .. 또한 버튼에 대한 정보도 A0 을 통해 확인할 수 있습니다 !


그래도 다시 한번 보기 쉽게 핀 배치도와 버튼에 따른 A0 값을

표로 정리해보았습니다 !!

<아두이노와 LCD 키패드 핀 배치도>


<LCD 키패드 버튼 AO 값>


그럼 지금부터 위 정보를 통해 LCD 키패드에 기본적인 동작 방법과

버튼 사용법에 대해 알아보겠습니다. . !



아두이노 우노와 쉴드 사용법을 모를 경우 !

[아두이노 우노와 센서 쉴드 사용법]

🔼클릭🔼



1. 회로도 & 배선도

회로 구성은 따로 하실 필요 없이 아두이노 우노와 LCD 키패드를 결합

시킨 뒤 USB 케이블을 통해 PC/노트북에 연결해 주시면 됩니다.




2. 코드 예제


(LCD 키패드 예제 코드)

// LCD 키패드 버튼 예제  (https://www.devicemart.co.k)

#include <LiquidCrystal.h>

#define RS_PIN 8
#define EN_PIN 9

LiquidCrystal lcd(RS_PIN, EN_PIN, 4, 5, 6, 7);

int lcd_key     = 0;       // 버튼 판단 텍스트
int adc_key_in  = 0;       // A0 변수
int counter = 0;          // 숫자 증감을 위한 변수
int cur = 0;              // cursor 위치값 변수
 
#define btnRIGHT  0
#define btnUP     1
#define btnDOWN   2
#define btnLEFT   3
#define btnNONE   5

int read_LCD_buttons() {
 adc_key_in = analogRead(0); 
                         
 if (adc_key_in > 1000 ) return btnNONE;   // 모니터링 값 : 1023
 if (adc_key_in > 774 )   return btnRIGHT;  // 모니터링 값 : 775~776  
 if (adc_key_in < 10)  return btnUP;     // 모니터링 값 : 0
 if (adc_key_in > 500)  return btnLEFT;   // 모니터링 값 : 503~504 
 if (adc_key_in > 200)  return btnDOWN;   // 모니터링 값 : 218~219
 return btnNONE;  
}
void setup()
{
 lcd.begin(16, 2);              // LCD 초기화
 lcd.setCursor(0,0);            // LCD 첫 줄에 출력
 lcd.print("Devicemart");       // LCD 텍스트 출력하기
 delay(1000);
 lcd.print(".");
 delay(1000);
 lcd.print(".");
 delay(1000);
 lcd.print(".");
 lcd.clear();         // LCD 모두 지우기
 delay(1000);
 lcd.setCursor(0,0);           
 lcd.print("WEKIT LCD Shield");
}
 
void loop()
{
 lcd.cursor();                    // LCD에 커서를 표시    
 lcd.setCursor(9,1);            // (9,1) 위치로 커서를 옮김
 lcd.print(counter);            // (9,1) 위치에 숫자를 표시 
 lcd.setCursor(0,1);            // 2번째 줄(1) 1번째(0) 패널에 위치하고
 lcd_key = read_LCD_buttons();  // 버튼이 눌려진 이름 출력하는 함수 호출
 switch (lcd_key)               // 버튼 판단
 {
   case btnRIGHT:       // RIGHT 버튼을 눌렀을 때
     {
     lcd.print("RIGHT ");
     lcd.setCursor(cur++,1);
     delay(500);
     break;
     }
   case btnLEFT:         // LEFT 버튼을 눌렀을 때
     {
     lcd.print("LEFT  ");     
     lcd.setCursor(cur--,1);
     delay(500);
     break;
     }
   case btnUP:           // UP 버튼을 눌렀을 때
     {
     lcd.print("UP          ");   // 공백을(6칸) 주어 잔상제거
     lcd.setCursor(9,1);
     lcd.print(counter++);
//     Serial.println(counter);
     delay(500);
     break;
     }
   case btnDOWN:           // DOWN 버튼을 눌렀을 때
     {
     lcd.print("DOWN          ");
     lcd.setCursor(9,1);     
     lcd.print(counter--);
//     Serial.println(counter);
     delay(500);
     break;
     }
     case btnNONE:          // 아무 버튼도 눌리지 않았을 때
     {
     lcd.print("NONE   ");
//     Serial.println(adc_key_in);
     break;
     }
 }
}


위 예제는 LCD 키패드 버튼 제어 예제로 버튼을 눌렀을 때

UP : 숫자 1씩 증가

DOWN : 숫자 1씩 감소

LEFT : 커서 왼쪽 이동

RIGHT : 커서 오른쪽 이동

으로 동작하는 예제 입니다.



지금까지 LCD 키패드 쉴드 사용법에 대해 알아보았습니다.

위 예제를 참고해서 여러가지 방식으로

작동해보시길 바랍니다

그럼 저는 다음 모듈/센서 포스팅으로 돌아오겠습니다~

🔽상품정보🔽

WK 아두이노 LCD 1602 키패드 실드 [바로가기]

WK 아두이노 우노 호환보드 (USB-C타입) [바로가기]


[아두이노 우노 스페셜 센서 종합키트]


댓글 쓰기

0 댓글