LCD
LCD Liquid Crystal Display의 약자 "액정표시장치"
즉, 원하는 문자나 그림을 액정에 표시할 수 있음.
LCD 사용법
LCD핀맵
16개의 문자를 2줄로, 총 32개 문자를 표현할 수 있는 LCD를 사용함.
1 | VSS | GND |
---|---|---|
2 | VCC | 5V전원 |
3 | VEE | LCD 밝기 조절 핀 |
4 | RS | 레지스터 선택핀 |
5 | R/W | 읽기쓰기 모드 선택 핀 |
6 | E | 레지스터에 쓰기 위한 핀 |
7 | DB0 | 데이터 입출력핀(8bit) |
8 | DB1 | 데이터 입출력핀(8bit) |
9 | DB2 | 데이터 입출력핀(8bit) |
10 | DB3 | 데이터 입출력핀(8bit) |
11 | DB4 | 데이터 입출력핀(8bit) |
12 | DB5 | 데이터 입출력핀(8bit) |
13 | DB6 | 데이터 입출력핀(8bit) |
14 | DB7 | 데이터 입출력핀(8bit) |
15 | LED+ | 데이터 입출력핀(8bit) |
16 | LED- | LED GND핀 |
부품명 | 수량 |
---|---|
아두이노 우노 R3 | 1 |
브레드보드 | 1 |
LCD | 1 |
Potentiometer | 1 |
점퍼케이블 | 16 |
회로도
브레드보드 레이아웃
센서연결
LCD핀번호 | 연결 |
---|---|
1 | GND |
2 | 5V |
3 | Potentiometer의 가운데 핀 |
4 | 아두이노 12번핀 |
5 | GND |
6 | 아두이노 11번핀 |
7 | 연결안함 |
8 | 연결안함 |
9 | 연결안함 |
10 | 연결안함 |
11 | 아두이노 5번 핀 |
12 | 아두이노 4번 핀 |
13 | 아두이노 3번 핀 |
14 | 아두이노 2번 핀 |
15 | 5V |
16 | GND |
coding
#include <LiquidCrystal.h>
LiquidCrystal lcd(12,11,5,4,3,2); //RS 핀, E핀, 데이터 핀 4개
String lcdString = ""; //객체 선언 : 출력 할 글자 저장
void setup() {
lcd.begin(16,2); //LCD 크기 지정, 2줄 16칸
lcd.clear(); //화면 초기화
Serial.begin(9600); //시리얼 통신 초기화
}
void loop() {
lcd.setCursor(0,0); //커서를 0,0에 지정
if(Serial.available()) { //입력받은 데이터가 있으면
delay(200); //0.2초 대기
while(Serial.available() > 0) { //문자 수 만큼 반복
char lcdChar = (char)Serial.read();//문자 하나씩 읽고
lcdString += lcdChar; //읽은 문자를 하나씩 더해 문자열을 만듬
}
lcd.print(lcdString); //문자열 LCD에 출력
Serial.println(lcdString); //시리얼 모니터에 입력한 값 출력
lcdString = ""; //문자열 초기화
lcd.print(" "); //전 글씨 삭제
}
}
- 하드웨어 연결
LCD는 16핀을 가지고 있는 데 그 중에서 3개의 제어 신호 핀과 8개의 데이터 신호 핀이 포함되있습니다. 우노는 핀의 수가 적이 때문에 주로 4개의 데이터 신호 핀을 사용합니다.
- 스케치 설명
#include <LiquidCrystal.h>
LiquidCrystal이라는 라이브러리를 사용합니다.
void setup() {
lcd.begin(16,2); //LCD 크기 지정, 2줄 16칸
lcd.clear(); //화면 초기화
Serial.begin(9600); //시리얼 통신 초기화
}
LCD에 관한 설정을 setup함수에 먼저합니다. lcd.begin함수는 lcd의 크기를 지정하는 함수입니다.
lcd.print(lcdString); //문자열 LCD에 출력
Serial.println(lcdString); //시리얼 모니터에 입력한 값 출력
lcdString = ""; //문자열 초기화
lcd.print(" "); //전 글씨 삭제
lcdPrint함수를 통해 LCD로 출력합니다. 맨 밑에 빈줄을 출력하는 이유는 전에 쓴 글씨를 지우기 위해서 입니다.
빈 줄을 출력한 후 다시 커서를 재 위치로 지정하면 재입력시 화면에 새로 입력한 글자만 보이게 됩니다.