아두이노와 호환되는 저렴한 OLED 모듈 사용기.
u8glib 라이브러리를 활용한 좀 더 쉬운 OLED 사용법은 http://www.dev.re.kr/51 에 포스팅 해 놓았습니다.
바로 이전 포스팅에 이어서 이번에도 알리 익스프레스에서 구매했다.
6.66$ 나름대로 저렴한 가격이다.
I2C 를 사용한다고 하는데, 이 통신 방법에 대해서는 다음 위키 페이지에서 요약된 정보를 확인할 수 있다.
http://ko.wikipedia.org/wiki/I%C2%B2C
앞 모습. 보호 필름이 발라져 있다.
뒷 모습. 핀헤더 아래를 보면 Address Select 라고 써져있는 부분이 보인다. 이 부분을 자세히 보자.
주소가 0x78 으로 표시되어 있는데, 각 디바이스마다 고유의 주소 값을 갖고 있고, 이 것을 선택하여 여러대의 I2C 기기를 컨트롤 할 수 있다고한다.
배선은 VCC(5V) 와 GND 를 각각 맞는 곳에 연결하고 Arduino uno 기준으로 (ATMega328) SDA 는 A4 에 SCL 은 A5 에 연결한다.
이 제품의 스펙을 보면 SSD1306 이라는 LCD 드라이버 칩을 사용하는 것을 알 수 있다. 데이터 시트를 보고 구현 하려다 뭔가 복잡함에 멘붕먹고 라이브러리를 찾아보았다. 관련 라이브러리는 GPL 라이센스로 Git Hub 에 MultiLCD 라는 이름으로 올라가 있다.
https://github.com/stanleyhuangyc/MultiLCD
이 OLED 모듈을 사용하기 위해서는 MicoroLCD 폴더에 있는 파일들이 필요하며 그 내부에 있는 examples 폴더에서 예제 파일을 통하여 동작을 확인해 볼 수 있다. 그리고 주소값을 입력해줘야 하는 중요한 작업이 필요한데, SSD1306.h 파일에서 위에서 세 번째 정도에 있는 #define SSD1306_I2C_ADDRESS 0x3C 부분을 #define SSD1306_I2C_ADDRESS 0x78 로 수정해 준다. 만약 주소가 0x78 이 아니라 다른 주소로 되어있을 경우에는 그 것으로 수정하면 된다. (바로 위 사진 참고.)
이제 예제를 돌려보면 다음과 같이 텍스트와 이미지가 출력되는 것을 확인할 수 있다.