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, 아두이노 우노
'아두이노 디스플레이' 카테고리의 다른 글
[디스플레이/E-ink] 전자잉크 Heltec 2.13 inch E-ink display V2 (Waveshare 2.13 inch e-paper) (0) | 2020.07.09 |
---|---|
[디스플레이/OLED] SSD1306 driver 기반의 얇고 긴 OLED, 0.91 inch 128x32 (0) | 2017.06.08 |
[디스플레이/컬러OLED] SSD1331 driver를 갖춘 color OLED 96x64 0.95 inch (0) | 2017.06.08 |
[디스플레이/WS2812] 8x8 WS2812 LED 디스플레이 사용법 (0) | 2016.12.12 |
[디스플레이/MAX7219] 8 digits LED(7 segments), MAX7219 (0) | 2015.12.19 |
[디스플레이/원형칼라LED] 링형 RGB LED WS2812 Ring x24를 사용해 심플한 조명을 구현해보자 (0) | 2015.10.16 |
[디스플레이/터치스크린] 2.4인치TFT Touchscreen LCD 쉴드(ST7781 or ILI9325) (4) | 2015.04.19 |
[디스플레이/문자LED] 4자리(digits) 영숫자 출력 가능한 LED : TM1637 모듈 (0) | 2015.04.18 |
[디스플레이/8x8 LED] MAX7219 기반 8x8 단색 LED 표시장치 (0) | 2015.04.15 |
[디스플레이/LED] 끈형태의 LED줄을 통해 조명제어를 해보자 : WS2812 LED (0) | 2015.03.29 |