[아두이노] OLED[0.96인치(128*64)]에 원하는 그림 출력-NodeMCU포함
안녕하세요 오늘은 OLED에 원하는 그림 출력에 대해서 알려드리겠습니다.
이전에도 OLED를 이용한 예제를 보여드렸는데 이번에는 Adafruit_SSD1306 라이브러리를 이용하여
OLED에 본인이 원하는 그림을 넣는 방법을 소개하겠습니다.
GND: 접지로 아두이노 GND에 연결합니다.
VCC: 전원으로 아두이노 5V에 연결합니다.
SCL: I2C 통신으로 클럭 신호를 생성해 전달하는 역할
SDA: I2C 통신으로 실제 데이터가 전달되는 역할
SCL, SDA는 I2C 통신 방법을 사용합니다.
이전에 OLED를 간단하게 이용하는 방법을 소개해 드렸는데요
이전 예제는 U8glib를 사용한 예제입니다.
[이번 글에서는 Adafruit_SSD1306를 이용]
baessi.tistory.com
부품목록
브레드보드
NodeMCU는 연결 방법만 그림과 같게 연결하시고 소스코드는 동일하게 사용하시면 됩니다.
프로그램 및 라이브러리 설치
- 라이브러리 설치
Adafruit_GFX를 검색하여 Adafruit_GFX Library를 설치합니다.
Adafruit_SSD1306를 검색하여 설치합니다.
- LCD Assistant 설치
아래 링크로 가셔서 그림과 같이 LCD Assistant.zip를 다운로드합니다.
en.radzio.dxp.pl
다운로드를 클릭합니다.
LCD Assistant 설치 이유?
아두이노에서 char(문자) 형태로 변환하여 그림 형식이 아닌 문자 형태로 소스코드에 집어넣기 위해 사용합니다.
- 이미지 변환하기
그림판에서 아래와 같이 적절하게 크기를 축소합니다.
주의!! 그림판에서 이미지 저장 시 꼭 비트맵으로 저장,
JPG나 PNG는 LCD Assistant가 인식을 못 합니다!
저는 24비트 비트맵으로 저장했지만 프로그램에서 추출 시 16비트 혹인 단일로 뽑아내는 것 같습니다.
Settings - Horizontal 체크
아래 사진과 같이 저장합니다
메모장을 열어서 저장한 파일을 드래그하여 불러옵니다.
자 그럼 코드가 나오는데요, 아래 네모칸처럼 복사를 하고 추후 소스 코드에 집어넣도록 하겠습니다.
소스코드
/*OLED 관련 라이브러리*/
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_RESET LED_BUILTIN //OLED 선언
Adafruit_SSD1306 display(OLED_RESET); //OLED 선언
//OLED 비트맵 이미지 관련 설정
static const unsigned char PROGMEM imgText [] = {
//
//이 부분에 복사한 코드 삽입!!
//
};
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); //OLED 선언
}
void loop() {
display.clearDisplay(); //OLED 초기화
display.setTextSize(1); //폰트 크기 설정
display.setTextColor(WHITE);//폰트 색상 설정
display.setCursor(0,0); //텍스트 위치 설정
display.drawBitmap(30,0,imgText,64,64,1); //이미지 그리기
//drawBitmap(가로위치, 세로위치, 이미지코드, 가로크기, 세로크기, 색상-기본값1)
//가로와 세로크기는 꼭 이미지 크기와 동일하게 넣어주셔야 합니다.
display.display(); //디스플레이에 표시
}
구현결과
이상입니다.. 감사합니다~