[디스플레이/OLED] 저전력의 최소 핀으로 구현가능한 고해상도 소형 OLED (128x64) 모듈
OLED 모듈을 사용해 아두이노에서 간단히 스크린으로 출력하는 가이드
▶ 이 가이드를 따라하면
- 128x64 OLED (0.96") 모듈을 사용해 아두이노에서 디스플레이를 구현할 수 있다
- 공개된 U8glib라이브러리를 사용해봄으로써, 디스플레이 라이브러리 대표작을 사용해볼 수 있다.
▶ 먼저 읽으면 좋은 글
- 라이브러리 설치 방법 : http://bbangpan.tistory.com/1
▶ 부품 설명 및 회로 구성
중국산 OLED 모듈(128x64)은 매우 저가에 소비전력도 작아, 아두이노용 디스플레이를 구현하여 활용하기가 쉽다. 다른 LCD등도 있지만 고가이거나, 핀이 많이 필요해서, I2C(Inter Integrated Circuit, 나중에 알아보자) 통신을 지원하는 이 OLED모듈의 효용성은 매우 크다. 아두이노 보드의 5V, GND, SDA, SCL에 각각 해당 핀을 연결하면 배선은 끝난다. 참고로 OLED모듈은 노란색, 파란색, 흰색 혹은 일부 영역만 노란색인 버전 등 다양하게 존재한다(사진 참조)
<Arduino UNO + OLED 모듈 / 상단만 노란색인 OLED모듈도 존재한다>
<Arduino UNO + OLED 모듈 / 파란색 OLED 버전 연결>
▶ 라이브러리 설치
https://code.google.com/p/u8glib/ 에서 Arduino용 U8glib을 다운로드 받는다.
<U8glib 사이트, 가운데 U8glib for Arduino를 선택해 u8glib_arduino_v1.17.zip을 다운받는다>
역시 Arduino 설치 폴더의 libraries폴더 하단에 해당 압축을 푼 후 Arduino를 재시작하여 라이브러리 사용 준비를 마친다.
▶ 소스 코드 입력 및 구동
Arduino IDE를 실행하여 새로운 소스를 연 후, 아래 소스 코드를 입력하여 저장한다. 참고로 소스를 저장하면 윈도우 사용자 문서폴더 하단의 Arduino폴더에 저장된다. U8glib은 다양한 활용이 가능한데, 아래는 특정 위치에 텍스트 출력과 테두리 박스를 그리는 예제이다.
GitHub 원본 소스 링크 : https://github.com/bbangpan/bbangpan.com/blob/master/neibc_oled/neibc_oled.ino
-----------------------------------------------------------
/* Originally posted on www.bbangpan.com
Program Description: OLED 128x64 0.96" test code
Needed library : U8glib
Tested on : Arduino 1.0.6, Arduino UNO R3/NANO, OLED 128x64
Copyright (c) 2015 www.bbangpan.com. All right reserved.
This program can be used for any non-commercial purpose freely. */
#include "U8glib.h"
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);
void printText() {
u8g.setFont(u8g_font_unifont);
u8g.setPrintPos(6,15);
u8g.print("Hello, world!");
u8g.drawFrame(2,2,126,62);
}
void setup(void) {
}
void loop(void) {
delay(1000); // dummy code
u8g.firstPage();
do {
printText();
} while( u8g.nextPage() );
}
---------------------------------------------------
소스를 upload(à) 버튼을 눌러 실행한다. U8glib 라이브러리는 크기가 다소 커서 컴파일 시간 등은 10초 이상 소요될 수 있다.
▶ 구매 가이드
OLED는 아래 링크를 참조한다. aliexpress같은 해외사이트에서는 배송기간은 다소 길지만, 저렴하게 부품구매가 가능하다.
OLED : http://www.aliexpress.com/wholesale?SearchText=arduino+oled+128+64 I2C가 아닌 OLED 모듈이 존재할 수 있으니 주의를 하자.
(핀이 SDA, SCL이 존재하지 않는 즉 I2C통신 방식을 제공하지 않은 경우는 핀이 부족할 수 있으므로 가급적 피하자)
▶ 강의 키워드
OLED 128x96, OLED 디스플레이, Arduino UNO, 아두이노 우노