본문으로 바로가기

  아두이노(Arduino) 기초 디스플레이 CLCD 1편  


애드라이프의 아두이노 모든 포스팅 리스트를 보고 싶으신 분은 공지 읽어주세요.




안녕하세요. 애드라이프입니다.

이번에는 디스플레이 편으로 찾아 뵙게 되었습니다.

디스플레이 1편으로는 CLCD를 이용한 포스팅을 준비했습니다.


그런데 CLCD는 무엇일까요?

CLCD는 Character Liquid Crystal Display의 줄임말입니다.

뭐 대충 문자 액정 디스플레이정도 될 것 같은데요.

우리생활에서 정말 많은 부분에서 사용되는 소자중 하나입니다.

어떤것을 하든 시각정보가 있는 정보라면 이해를 하는데 많은 도움이 되기 때문이죠.

요즘에는 좀더 고기능의 디스플레이 모듈들이 많이 있지만 CLCD는 간단한 문자형 정보를 

표기하기에 적절하기 때문에 이번 포스팅에서 다루게 되었습니다.



이제 본격적으로 CLCD를 다뤄 볼까요?

우선 제가 사용하게 될 CLCD는 HD44780 호환 IC를 쓰는 모델입니다.▼

납땜안된 CLCD

CLCD핀에 핀헤더가 달려있지 않은 상태라서 핀해더를 따로 납땜을 해야했어요 ㅠㅠ

핀헤더만 끼운 CLCD

이런 핀헤더를 따로 납땜하시면 되요.


납땜을 다했으면 이제 회로를 꾸며 봐야 겠죠?

아두이노 CLCD제어 회로도

제가 소개드렸던 TINKERCAD를 이용해서 CLCD회로를 구성한 모습입니다. ▲

프로그래도 넣어 봤는데 잘 되더군요~^^

저기 동그란 소자는 가변 저항입니다. 전부 10Kohm 으로 사용하였습니다.

회로가 지금까지 포스팅 중에서 가장 복잡한거 같네요. 



위 회로도가 보기 어려우신 분들을 위해 표를 만들어 봤어요.▼

 LCD 핀 번호

LCD 핀 이름 

아두이노 핀 이름 

 1

Vss

GND

 2

Vcc

 5V

 3

 V0

 가변저항 출력단

 4

 RS

 D12

 5

 R/W

 GND

 6

 Enable

 D11

 7

 D0

 NC

 8

 D1

 NC

 9

 D2

 NC

 10

 D3

 NC

 11

 D4

 D5

 12

 D5

 D4

 13

 D6

 D3

 14

 D7

 D2

 15

 A

 가변저항 출력단

 16

 K

 GND


위 표를 참고하시면서 회로도를 보시면 좀더 도움이 되실꺼라 믿어요!!


핀의 모든 기능들을 다 알고서 쓰면 좋겠지만 제 개인적인 생각으로는 본 포스팅에서 쓰는 정도의 CLCD는

간단한 기능 구현이 목적이기 때문에 시간을 많이 들여 쓰는 것 보다는 간단한 문자 출력방법을 익히는 것이 좋은것 같습니다. 그래서 몇가지 핀에 대한 설명만 하고 넘어가도록 하겠습니다.


첫번째로 3번 핀인 V0입니다. 회로도에 10Kohm에 연결된 핀중 하나인데요.

이 핀의 역할은 표현되는 글씨의 농도 조절용입니다. 가변저항을 이용해서 농도 조절이 가능하다는 것이죠.


두번째로는 15번과 16번 핀입니다.

15 : Backlight led +5v

16 : Backlight led gnd


이곳도 회로도상에 10Kohm에 연결되어 있는 부분이죠. 감이 오신분들도 있겠지만 

이 핀은 lcd 배경의 밝기를 조정하는 용도의 핀입니다.


제가 쓰는 것과 다른 lcd모델을 쓰시는 분들 중에서는 15,16번 핀이 없으신 분들도 있으실 겁니다.

단순히 배경의 밝기 조절기능이 없는 형태의 lcd인것 뿐이니 그냥 사용하시면 됩니다.

다만, 밝은 곳에서 사용하길 권장 드립니다.


이제 회로 구성도 다했으니 프로그램을 보면서 설명 드리도록 하죠.▼

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<LiquidCrystal.h>             //C:\arduino-1.8.5\libraries\LiquidCrystal에 해당 헤더파일있음
LiquidCrystal lcd(12,11,5,4,3,2);     //라이브러리 사용을 위한 lcd 초기화 lcd(RS, Enable, Data Bit0, Data Bit1, Data Bit2, Data Bit3)
void setup() {
  lcd.begin(16,2);                       //2행 16열로 라이브러리 셋팅
}
 
void loop() {
  lcd.setCursor(0,0);                   //lcd에 표시할 좌표를 설정해준다. 첫번째 줄 맨앞
  lcd.print("hello, world"); //lcd에 문자출력
 
  lcd.setCursor(0,1);                    //두번째 줄 맨앞
  lcd.print("goodbye world");
  delay(1000);
}
cs

제가 포스팅한 아두이노 관련 글중에서 드디어 처음으로 헤더파일을 사용하는 프로그램입니다.

다행이 지금쓰는 헤더파일은 아두이노IDE를 설치하면 내부에 있는 헤더파일이라 별도로 다운받으실 필요는 없습니다.

그래도 모르니 파일은 첨부해 놓겠습니다.

LiquidCrystal.zip



이번 프로그램은 다행이? 짧네요.

첨부된 파일에 대한 라이브러리를 분석해보시는 것도 나쁘진 않지만 앞서 말씀드렸듯이 CLCD는 간단하게 

기능만 알고 넘어가도 제 개인적으로는 상관없지 않을까 생각합니다.  

그래서 이번 프로그램 설명은 달려있는 주석으로 충분 할 것 같습니다.


프로그램을 업로드 해보면 회로도에 표시되어있는 글씨가 똑같이 표시됩니다. (정상적이라면 말이죠;;)

마지막으로 실제로 구현한 회로의 동작을 확인 하면서 포스팅을 끝내겠습니다.

아두이노를 이용한 CLCD제어

실제회로에서는 제가 가지고 있는 가변저항이 하나 밖에 없어서 배경밝기 조정용 pin에는 

적당한 저항을 연결하여 밝기는 조절 했습니다.


지금까지 CLCD를 이용한 문자 출력에 대한 포스팅이였습니다.

계속해서 도움되는 포스팅으로 찾아 뵙겠습니다.

by 애드라이프