오늘은 OLED를 I2C 그리고 SPI 두 가지 방식으로 통신해보도록 하겠습니다.
테스트하는 OLED의 해상도는 128 x 64이며, 그 외의 제품은 라이브러리를 바꿔주셔야 합니다.
자세한 사항은 아래를 참고해주세요.
1
4-wire SPI
초기설정으로는 SPI에서 4선을 이용하는 통신방식으로 설정되어 있습니다.
별다른 납땜없이 바로 이용할 수 있습니다.
NC 부분에는 아무것도 연결 안 해도 되며,
아래 표를 참고해서 배선해주시면 됩니다.
신기한 사실은 5V핀을 제거해도 작동이 됩니다!
프로그램 코드는 ssd1306_128x64_spi 예제를 업로드해줍니다.
동작 영상입니다.
2
I2C
I2C를 이용하기 위해서는 뒷면에 중간부분에 있는 BS1과 BS0의 값을 바꿔주셔야 됩니다.
납땜을 통해서 윗 사진처럼 변경해주신 후 (BS1이 1로 가도록)
아래 표를 참고해서 배선해주시면 됩니다.
보통 OLED의 I2C 주소는 0x3D이지만, 0x3C 일 수도 있습니다.
D/C가 GND에 연결되면 I2C 주소는 0x3C이고
D/C가 5V에 연결되면 I2C 주소는 0x3D이지만
I2C Scanner를 통해서 직접 확인한 후,
ssd1306_128x64_i2c 예제의 해당 부분의 주소를 변경해주시면 됩니다.
혹시 작동이 안 된다면, RES에 연결된 핀(VCC)을 뺏다 끼우거나
RES에 연결된 핀을 D4번핀에 끼워주시길 바랍니다.
동작 영상입니다.
영상을 확인해 보시면 SPI와 I2C의 디스플레이 속도가 차이가 있는 것을
느껴지시는 분들도 계실 것 같습니다.
그래서 비교 영상을 통해서 확인해보도록 하겠습니다.
4-wrie SPI I2C
왼쪽은 4선식 SPI 통신으로 오른쪽은 I2C 통신을 이용했습니다.
SPI가 I2C보다 상대적으로 빠르게 보입니다.
다양한 통신방식을 지원하는 OLED를 작동해 보았는데요.
작동하는 OLED를 보면, 위쪽에 노란색 띠로 되어있는 부분이 보이는데,
액정이 깨지거나 불량이 아니며,
시계나 날짜를 나타내면 쉽게 알아볼 수 있도록 다른 색으로 디스플레이가 되어 있습니다.
다만, 디스플레이의 색상변경은 불가능합니다...