아두이노 나노 OLED
이 튜토리얼에서는 Arduino Nano와 OLED 디스플레이를 사용하는 방법을 안내합니다. 구체적으로, 우리는 다음을 학습할 것입니다:
- 아두이노 나노와 OLED 디스플레이를 연결하는 방법.
- 아두이노 나노를 프로그래밍하여 OLED에 텍스트와 숫자를 표시하는 방법.
- 아두이노 나노를 프로그래밍하여 OLED에서 텍스트와 숫자를 수직 및 수평으로 중앙 정렬하는 방법.
- 아두이노 나노를 프로그래밍하여 OLED에 그림을 그리는 방법.
- 아두이노 나노를 프로그래밍하여 OLED에 이미지를 표시하는 방법.
준비물
| 1 | × | 아두이노 나노 | 쿠팡 | 아마존 | |
| 1 | × | USB A to Mini-B USB 케이블 | 쿠팡 | 아마존 | |
| 1 | × | SSD1306 I2C OLED 디스플레이 128x64 | 쿠팡 | 아마존 | |
| 1 | × | SSD1306 I2C OLED 디스플레이 128x32 | 아마존 | |
| 1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 나노용 스크루 터미널 확장 보드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 나노용 브레이크아웃 확장 보드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 나노용 전원 분배기 | 쿠팡 | 아마존 |
OLED 디스플레이에 대하여
다양한 종류의 OLED 디스플레이가 있습니다. Arduino Nano와 가장 흔하게 사용되는 OLED는 SSD1306 I2C OLED 128x64 및 128x32 디스플레이입니다.

I2C OLED 디스플레이 핀아웃
- GND 핀: 이것은 아두이노 나노의 그라운드에 연결되어야 합니다.
- VCC 핀: 이것은 디스플레이의 전원 공급 장치로서 3.3V 또는 5V에 연결되어야 합니다.
- SCL 핀: 이것은 I2C 인터페이스를 위한 직렬 시계 핀입니다.
- SDA 핀: 이것은 I2C 인터페이스를 위한 직렬 데이터 핀입니다.

※ 주의:
- OLED 모듈의 핀은 제조사와 유형에 따라 다를 수 있습니다. OLED 모듈에 인쇄된 라벨을 사용해 주세요. 주의 깊게 살펴보세요!
- 이 튜토리얼은 SSD1306 I2C 드라이버로 구동되는 OLED 디스플레이를 사용합니다. DIYables에서 OLED 디스플레이를 테스트하였고 완벽하게 작동합니다.
선연결
아두이노 나노와 OLED 128x64 간의 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
브레드보드 없이 연결한 같은 배선입니다:

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
점퍼 와이어는 프로젝트를 옮길 때 빠질 수 있습니다. 아두이노 나노용 스크루 터미널 확장 보드를 사용해 보세요. Arduino Nano를 그 위에 장착하면 각 핀마다 나사 단자가 있습니다. 아래 다이어그램은 나사 단자 보드를 사용한 같은 배선을 보여 줍니다.

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
아두이노 나노와 OLED 128x32 사이의 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
아래 그림은 브레드보드 없이 같은 연결을 보여줍니다:

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
배선이 제자리에 단단히 고정되기를 원하시나요? Arduino Nano는 아두이노 나노용 스크루 터미널 확장 보드에 꽂을 수 있으며, 이 보드는 모든 핀을 나사 단자로 바꿔 줍니다. 아래는 나사 단자 보드를 사용한 배선도입니다.

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
Arduino Nano와 기타 부품에 전원을 공급하는 가장 효과적인 방법은 다음 링크를 참조하세요: 아두이노 나노 전원 공급 방법.
아두이노 나노와 OLED 디스플레이 사이의 배선 표:
| OLED Module | Arduino Nano |
|---|---|
| Vin | 5V |
| GND | GND |
| SDA | A4 |
| SCL | A5 |
아두이노 나노에서 OLED 사용 방법
SSD1306 OLED 라이브러리 설치
- Arduino IDE의 왼쪽 바에 있는 Libraries 아이콘을 클릭하세요.
- “SSD1306”을 검색하고 Adafruit의 SSD1306 라이브러리를 찾으세요.
- 그런 다음, Install 버튼을 눌러 설치를 완료하세요.

