728x90
반응형
아두이노 OLED 0.96인치 128x64 SPI 6핀 A37
OLED 0.96인치 128x64 SPI 6핀 A37 디스플레이
최근 프로젝트에서 가장 많이 활용되는 디스플레이 중 하나가 바로 OLED 디스플레이다. 특히, 0.96인치 128x64 해상도의 SPI 기반 6핀 A37 디스플레이는 소형 프로젝트에 적합한 성능과 유연성을 제공한다. 이 글에서는 A37 모델의 특징과 하드웨어 연결 방법, 그리고 아두이노와의 통합 사용법을 살펴보겠다.
1. OLED A37 디스플레이의 주요 특징
- 화면 크기 및 해상도: 0.96인치 크기에 128x64 픽셀의 해상도를 제공하며, 선명한 텍스트와 이미지를 표시할 수 있다.
- 통신 방식: SPI(Serial Peripheral Interface)를 사용하여 빠른 데이터 전송이 가능하다.
- 6핀 구성:
- GND: 접지
- VCC: 전원 (3.3V 또는 5V)
- SCL: SPI 클록 신호
- SDA: SPI 데이터 신호
- RES: 디스플레이 리셋 신호
- DC: 데이터/명령 제어 신호
- 저전력 소비: OLED 기술은 백라이트 없이 픽셀 단위로 조명을 제어하므로 에너지 효율이 높다.
- 호환성: 아두이노를 포함한 다양한 마이크로컨트롤러와 쉽게 통합할 수 있다.
2. 하드웨어 연결
A37 디스플레이는 6개의 핀으로 구성되어 있으며, 아두이노와의 연결은 다음과 같다:
GND | GND | 전원 접지 |
VCC | 3.3V 또는 5V | 전원 공급 |
SCL | D13 | SPI 클록 신호 |
SDA | D11 | SPI 데이터 신호 |
RES | D9 | 디스플레이 리셋 신호 |
DC | D8 | 데이터/명령 제어 신호 |
3. 아두이노와의 통합
3-1. 필수 라이브러리 설치
OLED 디스플레이를 사용하려면 다음 라이브러리를 설치해야 한다:
- Adafruit SSD1306: OLED 제어용 라이브러리
- Adafruit GFX: 그래픽 처리용 라이브러리
아두이노 IDE에서 Sketch > Include Library > Manage Libraries를 선택한 후, 위 두 라이브러리를 검색하여 설치하면 된다.
3-2. 코드 작성
다음은 OLED 디스플레이를 초기화하고 간단한 메시지를 표시하는 코드 예제다:
#include <Adafruit_GFX.h> // 그래픽 처리를 위한 Adafruit GFX 라이브러리 포함
#include <Adafruit_SSD1306.h> // OLED 디스플레이 제어를 위한 라이브러리 포함
#define SCREEN_WIDTH 128 // OLED 디스플레이의 가로 해상도 정의
#define SCREEN_HEIGHT 64 // OLED 디스플레이의 세로 해상도 정의
#define OLED_MOSI 11 // SPI 데이터 신호 핀 설정
#define OLED_CLK 13 // SPI 클록 신호 핀 설정
#define OLED_DC 8 // 데이터/명령 제어 핀 설정
#define OLED_CS 10 // 칩 선택 핀 설정
#define OLED_RESET 9 // 디스플레이 리셋 핀 설정
// Adafruit SSD1306 객체 생성, SPI 인터페이스와 핀 정보를 전달
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &SPI, OLED_DC, OLED_RESET, OLED_CS);
void setup() {
Serial.begin(9600); // 시리얼 통신 초기화, 보드레이트는 9600bps로 설정
// 디스플레이 초기화, 실패 시 에러 메시지 출력 후 무한 루프
if (!display.begin(SSD1306_SWITCHCAPVCC)) {
Serial.println(F("SSD1306 allocation failed")); // 초기화 실패 메시지 출력
for (;;); // 무한 루프
}
display.display(); // 디스플레이 내용 표시
delay(2000); // 2초간 대기
display.clearDisplay(); // 디스플레이 화면 지우기
display.setTextSize(1); // 텍스트 크기 설정
display.setTextColor(SSD1306_WHITE); // 텍스트 색상 설정 (흰색)
display.setCursor(0, 0); // 텍스트 커서를 화면 좌측 상단으로 설정
display.println(F("Hello, OLED!")); // "Hello, OLED!" 메시지 출력
display.display(); // 출력 내용을 디스플레이에 적용
}
void loop() {
// 반복 작업 추가 가능
}
3-3. 코드 업로드 및 테스트
- 아두이노와 디스플레이를 연결한다.
- 위 코드를 아두이노 IDE에 복사한 후 업로드한다.
- 디스플레이에 "Hello, OLED!" 메시지가 표시되면 성공적으로 연결된 것이다.
4. 주의사항 및 팁
- 전압 확인: OLED 디스플레이가 3.3V와 5V 모두 지원되는지 확인해야 한다. 잘못된 전압으로 연결하면 디스플레이가 손상될 수 있다.
- 핀 연결 상태 확인: 핀이 올바르게 연결되지 않으면 디스플레이가 작동하지 않을 수 있다.
- 라이브러리 업데이트: 최신 버전의 Adafruit SSD1306 및 Adafruit GFX 라이브러리를 사용하는 것이 좋다.
5. 활용 사례
- IoT 프로젝트: 온도 및 습도 센서 데이터 시각화.
- 시계 프로젝트: 실시간으로 시간을 표시하는 디지털 시계 구현.
- 메뉴 시스템: 버튼 입력과 결합하여 간단한 UI를 구현.
응용 : Arduino에서 비트맵 이미지를 출력
Arduino와 OLED 디스플레이를 사용해 원하는 비트맵 이미지를 출력하는 방법을 소개한다. 이를 통해 자신만의 이미지나 로고를 OLED 화면에 표시할 수 있다. 아래에서 단계별로 설명하겠다.
1. 준비 사항
- Arduino 보드: 예) Arduino Uno, Mega 등
- OLED 디스플레이: 0.96인치 128x64 해상도, SPI 인터페이스
- 비트맵 이미지: 128x64 픽셀 크기의 흑백(B/W) 이미지
- Arduino IDE: 코드를 작성하고 업로드하기 위한 소프트웨어
- Python (선택 사항): BMP 이미지를 변환하는 데 사용
2. 비트맵 이미지 준비 및 변환
비트맵 이미지를 OLED 디스플레이에 출력하려면, 이미지를 Arduino 코드에서 사용할 수 있는 배열로 변환해야 한다.
2-1. BMP 파일 준비
- BMP 이미지를 128x64 픽셀 크기로 변경한다.
- 흑백 모드(1비트)로 저장한다.
2-2. Python으로 변환
Python 스크립트를 사용해 BMP 파일을 Arduino용 배열로 변환할 수 있다. 아래는 변환 스크립트 예제다:
from PIL import Image
def bmp_to_array(filename, output_width, output_height):
img = Image.open(filename).convert('1')
img = img.resize((output_width, output_height))
pixels = img.load()
data = []
for y in range(output_height):
byte = 0
for x in range(output_width):
if pixels[x, y] == 0:
byte |= (1 << (7 - (x % 8)))
if x % 8 == 7:
data.append(byte)
byte = 0
if output_width % 8 != 0:
data.append(byte)
return data
filename = "/path/to/image.bmp"
width, height = 128, 64
bitmap_array = bmp_to_array(filename, width, height)
print("const unsigned char bitmap[] PROGMEM = {")
for i, byte in enumerate(bitmap_array):
print(f"0x{byte:02X}, ", end="")
if (i + 1) % 16 == 0:
print()
print("};")
실행 결과
const unsigned char bitmap[] PROGMEM = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x80, 0x0E, 0x39, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xFC, 0x33, 0xEC, 0xE1, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x0F, 0xFC, 0x01, 0xF3, 0xA5, 0x34, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0xE1, 0x1F, 0xAA, 0xDE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x70, 0xE9, 0x07, 0xD6, 0x91, 0xFE, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xE0, 0x09, 0xA2, 0x75, 0x7E, 0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xFC, 0xF0, 0xAA, 0x6D, 0x43, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xFD, 0x63, 0x95, 0x35, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x7F, 0xF0, 0x78, 0xE7, 0x0F, 0x8F, 0x37, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x89, 0xFF, 0xFF, 0x3D, 0x85, 0xF2, 0x72, 0xE3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x89, 0xE1, 0xF9, 0x3E, 0x72, 0xE9, 0xB1, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBE, 0xC7, 0x0B, 0xF3, 0xAD, 0xAE, 0xBF, 0x37, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x1F, 0xD1, 0x79, 0x3B, 0xD6, 0xDF, 0xE3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8D, 0xEF, 0x7E, 0xE5, 0x88, 0x97, 0x39, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2F, 0x9F, 0x8B, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8E, 0xA6, 0xAD, 0xAB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x02, 0xB6, 0x00, 0x06, 0xDE, 0xB1, 0xE2, 0xFD, 0xBB, 0xD2, 0x48, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xAF, 0x13, 0xF9, 0xB4, 0x30, 0xFF, 0xF7, 0x59, 0x73, 0xE0, 0x00, 0x0B, 0xFF, 0xFF, 0xFF, 0xFF, 0x7C, 0x23, 0x86, 0x27, 0x4B, 0xEB, 0xBF, 0x0A, 0xB3, 0xC0, 0x00, 0x20, 0xFF, 0xFF, 0xFB, 0xFF, 0xE3, 0xF8, 0x2B, 0x55, 0xFF, 0xB6, 0x79, 0xE8, 0x9F, 0xC4, 0x00, 0xA0, 0x7F, 0xFF, 0xF8, 0x81, 0x81, 0x10, 0x63, 0x7A, 0xA6, 0xFF, 0x22, 0x3F, 0x2F, 0xF1, 0x20, 0x48, 0x9F, 0xFF, 0xF0, 0xC7, 0x83, 0xFF, 0xF3, 0xFF, 0xF5, 0xB6, 0x4D, 0xCF, 0x37, 0xC0, 0x00, 0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0xF7, 0xFA, 0x7A, 0xB0, 0xA2, 0xE6, 0x89, 0xE3, 0xFB, 0xC1, 0x03, 0x12, 0x2F, 0xE0, 0x00, 0x3E, 0x1F, 0xEA, 0x4F, 0x45, 0xA9, 0xE8, 0x5B, 0x9E, 0xE7, 0xF0, 0x40, 0x00, 0x87, 0xC0, 0x00, 0x03, 0x08, 0xD3, 0x14, 0xFC, 0xCB, 0x43, 0x57, 0x1A, 0x4F, 0xC0, 0x44, 0x00, 0x97, 0xC0, 0x7C, 0x1C, 0xD0, 0x81, 0xFB, 0xF4, 0xAA, 0xFF, 0xFB, 0xA3, 0x7F, 0xB0, 0x82, 0x8A, 0x0B, 0x9F, 0xE6, 0x9E, 0xE0, 0x91, 0xE2, 0xEF, 0x85, 0x7B, 0x8F, 0xE9, 0xF7, 0x80, 0x60, 0x00, 0x0B, 0xFF, 0xFF, 0xE9, 0x7F, 0xB6, 0xDE, 0xF4, 0xB5, 0xF4, 0xFF, 0xDB, 0x3F, 0xA0, 0x50, 0xC0, 0xA3, 0x80, 0x3E, 0x01, 0xEE, 0x5A, 0x76, 0x09, 0xFC, 0xEA, 0x5E, 0xBE, 0x7C, 0x40, 0x02, 0x00, 0x05, 0x87, 0xFF, 0xBF, 0x07, 0xFE, 0xA9, 0x3D, 0x6A, 0x93, 0x70, 0x67, 0xF8, 0x00, 0x04, 0x9C, 0x03, 0x9F, 0x01, 0xCD, 0xDF, 0xA2, 0xEE, 0x77, 0xEE, 0x06, 0x3D, 0xBF, 0xE4, 0x00, 0x6E, 0x21, 0x11, 0xFE, 0x01, 0xA7, 0xD1, 0xCB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A, 0x00, 0x00, 0x01, 0x05, 0xF2, 0x0D, 0xFC, 0x36, 0x23, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCA, 0x04, 0x21, 0x00, 0x08, 0x21, 0xFE, 0x04, 0x25, 0x6F, 0x5F, 0xD0, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x11, 0xC8, 0x1F, 0x1B, 0x02, 0x7E, 0x00, 0x00, 0x22, 0x00, 0x00, 0x50, 0x40, 0x12, 0x50, 0x89, 0x21, 0x9F, 0xFC, 0x7B, 0x61, 0xF8, 0x80, 0x20, 0x45, 0x00, 0x40, 0x09, 0x28, 0x00, 0x40, 0x21, 0x2B, 0x80, 0xDB, 0xED, 0x0B, 0xE0, 0x40, 0x04, 0x02, 0x02, 0x1C, 0x02, 0x02, 0x00, 0x80, 0x80, 0x61, 0xC5, 0x11, 0xF5, 0xB7, 0xC0, 0x00, 0x80, 0x00, 0x00, 0x01, 0x08, 0x40, 0x20, 0x00, 0x00, 0x23, 0xDF, 0x66, 0x3C, 0xDB, 0xC4, 0x12, 0x20, 0x00, 0x00, 0xC0, 0x03, 0x01, 0x02, 0x20, 0x00, 0x23, 0xF7, 0xB3, 0xB7, 0x3F, 0x84, 0x24, 0x01, 0x40, 0x00, 0x00, 0x0C, 0x08, 0x24, 0x10, 0x08, 0x17, 0xFE, 0xDE, 0xC3, 0xDB, 0x80, 0x00, 0x00, 0x02, 0x40, 0x4C, 0x00, 0x82, 0x08, 0x00, 0x40, 0x0F, 0xFE, 0xF9, 0xDA, 0xDF, 0x80, 0xA0, 0x19, 0x20, 0x10, 0x00, 0x88, 0x00, 0x20, 0x02, 0x22, 0x2F, 0xFE, 0xFC, 0xCD, 0xBF, 0x80, 0x01, 0x1A, 0x00, 0x02, 0x00, 0x00, 0x00, 0x40, 0x10, 0x08, 0x1F, 0xFC, 0xED, 0x50, 0xE3, 0x82, 0x24, 0x01, 0xC0, 0x00, 0x40, 0x00, 0x81, 0x01, 0x04, 0x01, 0xFF, 0xFE, 0x24, 0xFB, 0x9B, 0xA0, 0x00, 0x00, 0x00, 0x04, 0x00, 0x09, 0x08, 0x84, 0x05, 0x0A, 0x7F, 0xFF, 0xF6, 0x97, 0x6B, 0x81, 0x90, 0x01, 0x30, 0x03, 0x44, 0x84, 0x14, 0x21, 0x00, 0x25, 0xFF, 0xFF, 0xFA, 0x8F, 0xFB, 0x86, 0x00, 0x01, 0x02, 0x80, 0x16, 0x02, 0x60, 0x08, 0x81, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x84, 0x22, 0x00, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0x24, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x88, 0x06, 0x62, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x8C, 0x00, 0x22, 0x00, 0x02, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x03, 0x20, 0x10, 0x08, 0x00, 0x11, 0x17, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x86, 0x00, 0x09, 0x22, 0x20, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x50, 0x21, 0x30, 0x13, 0xF4, 0x43, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x14, 0x82, 0x00, 0x00, 0x2F, 0xFC, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x20, 0x20, 0x5F, 0xFD, 0x0B, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x83, 0x92, 0x80, 0x25, 0x20, 0x3F, 0xFC, 0x0B, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x12, 0x80, 0x9F, 0xFD, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x25, 0x00, 0x48, 0x00, 0x07, 0xE0, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x05, 0x00, 0x20, 0x90, 0x02, 0xC0, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x48, 0x51, 0x00, 0x0A, 0x24, 0x20, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x84, 0x23, 0x08, 0x91, 0x23, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xC8, 0x15, 0x12, 0x44, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x08, 0x30, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, };
2-3. Image2Cpp로 변환 (대안)
- Image2Cpp 웹사이트에 접속한다.
- BMP 이미지를 업로드한다.
- 다음 설정을 적용한다:
- Canvas size: 128x64
- Output format: Arduino code
- Draw Mode: Horizontal - 1 bit per pixel
- "Generate Code" 버튼을 클릭하고 생성된 코드를 복사한다.
혹은 아래 링크를 이용한다.
3. Arduino 코드 작성
변환된 비트맵 배열을 Arduino 코드에 추가한다. 아래는 예제 코드다:
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_MOSI 11
#define OLED_CLK 13
#define OLED_DC 8
#define OLED_CS 10
#define OLED_RESET 9
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &SPI, OLED_DC, OLED_RESET, OLED_CS);
// 변환된 비트맵 데이터
const unsigned char bitmap[] PROGMEM = {
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x80, 0x0E, 0x39, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xFC, 0x33, 0xEC, 0xE1, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x0F, 0xFC, 0x01, 0xF3, 0xA5, 0x34, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0xE1, 0x1F, 0xAA, 0xDE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x70, 0xE9, 0x07, 0xD6, 0x91, 0xFE, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xE0, 0x09, 0xA2, 0x75, 0x7E, 0x9F, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xFC, 0xF0, 0xAA, 0x6D, 0x43, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xFD, 0x63, 0x95, 0x35, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x7F, 0xF0, 0x78, 0xE7, 0x0F, 0x8F, 0x37, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x89, 0xFF, 0xFF, 0x3D, 0x85, 0xF2, 0x72, 0xE3, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x89, 0xE1, 0xF9, 0x3E, 0x72, 0xE9, 0xB1, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xBE, 0xC7, 0x0B, 0xF3, 0xAD, 0xAE, 0xBF, 0x37, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x1F, 0xD1, 0x79, 0x3B, 0xD6, 0xDF, 0xE3, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x8D, 0xEF, 0x7E, 0xE5, 0x88, 0x97, 0x39, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2F, 0x9F, 0x8B, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8E, 0xA6, 0xAD, 0xAB, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0x80, 0x02, 0xB6, 0x00, 0x06, 0xDE, 0xB1, 0xE2, 0xFD, 0xBB, 0xD2, 0x48, 0x3F, 0xFF,
0xFF, 0xFF, 0xFF, 0xAF, 0x13, 0xF9, 0xB4, 0x30, 0xFF, 0xF7, 0x59, 0x73, 0xE0, 0x00, 0x0B, 0xFF,
0xFF, 0xFF, 0xFF, 0x7C, 0x23, 0x86, 0x27, 0x4B, 0xEB, 0xBF, 0x0A, 0xB3, 0xC0, 0x00, 0x20, 0xFF,
0xFF, 0xFB, 0xFF, 0xE3, 0xF8, 0x2B, 0x55, 0xFF, 0xB6, 0x79, 0xE8, 0x9F, 0xC4, 0x00, 0xA0, 0x7F,
0xFF, 0xF8, 0x81, 0x81, 0x10, 0x63, 0x7A, 0xA6, 0xFF, 0x22, 0x3F, 0x2F, 0xF1, 0x20, 0x48, 0x9F,
0xFF, 0xF0, 0xC7, 0x83, 0xFF, 0xF3, 0xFF, 0xF5, 0xB6, 0x4D, 0xCF, 0x37, 0xC0, 0x00, 0x00, 0x1F,
0xFF, 0xFF, 0xFF, 0xF7, 0xFA, 0x7A, 0xB0, 0xA2, 0xE6, 0x89, 0xE3, 0xFB, 0xC1, 0x03, 0x12, 0x2F,
0xE0, 0x00, 0x3E, 0x1F, 0xEA, 0x4F, 0x45, 0xA9, 0xE8, 0x5B, 0x9E, 0xE7, 0xF0, 0x40, 0x00, 0x87,
0xC0, 0x00, 0x03, 0x08, 0xD3, 0x14, 0xFC, 0xCB, 0x43, 0x57, 0x1A, 0x4F, 0xC0, 0x44, 0x00, 0x97,
0xC0, 0x7C, 0x1C, 0xD0, 0x81, 0xFB, 0xF4, 0xAA, 0xFF, 0xFB, 0xA3, 0x7F, 0xB0, 0x82, 0x8A, 0x0B,
0x9F, 0xE6, 0x9E, 0xE0, 0x91, 0xE2, 0xEF, 0x85, 0x7B, 0x8F, 0xE9, 0xF7, 0x80, 0x60, 0x00, 0x0B,
0xFF, 0xFF, 0xE9, 0x7F, 0xB6, 0xDE, 0xF4, 0xB5, 0xF4, 0xFF, 0xDB, 0x3F, 0xA0, 0x50, 0xC0, 0xA3,
0x80, 0x3E, 0x01, 0xEE, 0x5A, 0x76, 0x09, 0xFC, 0xEA, 0x5E, 0xBE, 0x7C, 0x40, 0x02, 0x00, 0x05,
0x87, 0xFF, 0xBF, 0x07, 0xFE, 0xA9, 0x3D, 0x6A, 0x93, 0x70, 0x67, 0xF8, 0x00, 0x04, 0x9C, 0x03,
0x9F, 0x01, 0xCD, 0xDF, 0xA2, 0xEE, 0x77, 0xEE, 0x06, 0x3D, 0xBF, 0xE4, 0x00, 0x6E, 0x21, 0x11,
0xFE, 0x01, 0xA7, 0xD1, 0xCB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A, 0x00, 0x00, 0x01, 0x05,
0xF2, 0x0D, 0xFC, 0x36, 0x23, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCA, 0x04, 0x21, 0x00, 0x08, 0x21,
0xFE, 0x04, 0x25, 0x6F, 0x5F, 0xD0, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x11,
0xC8, 0x1F, 0x1B, 0x02, 0x7E, 0x00, 0x00, 0x22, 0x00, 0x00, 0x50, 0x40, 0x12, 0x50, 0x89, 0x21,
0x9F, 0xFC, 0x7B, 0x61, 0xF8, 0x80, 0x20, 0x45, 0x00, 0x40, 0x09, 0x28, 0x00, 0x40, 0x21, 0x2B,
0x80, 0xDB, 0xED, 0x0B, 0xE0, 0x40, 0x04, 0x02, 0x02, 0x1C, 0x02, 0x02, 0x00, 0x80, 0x80, 0x61,
0xC5, 0x11, 0xF5, 0xB7, 0xC0, 0x00, 0x80, 0x00, 0x00, 0x01, 0x08, 0x40, 0x20, 0x00, 0x00, 0x23,
0xDF, 0x66, 0x3C, 0xDB, 0xC4, 0x12, 0x20, 0x00, 0x00, 0xC0, 0x03, 0x01, 0x02, 0x20, 0x00, 0x23,
0xF7, 0xB3, 0xB7, 0x3F, 0x84, 0x24, 0x01, 0x40, 0x00, 0x00, 0x0C, 0x08, 0x24, 0x10, 0x08, 0x17,
0xFE, 0xDE, 0xC3, 0xDB, 0x80, 0x00, 0x00, 0x02, 0x40, 0x4C, 0x00, 0x82, 0x08, 0x00, 0x40, 0x0F,
0xFE, 0xF9, 0xDA, 0xDF, 0x80, 0xA0, 0x19, 0x20, 0x10, 0x00, 0x88, 0x00, 0x20, 0x02, 0x22, 0x2F,
0xFE, 0xFC, 0xCD, 0xBF, 0x80, 0x01, 0x1A, 0x00, 0x02, 0x00, 0x00, 0x00, 0x40, 0x10, 0x08, 0x1F,
0xFC, 0xED, 0x50, 0xE3, 0x82, 0x24, 0x01, 0xC0, 0x00, 0x40, 0x00, 0x81, 0x01, 0x04, 0x01, 0xFF,
0xFE, 0x24, 0xFB, 0x9B, 0xA0, 0x00, 0x00, 0x00, 0x04, 0x00, 0x09, 0x08, 0x84, 0x05, 0x0A, 0x7F,
0xFF, 0xF6, 0x97, 0x6B, 0x81, 0x90, 0x01, 0x30, 0x03, 0x44, 0x84, 0x14, 0x21, 0x00, 0x25, 0xFF,
0xFF, 0xFA, 0x8F, 0xFB, 0x86, 0x00, 0x01, 0x02, 0x80, 0x16, 0x02, 0x60, 0x08, 0x81, 0x0F, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x84, 0x22, 0x00, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0x24, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x88, 0x06, 0x62, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x8C, 0x00, 0x22, 0x00, 0x02, 0x03, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x03, 0x20, 0x10, 0x08, 0x00, 0x11, 0x17, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x86, 0x00, 0x09, 0x22, 0x20, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x50, 0x21, 0x30, 0x13, 0xF4, 0x43, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x14, 0x82, 0x00, 0x00, 0x2F, 0xFC, 0x03, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x20, 0x20, 0x5F, 0xFD, 0x0B, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x83, 0x92, 0x80, 0x25, 0x20, 0x3F, 0xFC, 0x0B, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x12, 0x80, 0x9F, 0xFD, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x25, 0x00, 0x48, 0x00, 0x07, 0xE0, 0x07, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x05, 0x00, 0x20, 0x90, 0x02, 0xC0, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x48, 0x51, 0x00, 0x0A, 0x24, 0x20, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x84, 0x23, 0x08, 0x91, 0x23, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xC8, 0x15, 0x12, 0x44, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x08, 0x30, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
};
void setup() {
if (!display.begin(SSD1306_SWITCHCAPVCC)) {
for (;;);
}
display.clearDisplay();
// 비트맵 이미지 출력
display.drawBitmap(0, 0, bitmap, 128, 64, SSD1306_WHITE);
display.display();
}
void loop() {
// 추가 작업 없음
}
4. 업로드 및 테스트
- Arduino IDE에서 위 코드를 작성하거나 붙여넣는다.
- Arduino 보드와 OLED 디스플레이를 연결한다.
- 코드를 업로드하고 디스플레이에 이미지가 출력되는지 확인한다.
728x90
반응형
'Arduino > [2] Arduino Module' 카테고리의 다른 글
#30. ESP-01 (0) | 2024.12.27 |
---|---|
#29. L9110 미니팬 (0) | 2024.12.26 |
#27. L293D 모터 드라이버 쉴드 (0) | 2024.08.12 |
[Arduino Module] #26. ESP32 CAM (0) | 2024.07.12 |
[Arduino Module] #25. Wemos D1 R32 (1) | 2024.04.08 |