본문 바로가기

개발자

라즈베리파이3 B+ OLED 모듈 구동하기

 

SSD1306 0.96inch OLED 모듈 테스트 : I2C 0.96” OLED Display Module

 

OLED는 기존 LED와 다르게 유기물질을 이용해 자체 발광이 가능하게 만들어진 다이오드이다. OLED는 자체 발광형이며, 시야각이 넓고, 응답속도가 빠르며(LED의 1000배) 백라이트가 필요없기 때문에 소비 전력이 적다. 유기물질로 이루어져 있어 기존 LED와 다르게 휘어지며, 얇고, 가벼운 장점이 있다. 

 

- 출처 : 나무위키백과 - 자세한 OLED 설명 참고 : https://namu.wiki/w/OLED

 

I2C 방식의 OLED를 라즈베리파이에서 사용하는 방법은 아두이노 보다 더 간단하다. 

 

I2C 0.96” OLED Display Module의 핀구성

 

 

라즈베리파이3 B+ 연결도는 아래와 같다. 이미지를 클릭하면 연결도와 핀 번호를 상세하게 볼 수 있다.

 

테스트 방법은 아래와 같다.

 

* 라이브러리 및 소스 다운로드 

 

참고) http://blog.naver.com/PostView.nhn?blogId=makepluscode&logNo=221375105015

 

소스코드를 다운로드합니다.

 

$ git clone https://github.com/iliapenev/ssd1306_i2c.git

 

다운로드 폴더로 이동합니다.

 

$ cd ssd1306_i2c/

 

$ls 명령을 사용하여 파일을 확인합니다.

 

pi@raspberrypi:~/ssd1306_i2c $ ls

 

README demo.c oled_fonts.h ssd1306_i2c.c ssd1306_i2c.h

 

아래 명령을 사용하여 컴파일 합니다.

 

$ gcc –o demo demo.c ssd1306_i2c.c -lwiringPi

 

실행하여 OLED 화면을 확인합니다. 

 

$sudo ./demo

 

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
라즈베리파이에서 폴더를 하나 만들어 줍니다. 폴더 이름은 oledtest 로 합니다.
pi@raspberrypi:~ $ mkdir oledtest
 
소스코드 다운로드를 방금 들어준 폴더로 이동합니다.
pi@raspberrypi:~ $ cd oledtest/
 
어떤 파일들이 있는지 알아보기  위해 $ls 명령을 사용합니다.
지금은 아무것도 없습니다. ^^
pi@raspberrypi:~/oledtest $ ls
pi@raspberrypi:~/oledtest $
 
라이브러리와 ㅗ스코드를 다운로드 합니다.
pi@raspberrypi:~/oledtest $ git clone https://github.com/iliapenev/ssd1306_i2c.git
'ssd1306_i2c'에 복제합니다...
remote: Enumerating objects: 7, done.
remote: Total 7 (delta 0), reused 0 (delta 0), pack-reused 7
오브젝트 묶음 푸는 중: 100% (7/7), 완료.
 
pi@raspberrypi:~/oledtest $ 
 
여기서 다운로드 받은 폴더로 이동합니다.
pi@raspberrypi:~/oledtest $ cd ssd1306_i2c/
pi@raspberrypi:~/oledtest/ssd1306_i2c $
 
파일을 보기위해 $ls 명령어를 사용합니다.
pi@raspberrypi:~/oledtest/ssd1306_i2c $ ls
README  demo.c  oled_fonts.h  ssd1306_i2c.c  ssd1306_i2c.h
 
컴파일합니다. 경고 메세지는 무시합니다.
pi@raspberrypi:~/oledtest/ssd1306_i2c $ gcc –o demo demo.c ssd1306_i2c.c -lwiringPi
demo.c: In function ‘main’:
demo.c:13:2: warning: implicit declaration of function ‘delay’ [-Wimplicit-function-declaration]
  delay(5000);
  ^~~~~
ssd1306_i2c.c: In function ‘ssd1306_fillRect’:
ssd1306_i2c.c:724:3: warning: implicit declaration of function ‘swap_values’ [-Wimplicit-function-declaration]
   swap_values(x, y);
   ^~~~~~~~~~~
 
아래처럼 실행을 하면 OLED 에 아름다운 출력을 확인합니다.
pi@raspberrypi:~/oledtest/ssd1306_i2c $ sudo ./demo
 

 

 

참고 OLED 화면 기구 사이즈