- 추가 라이브러리 종속성을 설치하라는 메시지가 표시됩니다.
- 모두 설치하려면 Install All 버튼을 클릭하세요.

OLED 프로그래밍 방법
도서관을 포함하세요.
OLED 화면의 크기를 128 x 64로 지정하세요.
OLED 화면의 크기를 128x32로 지정하십시오.
SSD1306 OLED 유형의 객체를 생성하세요.
setup() 함수에서 OLED 디스플레이를 시작하세요.
그런 다음 텍스트, 사진을 표시하고 선을 그릴 수 있습니다...
앞으로 모든 코드는 OLED 128x64용이 될 것입니다. 그러나 화면 크기를 변경하고 필요하다면 좌표를 조정함으로써 OLED 128x32용으로 쉽게 수정할 수 있습니다.
아두이노 나노 코드 - OLED에 텍스트 표시
다음은 OLED에 텍스트를 표시하는 데 사용할 수 있는 몇 가지 기능입니다:
- oled.clearDisplay(): 모든 픽셀이 꺼집니다.
- oled.drawPixel(x,y, color): x,y 좌표에 픽셀을 그립니다.
- oled.setTextSize(n): 글꼴 크기를 설정합니다, 1에서 8까지의 크기를 지원합니다.
- oled.setCursor(x,y): 텍스트 작성을 시작할 좌표를 설정합니다.
- oled.setTextColor(WHITE): 텍스트 색상을 설정합니다.
- oled.setTextColor(BLACK, WHITE): 텍스트 색상, 배경 색상을 설정합니다.
- oled.println(“message”): 문자를 출력합니다.
- oled.println(number): 숫자를 출력합니다.
- oled.println(number, HEX): 숫자를 16진수 형식으로 출력합니다.
- oled.display(): 변경 사항을 적용하려면 이 메서드를 호출하세요.
- oled.startscrollright(start, stop): 텍스트를 왼쪽에서 오른쪽으로 스크롤합니다.
- oled.startscrollleft(start, stop): 텍스트를 오른쪽에서 왼쪽으로 스크롤합니다.
- oled.startscrolldiagright(start, stop): 텍스트를 왼쪽 하단 모서리에서 오른쪽 상단 모서리로 스크롤합니다.
- oled.startscrolldiagleft(start, stop): 텍스트를 오른쪽 하단 모서리에서 왼쪽 상단 모서리로 스크롤합니다.
- oled.stopscroll(): 스크롤을 중지합니다.
OLED에서 텍스트/숫자를 세로 및 가로 중앙 정렬하는 방법
OLED 디스플레이에서 텍스트와 숫자를 수직 및 수평으로 정렬하는 방법에 대한 정보는 OLED에서 수직/수평 중앙 정렬하는 방법을 참조해 주십시오.
아두이노 나노 코드 - OLED에 그리기
아두이노 나노 코드 - 이미지 표시
OLED에 이미지를 표시하려면 먼저 이미지(모든 형식)를 비트맵 어레이로 변환해야 합니다. 이 작업은 온라인 도구를 사용하여 수행할 수 있습니다. 다음 이미지는 이미지를 비트맵 어레이로 변환하는 방법을 보여주며, 예시로 아두이노 나노 아이콘을 사용했습니다.

변환 후, 배열 코드를 가져와 아래 코드의 ArduinoIcon 배열 자리에 넣으세요.
※ 주의:
- 이미지 크기는 화면 크기보다 커서는 안 됩니다.
- OLED 128x32를 사용하기 원하신다면 이미지 크기를 조정하고 oled.drawBitmap(); 함수에서 너비와 높이 매개변수를 조정해야 합니다.
OLED 문제 해결
다음을 수행하여 OLED가 제대로 기능하는지 확인하세요:
- 배선이 올바른지 확인하십시오.
- OLED가 SSD1306 드라이버를 사용하는지 확인하십시오.
- Arduino Nano에서 I2C 주소 스캐너 코드를 사용하여 OLED의 I2C 주소를 확인하십시오.
Serial Monitor에 표시된 출력은 다음과 같습니다: