만들기2015. 8. 30. 22:57

제품 : http://www.lkembedded.co.kr/shop/goods/goods_view.php?goodsno=250&category=022001004




Arduino_SSD1306_OLED-master를 한번 실행해야 OzOLED 샘플이 동작한다??

전원을 처음 넣은 상태로 OzOLED 샘플로는 표시가 안 나타남.

OzOLED init()함수에 몇가지 추가해서 동작시킨 수정 OzOLED 라이브러리

OzOLED(init_modified).zip


아두이노 라이브러리


간단하게 문자 출력 가능, 예제 풍부함

http://blog.oscarliang.net/arduino-oled-display-library/


라이브러리 다운로드

OzOLED.zip

라이브러리 폴더 밑에 예제파일 잘되어 있음




UNO TWI 통신 핀

Vcc (3.3V) - 5V도 동작은 하던데...?

SDA(A4)

SCL(A5)


Cactus Micro = LilyPad

SDA(D2?D3)

SCL(D3?)


String 으로 글자 표시하기

float float_val =123.2;
String str="test hello";

str = String(float_val,2); //소수점 2자리 표시
const char * c = str.c_str();  //String을 const char 로 변환
OzOled.printString(c);  //Print the String


strTmp = String(dist, DEC);

OzOled.printBigNumber((const char*)strTmp.c_str(), 0, 0);  //화면 상단
OzOled.printBigNumber((const char*)strTmp.c_str(), 0, 4);  //화면 하단



void LCD_Message(byte X, byte Y, String msg)
{
  OzOled.setCursorXY(X, Y);
  OzOled.printString((const char*)msg.c_str());
}

String strTmp = String(/*"dist:" + */String(dist, DEC) + "m");
LCD_Message(0, 1, strTmp);


비트맵 그림 그리기

그림판으로 128*64 사이즈, 단색 비트맵으로 저장한다음 아래 변환기로 HEX 데이터 생성

bitmap 변환기 : http://en.radzio.dxp.pl/bitmap_converter/


LCDAssistant.zip


const PROGMEM unsigned char Logo[] PROGMEM={ }

위와 같은 문법으로 중괄호에 HEX 데이터 복사


OzOled.drawBitmap(OscarLogo, 0, 0, 16, 8);


OLED 표시를 위함 LCD Assistant 설정값





* 아래는 기본 원리 참고용

SPI통신으로 그림 그리기

http://robotcantalk.blogspot.kr/2015/03/interfacing-arduino-with-ssd1306-driven.html


Wire(TWI) 라이브러리로 직접 커맨드 보내서 제어하는 방식..이것보다 위에 OzOLED 라이브러리가 편리

예제파일

Arduino_SSD1306_OLED-master.zip


라이브러리

Adafruit_SSD1306-master.zip


LilyPad USB 보드에서 TWI (Two wire interface) 통신포트

TWI: 2 (SDA) and 3 (SCL). Support a simple TWI communication using the Wire library.

출처:https://www.arduino.cc/en/Main/ArduinoBoardLilyPadUSB

CactusMicro_GLCD_SSD1306.ino







Posted by orasman