LCD는 Liquid Crystal Display의 약자로 액정표시장치를 말한다.
액정이란 액체처럼 유체의 성질을 가지면서 고체처럼 광학적 성질을 가지는 물질로 전기적 신호를 가해 원하는 방향으로 배열하여 빛을 투과시키거나 차단시킬 수 있다.
LCD의 원리
LCD는 다음의 특징을 가진다.
얇다.
가볍다
소비전력이 적다
시야각이 제한적이다
이 문서에서는 I2C LCD 모듈을 사용한다.
LCD 라이브러리 추가
LCD는 기본적으로 제공되는 라이브러리로 이용할 수 없다.
설치를 위해 아래 링크를 클릭하여 라이브러리 제공 사이트로 이동한다.
Download ZIP 을 눌러 다운로드를 수행한다.
스케치 메뉴의 라이브러리 포함하기에 있는 Zip 라이브러리 추가를 실행하여 다운로드한 압축파일을 지정하면 해당 라이브러리를 이용할 수 있다.
결선도
GND to GND
VCC to 5V
SDA to A4
SCL to A5
샘플 코드(스캐닝)
LCD의 연결 주소를 알아내기 위해 다음 코드를 실행한다.
#include <Wire.h>
void setup() {
Serial.begin (9600);
while (!Serial){}
Serial.println ();
Serial.println ("I2C scanner. Scanning ...");
byte count = 0;
Wire.begin();
for (byte i = 1; i < 120; i++) {
Wire.beginTransmission (i);
if (Wire.endTransmission () == 0) {
Serial.print ("Found address: ");
Serial.print (i, DEC);
Serial.print (" (0x");
Serial.print (i, HEX);
Serial.println (")");
count++;
delay (10); // maybe unneeded?
} // end of good response
} // end of for loop
Serial.println ("Done.");
Serial.print ("Found ");
Serial.print (count, DEC);
Serial.println (" device(s).");
} // end of setup
void loop() {}
컴파일
Ctrl+R 또는 스케치 메뉴의 확인/컴파일을 눌러 컴파일을 진행한다.
업로드
Ctrl+U 또는 스케치 메뉴의 업로드를 눌러 업로드를 진행한다.
실행 결과
시리얼 창에 다음과 같이 주소 스캔의 결과가 나타난다.
I2C scanner. Scanning ...
Found address: 39 (0x27)
Done.
Found 1 device(s).
샘플 코드(출력)
간단한 출력을 수행하는 코드를 작성한다.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup()
{
// initialize the LCD
lcd.begin();
// Turn on the blacklight and print a message.
lcd.backlight();
lcd.print("Hello, world!");
}
void loop()
{
// Do nothing here...
}
컴파일
Ctrl+R 또는 스케치 메뉴의 확인/컴파일을 눌러 컴파일을 진행한다.
업로드
Ctrl+U 또는 스케치 메뉴의 업로드를 눌러 업로드를 진행한다.
실행 결과
LCD 화면에 Hello, world!가 출력되는 것을 확인할 수 있다.
보이지 않을 경우 후면에 있는 가변저항을 십자 드라이버로 조절하여 밝기를 변화시킨다.