상세 컨텐츠

본문 제목

아두이노와 LCD I2C로 연결, I2C 주소 확인 방법

전기 전자 가스

by 강가이버 2016. 5. 25. 00:44

본문


남는 16X4 LCD가 있어 I2C 인터페이스보드를 결합해서 사용하고자 합니다. 오늘은 LCD를 I2C로 배선 연결하는 방법과 스케치 작성 시 주의해야 할 I2C 주소 확인방법에 대해 포스팅하려고 합니다.


1. 아두이노와 LCD I2C로 연결, I2C 주소 확인 방법  


1. LCD와 인터페이스보드 조립

기존에 다른 장비에서 사용하던 LCD와 I2C 인터페이스 보드도 하나 가지고 있어서 조립해서 사용하고자 합니다. LCD에 기존에 사용하던 커넥터가 납땜되어 있어서 커넥터를 떼어내고 그자리에 인터페이스 보드를 다시 붙였습니다. 커넥터를 떼어내다 열받아서 패턴이 떨어져버리기도 했지만 어떻게 수습을 해서 겨우 붙였네요.


2. LCD와 I2C인터페이스보드 조립LCD와 I2C인터페이스보드 조립


2. 아두이노 우노에 LCD 배선

아두이노 우노에 연결을 하기 위해 통 4개의 배선이 필요합니다.


 1) VCC : 5V 전원 (+)   -->  아두이노 우노 5V

 2) GND: 그라운드 (-)   -->  아두이노 우노 GND

 3) SDA (Serial Data)   -->  아두이노 우노 Analog Input 4번핀

 4) SCL (Serial Clock)   -->  아두이노 우노 Analog Input 5번핀



여기서 A4번과 A5번을 사용하는 이유가 있을텐데요. 아두이노 우노 회로도를 찾아보니 4, 5번이 SDA와 SCL로 지정되어 있더군요. 아마도 하드웨어상으로 I2C 통신을 지원하는 핀이 A4, A5번으로 정해져 있는거 같네요.


【아두이노 우노 회로도(Arduino Uno Schematics) 다운로드】


3. 아두이노 우노 LCD 연결아두이노 우노 LCD 연결


위와 같이 배선을 하면 됩니다. VCC와 GND는 LCD를 가동하기 위한 전원으로 아두이노 우노 보드의 POWER 커넥터에서 공급하면 됩니다. SDA와 SCL은 I2C로 통신하기 위한 선으로 SDA는 Serial Data로 실제로 데이터가 전송되는 라인이고 SCL은 마스터와 슬레이브의 동기화를 위해 필요한 배선입니다. 자세한 내용은 I2C(Inter Integrated Circuit)통신이란? 을 참고하길 바랍니다.


3. I2C 주소 확인방법

먼저 라이브러리를 추가해야 합니다. 라이브러리 추가방법은 1602 캐릭터 LCD(16×2) 사용법, 예제 소스를 참고하면 됩니다. 여기서 주의할 점은 I2C 통신의 슬레이브가 되는 부품들의 주소를 알아야된다는 것입니다. 소스코드 중 아래 부분입니다.


LiquidCrystal_I2C lcd(0X27,16,2);  //16문자 2줄


여기서 0X27이 LCD의 고유주소라고 생각하면 됩니다. 보통 0X27이지만 다른 LCD도 있습니다. LCD는 무조건 0X27인줄 알고있어서 시간을 많이 허비한 적이 있습니다. 아무리 해도 LCD에 글자가 표시가 안되어 LCD가 고장난 줄 알았습니다. 하지만 원인은 I2C 통신 주소였네요.



주소를 0X3F로 바꾸니 바로 동작이 되었던 경험이 있습니다. 따라서 I2C 통신으로 부품을 연결하고자 할 때에는 주소를 정확히 알아야 합니다. 즉 이 주소를 정확히 확인하려면 I2C Scannar라는 코드를 아두이노에 깔고 시리얼 모니터로 확인하면 됩니다. 대부분 0X27이나 간혹 0X3F도 있으니 꼭 확인하길 바랍니다.


4. I2C scannerI2C scanner


4. LCD 예제

I2C 주소 확인까지 마쳤다면 실제로 켜지는지 확인을 해보죠. 아래는 가장 기본적인 예제로 테스트를 해본 것입니다. 세부내용은 주석을 참고하시길 바랍니다. 참고로 LiquidCrystal_I2C lcd(0X27,16,2); 이 부분은 setup()함수 위에 위치해야 됩니다.


5. 아두이노 LCD 예제아두이노 LCD 예제


코드를 실행하면 아래와 같이 16X4열 LCD가 정상적으로 작동하는 것을 확인할 수 있습니다.


6. 아두이노 LCD 실행화면아두이노 LCD 실행화면


지금까지 아두이노 우노와 LCD를 연결하고 I2C 통신을 위한 주소 확인, 기본적인 스케치방법에 대해 알아보았습니다. I2C 주소 때문에 몇 시간을 버린 필자와 같은 삽질을 다른 분들은 하지 않길 바랍니다.

관련글 더보기

댓글 영역