예전 글 "[아두이노] 0.96인치 OLED LCD 모듈의 사용 (Adafruit SSD1306 호환)" 에서 이 디스플레이 모듈에 대해서 Adafruit 의 조금은 긴 예제를 실행해 보았다. 이 모듈은 간단한 애니메이션, 그림도 표현이 가능하나 나 같은 경우 딱히 그런 용도로 쓸 것 같지는 않다. 거의 텍스트 표시 용도로 사용될 것인데 예전 글에서 실행했던 예제는 너무 길고 좀 정신이 없었다. 그래서 그 예제 소스 중에서 텍스트 표시 하는 부분만 간추리고 소스에 주석을 달아서 사용법을 정리해 보려고 한다.
연결방법과 라이브러리 설치는 예전 글에서와 같다. 그래도 살짝 다시 정리를 해 보면...
모듈은 위와 같이 생겼다. 100원짜리 정도의 크기이며 모노크롬 화면으로서 128x64 의 해상도를 가진다. 7개의 핀을 아두이노와 연결해서 사용한다.
모듈 뒷면의 모습이다.
더욱 자세한 정보는 아래의 링크를 참고하면 된다.
아두이노와의 연결은 아래와 같이 하면 된다.
0.96" OLED Display Module | Arduino Uno |
GND | GND |
VDD | 3.3V (5V에 연결해도 됩니다.) |
SCK | D10 |
SDA | D9 |
RES | D13 |
DC | D11 |
CS | D12 |
아두이노 우노와 OLED 모듈을 연결한 모습
■ 소스
아래 소스의 실행을 위해서는 아래 두 개의 라이브러리를 설치해야 한다.
Adafruit-GFX-Library-master.zip
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | //** http://deneb21.tistory.com/429 #include <SPI.h> #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> // software SPI 통신핀 설정 #define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13 Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS); void setup() { //adafruit 로고(기본로고) 보여줌 (디스플레이 ON) display.begin(); display.display(); //디스플레이 표시함, 이것을 실행하지 않으면 표시 안됨. delay(2000); display.clearDisplay(); //지우기 (다음 텍스트를 표시해야 지워짐) //텍스트 표시 #1 display.setTextSize(1); //텍스트 크기 조절 display.setTextColor(WHITE); //텍스트 색상 display.setCursor(0,0); //텍스트 표시 좌표 (X,Y 픽셀단위) display.println("Hello, world!"); //표시 텍스트 display.setTextColor(BLACK, WHITE); //텍스트 색상: 흰색배경, 검은 글씨 display.println("Hello, world!"); display.setTextSize(2); //텍스트 사이즈 크게, 2 display.setTextColor(WHITE); display.println("Hello, world!"); display.display(); delay(5000); display.clearDisplay(); //텍스트 표시 #2 display.setCursor(25,30); //텍스트를 디스플레이 중간에 표시 display.setTextSize(1); display.setTextColor(WHITE); display.println("Hello, world!"); display.display(); delay(3000); display.clearDisplay(); //텍스트 표시 #3 display.setCursor(0,0); //텍스트를 디스플레이 중간에 표시 display.println("Hello, korea!"); display.println("Hello, all!"); display.display(); } void loop() { // put your main code here, to run repeatedly: } | cs |
소스에 주석을 달았지만 다시 한 번 설명하자면
display.begin() : 디스플레이 ON
display.setTextSize(사이즈) : 텍스트 크기 설정
display.setTextColor(텍스트컬러,배경컬러) : 텍스트 컬러 설정, 모노크롬 이기 때문에 BLACK, WHITE 밖에 없음, 배경컬러 생략가능
display.setCursor(X, Y) : 텍스트 표시 좌표설정 (픽셀 단위로서 X 는 0~128, Y는 0~64)
display.println("텍스트") : 표시할 텍스트 또는 숫자 지정, 이전 텍스트에 이어 쓰기를 원할 경우 display.print("텍스트") 도 사용가능
display.display() : 설정한 텍스트를 화면에 표시
display.clearDisplay() : 화면 지우기, 하지만 다른 텍스트 표시 전에는 이 명령을 사용해도 지워지지 않음
이 정도만 알면 OLED 디스플레이에 텍스트를 출력하는데 문제가 없는 듯 하다.
위의 소스를 실행하는 모습을 동영상으로 찍어 보았다. 크기에 비해 해상도가 높아서 예전의 16x2 LCD 보다는 쓰임새가 많은 모듈이다.
'아두이노' 카테고리의 다른 글
[아두이노] DHT11과 OLED 디스플레이를 이용한 온습도계 개선편 (0) | 2016.08.04 |
---|---|
[아두이노] DHT11과 OLED 디스플레이를 이용한 온습도계 (0) | 2016.08.04 |
[아두이노] DF Player Mini 모듈을 이용한 MP3 제어 #2 -초음파 센서 추가 (30) | 2016.07.13 |
[아두이노] DF Player Mini 모듈을 이용한 MP3 제어 #1 -기본제어 (21) | 2016.07.13 |
[아두이노] 4채널 릴레이 모듈 테스트 (0) | 2016.07.11 |