SSD1306 OLED

개요

Nol.Board를 이용하여 SSD1306 기반의 OLED display 장치를 I2C로 제어하는 방법을 알아보겠습니다.

Diymore의 0.96″ white OLED display
Adafruit의 0.96″ monochrome OLED display

SSD1306은 최대 128×64 해상도의 common cathode type의 OLED, PLED 디스플레이 장치 제어를 지원하는 하드웨어 입니다. Nol.A-SDK에서 지원하는 SSD1306 드라이버는 Adafruit_GFX 라이브러리를 상속받아 사용합니다.
관련 드라이버 코드는 Nol.A Device Driver에서 찾을 수 있습니다.

하드웨어 소개

Adafruit_SSD1306 드라이버는 SSD1306 기반의 디스플레이라면 뭐든지 사용이 가능합니다.

Diymore의 0.96″ white OLED display

중국 Diymore에서 생산한 0.96″ while OLED display는 I2C만 지원합니다.

모듈의 뒷면에는 I2C 주소를 선택할 수 있는 부분이 있습니다. 0x78, 0x7A 중 선택이 가능하며 기본적으로 0x78로 납땜되어 있습니다. 우리가 사용하는 Adafruit_SSD1306 드라이버 기준으로는 이 주소를 오른쪽으로 1-bit 쉬프트하여 사용하여야 합니다. 즉, 0x78은 0x3C, 0x7A는 0x3D 입니다.

구매하기

Adafruit의 Monochrome 0.96″ 128×64 OLED graphic display


위 사진은 SSD1306의 뒷모습입니다. 붉은색 네모 박스의 SJ1, SJ2의 상태에 따라 SPI, I2C로 사용할 수 있습니다. 기본적으로 SPI로 사용할 수 있도록 SJ1, SJ2가 오픈된 상태입니다. I2C로 사용하기 위해서는 SJ1, SJ2가 CLOSE되어야 합니다.

구매하기

결선도

  • GND to GND
  • Vin to 5V (Adafruit), to VDD (diymore)
  • Rst to D2 (Adafruit만 해당, 다른 핀으로 선택 가능)
  • Clk to SCL
  • Data to SDA

Example Code

Nol.Board를 이용하여 OLED display 장치를 제어하는 예제코드는 CoXlab Github에서 찾을 수 있습니다.

예제 코드는 상속받은 Adafruit_GFX 라이브러리를 이용하여 Buffer에 도형을 그리고 display함수를 이용하여 Buffer의 내용을 OLED화면에 나타냅니다.