SH1106 1.3인치 단색 OLED 디스플레이
일반
SH1106 칩셋을 사용한 1.3인치 단색 OLED 디스플레이 입니다. I2C 또는 SPI 인터페이스를 사용합니다.

호환 모듈
- 128×32 OLED
- 128×64 OLED
- 96×16 OLED
사양
- Resolution: 128x32 or 128x64 or 96×16
- Control chip: SSH1106
- Driving voltage: 3.3-5V
- Operating temperature: -40 ℃ to 70 ℃
사용 가능한 GPIO
- 라즈베리파이 0~4
- 라즈베리파이 5
- 비글본 블랙/그린
- 젯슨 나노
- FT232H, FT2232H, FT4232H
- MCP2221
명령
[INIT]
초기 설정을 입력합니다.
항목 | 타입 | 설명 |
---|---|---|
타입 | WRITE | OLED의 크기를 선택합니다. (128×32,128×64,96×16) |
RESET핀 | WRITE | 하드웨어 Reset 기능을 사용할 경우 연결할 GPIO 핀 번호입니다. 해당기능을 사용하지 않을 경우 -1을 입력하고 RESET핀은 3.3V에 연결합니다. |
D/C핀 | WRITE | D/C (Data/Command)핀에 연결할 GPIO 핀 번호를 입력합니다. SPI 인터페이스를 사용할때만 표시됩니다. |
[SET_ROTATION]
디스플레이의 표시방향을 설정합니다.
항목 | 타입 | 설명 |
---|---|---|
회전방향 | WRITE | 텍스트, 도형등이 표시되는 방향을 선택합니다. (0도,90도,180도,270도) |
[DISPLAY]
설정된 내용을 디스플레이에 표시합니다.
[CLEAR]
디스플레이에 설정된 내용을 모두 삭제합니다. 버퍼 메모리만 삭제되므로 디스플레이에 표시된 내용을 삭제하려면 DISPLAY 명령을 실행해야 합니다.
[INVERT_DISPLAY]
디스플레이의 색상을 반전할지 여부를 설정합니다.
항목 | 타입 | 설명 |
---|---|---|
반전 | WRITE | 값이 true이면 반전된 색상을, false이면 원래 색상을 표시합니다. |
[SET_CURSOR]
디스플레이에 텍스트를 쓸 위치를 지정합니다.
항목 | 타입 | 설명 |
---|---|---|
위치(x) | WRITE | 텍스트의 시작위치(x)를 입력합니다. 디스플레이의 가장 왼쪽 픽셀이 0이며 오른쪽으로 갈수록 증가합니다. |
위치(y) | WRITE | 텍스트의 시작위치(y)를 입력합니다. 디스플레이의 가장 위의 픽셀이 0이며 아래로 갈수록 증가합니다. |
[PRINT_TEXT]
디스플레이에 텍스트를 설정합니다. DISPLAY명령을 실행해야 디스플레이에 표시됩니다.
항목 | 타입 | 설명 |
---|---|---|
텍스트 | WRITE | 표시할 텍스트를 입력합니다. |
크기 | WRITE | 텍스트의 크기를 입력합니다. (1~255) |
자동줄바꿈 | WRITE | 텍스트의 길이가 가로 표시범위를 초과했을때 자동으로 줄바꿈할지 여부를 설정합니다. |
글자색 | WRITE | 글자색을 선택합니다. BLACK은 픽셀 OFF시 색상, WHITE는 픽셀 ON시 색상을 의미합니다. (BLACK, WHITE) |
배경색 | WRITE | 배경색을 선택합니다. BLACK은 픽셀 OFF시 색상, WHITE는 픽셀 ON시 색상을 의미합니다. (BLACK, WHITE) |
[DRAW_PIXEL]
디스플레이의 지정위치의 픽셀을 설정합니다. DISPLAY 명령을 실행해야 디스플레이에 표시됩니다.
항목 | 타입 | 설명 |
---|---|---|
위치(x) | WRITE | 픽셀의 위치(x)를 입력합니다. 디스플레이의 가장 왼쪽 픽셀이 0이며 오른쪽으로 갈수록 증가합니다. |
위치(y) | WRITE | 픽셀의 위치(y)를 입력합니다. 디스플레이의 가장 위의 픽셀이 0이며 아래로 갈수록 증가합니다. |
색상 | WRITE | 픽셀의 색상을 선택합니다. BLACK은 픽셀 OFF시 색상, WHITE는 픽셀 ON시 색상을 의미합니다. (BLACK, WHITE) |
[DRAW_LINE]
디스플레이에 직선을 설정합니다. DISPLAY 명령을 실행해야 디스플레이에 표시됩니다.
항목 | 타입 | 설명 |
---|---|---|
시작점(x) | WRITE | 직선의 시작위치(x)를 입력합니다. 디스플레이의 가장 왼쪽 픽셀이 0이며 오른쪽으로 갈수록 증가합니다. |
시작점(y) | WRITE | 직선의 시작위치(y)를 입력합니다. 디스플레이의 가장 위의 픽셀이 0이며 아래로 갈수록 증가합니다. |
종료점(x) | WRITE | 직선의 종료위치(x)를 입력합니다. 디스플레이의 가장 왼쪽 픽셀이 0이며 오른쪽으로 갈수록 증가합니다. |
종료점(y) | WRITE | 직선의 종료위치(y)를 입력합니다. 디스플레이의 가장 위의 픽셀이 0이며 아래로 갈수록 증가합니다. |
색상 | WRITE | 직선의 색상을 선택합니다. BLACK은 픽셀 OFF시 색상, WHITE는 픽셀 ON시 색상을 의미합니다. (BLACK, WHITE) |
[DRAW_TRIANGLE]
디스플레이에 속이 빈 삼각형을 설정합니다. DISPLAY 명령을 실행해야 디스플레이에 표시됩니다.
항목 | 타입 | 설명 |
---|---|---|
점1(x) | WRITE | 삼각형의 점1의 위치(x)를 입력합니다. 디스플레이의 가장 왼쪽 픽셀이 0이며 오른쪽으로 갈수록 증가합니다. |
점1(y) | WRITE | 삼각형의 점1의 위치(y)를 입력합니다. 디스플레이의 가장 위의 픽셀이 0이며 아래로 갈수록 증가합니다. |
점2(x) | WRITE | 삼각형의 점2의 위치(x)를 입력합니다. 디스플레이의 가장 왼쪽 픽셀이 0이며 오른쪽으로 갈수록 증가합니다. |
점2(y) | WRITE | 삼각형의 점2의 위치(y)를 입력합니다. 디스플레이의 가장 위의 픽셀이 0이며 아래로 갈수록 증가합니다. |
점3(x) | WRITE | 삼각형의 점3의 위치(x)를 입력합니다. 디스플레이의 가장 왼쪽 픽셀이 0이며 오른쪽으로 갈수록 증가합니다. |
점3(y) | WRITE | 삼각형의 점3의 위치(y)를 입력합니다. 디스플레이의 가장 위의 픽셀이 0이며 아래로 갈수록 증가합니다. |
색상 | WRITE | 삼각형의 색상을 선택합니다. BLACK은 픽셀 OFF시 색상, WHITE는 픽셀 ON시 색상을 의미합니다. (BLACK, WHITE) |
[FILL_TRIANGLE]
디스플레이에 속이 찬 삼각형을 설정합니다. DISPLAY 명령을 실행해야 디스플레이에 표시됩니다.
항목 | 타입 | 설명 |
---|---|---|
점1(x) | WRITE | 삼각형의 점1의 위치(x)를 입력합니다. 디스플레이의 가장 왼쪽 픽셀이 0이며 오른쪽으로 갈수록 증가합니다. |
점1(y) | WRITE | 삼각형의 점1의 위치(y)를 입력합니다. 디스플레이의 가장 위의 픽셀이 0이며 아래로 갈수록 증가합니다. |
점2(x) | WRITE | 삼각형의 점2의 위치(x)를 입력합니다. 디스플레이의 가장 왼쪽 픽셀이 0이며 오른쪽으로 갈수록 증가합니다. |
점2(y) | WRITE | 삼각형의 점2의 위치(y)를 입력합니다. 디스플레이의 가장 위의 픽셀이 0이며 아래로 갈수록 증가합니다. |
점3(x) | WRITE | 삼각형의 점3의 위치(x)를 입력합니다. 디스플레이의 가장 왼쪽 픽셀이 0이며 오른쪽으로 갈수록 증가합니다. |
점3(y) | WRITE | 삼각형의 점3의 위치(y)를 입력합니다. 디스플레이의 가장 위의 픽셀이 0이며 아래로 갈수록 증가합니다. |
색상 | WRITE | 삼각형의 색상을 선택합니다. BLACK은 픽셀 OFF시 색상, WHITE는 픽셀 ON시 색상을 의미합니다. (BLACK, WHITE) |
[DRAW_RECT]
디스플레이에 속이 빈 사각형을 설정합니다. DISPLAY 명령을 실행해야 디스플레이에 표시됩니다.
항목 | 타입 | 설명 |
---|---|---|
시작점(x) | WRITE | 사각형의 시작점 (좌측상단) 위치(x)를 입력합니다. 디스플레이의 가장 왼쪽 픽셀이 0이며 오른쪽으로 갈수록 증가합니다. |
시작점(y) | WRITE | 사각형의 시작점 (좌측상단) 위치(y)를 입력합니다. 디스플레이의 가장 위의 픽셀이 0이며 아래로 갈수록 증가합니다. |
가로길이 | WRITE | 사각형의 가로길이를 입력합니다. |
세로길이 | WRITE | 사각형의 세로길이를 입력합니다. |
색상 | WRITE | 사각형의 색상을 선택합니다. BLACK은 픽셀 OFF시 색상, WHITE는 픽셀 ON시 색상을 의미합니다. (BLACK, WHITE) |
[FILL_RECT]
디스플레이에 속이 찬 사각형을 설정합니다. DISPLAY 명령을 실행해야 디스플레이에 표시됩니다.
항목 | 타입 | 설명 |
---|---|---|
시작점(x) | WRITE | 사각형의 시작점 (좌측상단) 위치(x)를 입력합니다. 디스플레이의 가장 왼쪽 픽셀이 0이며 오른쪽으로 갈수록 증가합니다. |
시작점(y) | WRITE | 사각형의 시작점 (좌측상단) 위치(y)를 입력합니다. 디스플레이의 가장 위의 픽셀이 0이며 아래로 갈수록 증가합니다. |
가로길이 | WRITE | 사각형의 가로길이를 입력합니다. |
세로길이 | WRITE | 사각형의 세로길이를 입력합니다. |
색상 | WRITE | 사각형의 색상을 선택합니다. BLACK은 픽셀 OFF시 색상, WHITE는 픽셀 ON시 색상을 의미합니다. (BLACK, WHITE) |
[DRAW_ROUND_RECT]
디스플레이에 속이 빈 모서리가 둥근 사각형을 설정합니다. DISPLAY 명령을 실행해야 디스플레이에 표시됩니다.
항목 | 타입 | 설명 |
---|---|---|
시작점(x) | WRITE | 사각형의 시작점 (좌측상단) 위치(x)를 입력합니다. 디스플레이의 가장 왼쪽 픽셀이 0이며 오른쪽으로 갈수록 증가합니다. |
시작점(y) | WRITE | 사각형의 시작점 (좌측상단) 위치(y)를 입력합니다. 디스플레이의 가장 위의 픽셀이 0이며 아래로 갈수록 증가합니다. |
가로길이 | WRITE | 사각형의 가로길이를 입력합니다. |
세로길이 | WRITE | 사각형의 세로길이를 입력합니다. |
모서리반지름 | WRITE | 사각형 모서리의 반지름을 입력합니다. |
색상 | WRITE | 사각형의 색상을 선택합니다. BLACK은 픽셀 OFF시 색상, WHITE는 픽셀 ON시 색상을 의미합니다. (BLACK, WHITE) |
[FILL_ROUND_RECT]
디스플레이에 속이 찬 모서리가 둥근 사각형을 설정합니다. DISPLAY 명령을 실행해야 디스플레이에 표시됩니다.
항목 | 타입 | 설명 |
---|---|---|
시작점(x) | WRITE | 사각형의 시작점 (좌측상단) 위치(x)를 입력합니다. 디스플레이의 가장 왼쪽 픽셀이 0이며 오른쪽으로 갈수록 증가합니다. |
시작점(y) | WRITE | 사각형의 시작점 (좌측상단) 위치(y)를 입력합니다. 디스플레이의 가장 위의 픽셀이 0이며 아래로 갈수록 증가합니다. |
가로길이 | WRITE | 사각형의 가로길이를 입력합니다. |
세로길이 | WRITE | 사각형의 세로길이를 입력합니다. |
모서리반지름 | WRITE | 사각형 모서리의 반지름을 입력합니다. |
색상 | WRITE | 사각형의 색상을 선택합니다. BLACK은 픽셀 OFF시 색상, WHITE는 픽셀 ON시 색상을 의미합니다. (BLACK, WHITE) |
[DRAW_CIRCLE]
디스플레이에 속이 빈 원을 설정합니다. DISPLAY 명령을 실행해야 디스플레이에 표시됩니다.
항목 | 타입 | 설명 |
---|---|---|
중심(x) | WRITE | 원의 중심점 위치(x)를 입력합니다. 디스플레이의 가장 왼쪽 픽셀이 0이며 오른쪽으로 갈수록 증가합니다. |
중심(y) | WRITE | 원의 중심점 위치(y)를 입력합니다. 디스플레이의 가장 위의 픽셀이 0이며 아래로 갈수록 증가합니다. |
반지름 | WRITE | 원의 반지름을 입력합니다. |
색상 | WRITE | 원의 색상을 선택합니다. BLACK은 픽셀 OFF시 색상, WHITE는 픽셀 ON시 색상을 의미합니다. (BLACK, WHITE) |
[FILL_CIRCLE]
디스플레이에 속이 찬 원을 설정합니다. DISPLAY 명령을 실행해야 디스플레이에 표시됩니다.
항목 | 타입 | 설명 |
---|---|---|
중심(x) | WRITE | 원의 중심점 위치(x)를 입력합니다. 디스플레이의 가장 왼쪽 픽셀이 0이며 오른쪽으로 갈수록 증가합니다. |
중심(y) | WRITE | 원의 중심점 위치(y)를 입력합니다. 디스플레이의 가장 위의 픽셀이 0이며 아래로 갈수록 증가합니다. |
반지름 | WRITE | 원의 반지름을 입력합니다. |
색상 | WRITE | 원의 색상을 선택합니다. BLACK은 픽셀 OFF시 색상, WHITE는 픽셀 ON시 색상을 의미합니다. (BLACK, WHITE) |
[FILL_SCREEN]
디스플레이 전체를 채웁니다. DISPLAY 명령을 실행해야 디스플레이에 표시됩니다.
항목 | 타입 | 설명 |
---|---|---|
색상 | WRITE | 채울 색상을 선택합니다. BLACK은 픽셀 OFF시 색상, WHITE는 픽셀 ON시 색상을 의미합니다. (BLACK, WHITE) |
[DRAW_BITMAP]
디스플레이에 bmp 형식의 이미지파일을 설정합니다. DISPLAY 명령을 실행해야 디스플레이에 표시됩니다.
항목 | 타입 | 설명 |
---|---|---|
파일경로 * | WRITE | 이미지 파일의 로컬 경로를 입력합니다. (예: /home/pi/test.bmp) |
시작점(x) | WRITE | 이미지의 좌측상단의 위치(x)를 입력합니다. 디스플레이의 가장 왼쪽 픽셀이 0이며 오른쪽으로 갈수록 증가합니다. |
시작점(y) | WRITE | 이미지의 좌측상단의 위치(y)를 입력합니다. 디스플레이의 가장 위의 픽셀이 0이며 아래로 갈수록 증가합니다. |
* 컬러 이미지는 자동으로 흑백으로 변환됩니다.
[START_SCROLL]
디스플레이에 표시된 내용을 스크롤합니다.
항목 | 타입 | 설명 |
---|---|---|
방향 | WRITE | 스크롤 방향을 선택합니다. (좌측,우측,대각선좌측, 대각선우측) |
시작행 | WRITE | 시작행을 입력합니다. 가장 위의 행이 0입니다. (0~7) |
종료행 | WRITE | 종료행을 입력합니다. 가장 위의 행이 0입니다. (0~7) |
[STOP_SCROLL]
스크롤을 중지합니다.
[DIM]
디스플레이의 밝기를 감소시킵니다.
항목 | 타입 | 설명 |
---|---|---|
밝기감소 | WRITE | true 이면 밝기를 감소시키고, false이면 원래 밝기로 복귀합니다. |
예제
목표
대시보드 위젯의 버튼을 클릭하면 움직이는 애니메이션을 표시합니다.
부품
부품 | 갯수 |
---|---|
라즈베리파이 4 * | 1 |
SSH1106 OLED | 1 |
연결 (I2C)
SSH1106 OLED | GPIO |
---|---|
VIN | 3.3V |
GND | GND |
SCL | 3 (I2C1 SCL) |
SDA | 2 (I2C1 SDA) |
RESET (RST) | 3.3V * |

연결 (SPI)
SSH1106 OLED | GPIO |
---|---|
VIN | 3.3V |
GND | GND |
CS | 8 (SPI0 CE0) |
DATA | 10 (SPI0 MOSI) |
CLK | 11 (SPI0 SCLK) |
RESET (RST) | 3.3V * |
D/C | 23 ** |
** 임의의 GPIO핀에 연결할 수 있습니다.

프로젝트