Home » 산딸기 가지고 놀기 » 라즈베리파이 Charater LCD(CDL4162) 사용하기

라즈베리파이 Character LCD(CDL4162) 사용

Created Date: 2014.02.03
Modified Date: 2014.02.03
revision 1.0

안녕하세요 산딸기마을 이장 나무꾼 입니다.

오늘은 Character LCD 모델 중 저렴하게 구입이 가능한, CDL4162 모델을 이용한 Charater LCD 16×2 제품을 라즈베리파이 모델에 적용하는 포스트를 진행 해 보려 합니다.

사진0) 라즈베리파이 전용 Charater LCD 쉴드 By 나무꾼

 

그럼 가장 먼저 구입한 CDL4162 제품에 대한 핀정의를 확인 해 보도록 하자.

 

0. CDL 4162 : Charater LCD 16×2 둘러보기

사진1) CDL 4162 Charater LCD

사진2) CDL4162 Pin Haeder 정의

 

위 제품의 경우 테스트를 하면서 느낀 개인적인 소견을 정리 하자면 아래와 같은 장단점이을 분류 할 수가 있다.

A. 장점 :

    1) 기존 Charater LCD 16×2 모델 중 가장 저렴하다.( 가격: 3,000원)

B. 단점 :

    1) 라즈베리파이에 LCD 쉴드화 작업 시에 PCB 크기(라즈베리파이 만함)가 문제가 되어 케이

        스에 LCD 외에 다른 부품을 추가적으로 올릴 수가 없다.

    2) 위 제품의 경우에는 데이터 시트와는 다르게(?) Backlight 를 지원하지 않는 제품이다.

 

위 내용을 종합적으로 판단을 하자면, 라즈베리파이에 쉴드 화를 시킬 목적에는 부합되지 않는 제품이기 하나,

개인 프로젝트에 이용 시 또한, 위 두가지 약점을 고려한다면  가격대비 효율성이 가장 뛰어난 제품이라는 판단이 든다.

자 그럼 이제부터 위 데이터시트를 참고하여, 라즈베리파이와 CDL4162 Charater LCD를 결선도를 그려보도록 하자.

 

1. CDL 4162 와 라즈베리파이 쉴드 제작하기

아래 사진에서 보이는 것과 같이,  CDL4162 핀배치는 좌측 1번을 기준으로 총 16개의 핀으로 각각 핀마다 정의가 내려져 있다.

이 중에서 Back Light에 대당하는 1, 2번 핀을 제외하고 총 10개의 핀(3~8Pin , 13~16Pin)이 사용 되어질 예정이며 라즈베리파이와 Charater LCD 결선도는 작년도에 팬더골드가 포스트 한 “ CHARTER LCD 제어”를 참조하였다.

cdl4162_3

그림 1) 라즈베리파이 와 CDL 4162 결선도

사진 3) CDL 4162 Charater LCD Pin 정의.

 

2. CDL 4162 와 라즈베리파이 쉴드 제작하기

소프트웨어는 SPI 활성화 ,  WiringPi 설치 , Python Pakage 를 설치하여 Charater LCD 사용을 위한 기본 구성 환경을 갖추도록 하자.

 

2.1. 라즈베리파이 SPI Port 활성화

pi@rasplay ~ $ sudo nano /etc/modprobe.d/raspi-blacklist.conf

#blacklist spi-bcm2708 #으로 주석처리를 통해 balcklist 제외

#blacklist i2c-bcm2708

 

2.2. 라즈베리파이 Python rpi.gpio 설치

보통은 배나온 아저씨의 WiringPi를 이용을 하겠지만, 이번 만큼은 Python liblary 인 rpi.gpio 라이브러리를 이용해 적용을 해보았다.

원작자의 소스의 내용을 보니 아다프루잇 또한, 해당 개발자의 소스를 필자와 같이 핀 정의만 변경하여 적용을 한 것으로 보여진다.

pi@rasplay ~ $ sudo apt-get install python-dev
pi@rasplay ~ $ sudo apt-get install python-setuptools
pi@rasplay ~ $ sudo easy_install -U distribute
pi@rasplay ~ $ sudo pip install rpi.gpio

 

2.3. 라즈베리파이 Character LCD Python Source 다운로드

pi@rasplay ~ $ git clone git://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code.git

필자는 다운로드 받은 소스를 필자는 원작자의 소스를 그림1)의 결선도와 같이 핀위치도를 수정하기 위해  nano 편집기를 이용하였다.

pi@rasplay ~ $ cd Adafruit-Raspberry-Pi-Python-Code/Adafruit_CharLCD
pi@rasplay ~ Adafruit-Raspberry-Pi-Python-Code/Adafruit_CharLCD $ sudo nano Adafruit_CharLCD.py

2.4. 라즈베리파이 Character LCD Python Source 수정

필자의 경우는 위 소스 내용 중 아래 항목을 필자의 핀결선도를 참고하여 아래와 같이 수정하였다. (rs=25 , pin_e=24, pin_db=23, 27, 21, 22)

def __init__(self, pin_rs=25, pin_e=24, pins_db=[23, 17, 21, 22], GPIO = None):

To Change : 라즈베리파이 Rev. B 의 경우 gpio 21 이 27 번으로 변경되었음.

def __init__(self, pin_rs=25, pin_e=24, pins_db=[23, 17, 21, 22], GPIO = None):

2.4. Character LCD Python Source Test

추가로 필자는 가장 마지막 줄에 있는 LCD 출력 메세지 또한, 일부 수정을 했다.

pi@rasplay ~ Adafruit-Raspberry-Pi-Python-Code/Adafruit_CharLCD $ sudo python Adafruit_CharLCD.py

사진 4) Adafruit_CharLCD.py 소스 수정 후, 실행화면

 

[참고사이트]

o https://pypi.python.org/pypi/RPi.GPIO
o http://www.rasplay.org/?p=3026
o http://www.rasplay.org/?p=6890
o http://www.raspberrypi.org/phpBB3/viewtopic.php?t=15967o https://github.com/lrvick/raspi-hd44780/blob/master/hd44780.py

산딸기마을 포스트 검색

공동제작 공동프로젝트 무상후원 기관

산딸기마을 기부하기

산딸기마을 방문자 현황

Flags Countries Visits Page views
South Korea 626063 1845660
United States 10882 26091
Japan 5011 13204
Germany 2755 5151
India 1897 2902
Canada 1729 4640
United Kingdom 1596 2642
Australia 1240 2901
Russia 1219 1677
China 1077 2239
Total Pageviews: 1936700