728x90
반응형

기존에 자료에서 추가적으로 온도센서 ADC값을 CLCD로 디스플레이 하려고 합니다.

기존에 사용하던 LCD가 너무 오래되서 2번째 줄에 디스플레이가 안되서 I2C가 달려있는 LCD를 하나 구해왔습니다. 납땜이 되어있어서 빼지도 못하는 구조로 되어 있습니다..

<구성도>

뒤쪽 I2C모듈을 위와 같이 연결 합니다. SDA데이터핀은 A4, SCL클락핀은0 A5입니다.

저희가 사용할 헤더파일이 <Wire.h>, <LiquidCrystal_I2C.h> 2개입니다. 아두이노 사이트에 보면 A4,A5로 설정되 어있는걸 확인할 수 있습니다. 제가 전에 올린 자료를 이용해서 LCD를 한다면 따로 필요는 없습니다.

 

<LiquidCrystal_I2C.h> 설치

<Wire.h>은 기본적으로 아두이노에서 제공하는 Header파일 이기때문에 따로 설치가 필요 없음

<LiquidCrystal_I2C.h>를 사용하기위해서는 위처럼 라이브러리 관리에서 설치를 해줘야합니다.

검색 필터에 LiquidCrystal을 검색하시고 버전을 선택하시는데 1.1.1말고 1.1.2를 설치하시는걸 추천드립니다.

그 이유는 제가 1.1.1버전을 써봤는데 LCD에 출력시에 한글자씩만 출력되는 문제가 있었습니다.

<소스 코딩>

LiquidCrystal_I2C(0X27)은 I2C통신시 주소 값인데 이건 제품 출하시에 정해 지는 것입니다. 이건 0X27인데 제가보니 0X20, 0X3F제품도 있는 것으로 보입니다.

V=전압, T=온도, A=센서 ADC값입니다.

SetCursor 함수를 이용하여 ADC값은 첫번째줄 11번째칸에(0~10 이니 11번째에 표현) V전압은 2번째줄 첫번째, 온도 값 2번째줄 7번째에 디스플레이 하였습니다.

 

 

 

 

 

 

반응형
728x90
반응형

아두이노 사이트에 들어가면 LiquidCrystal이라는 라이브러리가 있습니다.

CLCD라이브러리

이 라이브러리에 있는 함수를 전부 다루어볼 예정입니다.

1. <구성도 및 회로>

전자 공작 사이트에서 가져온 자료 입니다. 위와 같이 회로를 구성하시고 RS, R/W , EN, D4, D5, D6, D7만 사용합니다.

RS : 12

R/W : GND

EN :11

D4 : 5

D5 : 4

D6 : 3

D7: 2

2. <PIN MAP>

3.< lcd.begin(), lcd.write()>

lcd.begin() : LCD 화면에 대한 인터페이스를 초기화하고 디스플레이의 크기 (너비 및 높이)를 지정, 다른 LCD 라이브러리 명령보다 먼저 begin ()을 호출해야함

lcd.write() : lcd.write(data) display할 문자나 data를 입력하면 됩니다.

lcd.begin(), lcd.write() 이용 소스코드

lcd.begin(), lcd.write() 동작화면

4.< lcd.blink(), lcd.noBlink()>

lcd.blink() : 깜빡이는 LCD 커서를 표시해줍니다.

lcd.blink() : 커서를 off 시킴

lcd.blink(), lcd.noBlink() 소스

lcd.blink(), lcd.noBlink() 동작 사진

직접 확인해보시면 2초마다 오른쪽 끝에있는 커서가 깜빡입니다.

5.< lcd.cursor(),lcd.noCursor()>

lcd.cursor() : 다음 문자가 쓰여질 위치에 밑줄 선을 표시

lcd.noCursor() : 밑줄선 off

lcd.cursor(),lcd.noCursor() 소스

lcd.cursor(),lcd.noCursor() 동작

6.< lcd.display(),lcd.noDisplay()>

lcd.display() : LCD를 noDisplay로 인해 꺼지면 이 함수로 킴

lcd.noDisplay() :LCD를 끔

lcd.display(),lcd.noDisplay() 소스

lcd.display(),lcd.noDisplay() 동작

display꺼짐 켜짐을 반복(data나, 문자가 지워지는건 아닙니다.)

7.<lcd.scrollDisplayLeft(), lcd.scrollDisplayRight() >

lcd.scrollDisplayLeft() :LCD Display내용을 한칸 왼쪽으로 쉬프팅함

lcd.scrollDisplayRight() :LCD Display내용을 한칸 오른쪽으로 쉬프팅함

lcd.scrollDisplayLeft(), lcd.scrollDisplayRight()소스

한칸씩 쉬프팅하기 때문에 for문을 이용했습니다. 문자는 총 15글자이기때문에 15번 왼쪽으로 밀어내고 다시 15문자를 가져오고 LCD문자표시가 16자이기 때문에 31만큼 오른쪽으로 밀어 냅니다.

그리고 16글자를 다시 왼쪽으로 끌어오면 원래위치에서 반복하게 되는 것입니다.

위 소스를 동작해보면 문자열이 쉬프팅 되는 것을 확인 할 수 있습니다.

 

반응형

+ Recent posts