티스토리 뷰


u8glib 라이브러리를 활용한 좀 더 쉬운 OLED 사용법은  http://www.dev.re.kr/51 에 포스팅 해 놓았습니다.



 바로 이전 포스팅에 이어서 이번에도 알리 익스프레스에서 구매했다. 

  

 6.66$ 나름대로 저렴한 가격이다. 


   I2C 를 사용한다고 하는데, 이 통신 방법에 대해서는 다음 위키 페이지에서 요약된 정보를 확인할 수 있다.

   http://ko.wikipedia.org/wiki/I%C2%B2C



     앞 모습. 보호 필름이 발라져 있다.



뒷 모습. 핀헤더 아래를 보면 Address Select 라고 써져있는 부분이 보인다. 이 부분을 자세히 보자.

주소가 0x78 으로 표시되어 있는데, 각 디바이스마다 고유의 주소 값을 갖고 있고, 이 것을 선택하여 여러대의 I2C 기기를 컨트롤 할 수 있다고한다.


  배선은 VCC(5V) 와 GND 를 각각 맞는 곳에 연결하고 Arduino uno 기준으로 (ATMega328) SDA 는 A4 SCL 은 A5 에 연결한다.

  이 제품의 스펙을 보면 SSD1306 이라는 LCD 드라이버 칩을 사용하는 것을 알 수 있다. 데이터 시트를 보고 구현 하려다 뭔가 복잡함에 멘붕먹고 라이브러리를 찾아보았다. 관련 라이브러리는 GPL 라이센스로 Git Hub 에 MultiLCD 라는 이름으로 올라가 있다. 

https://github.com/stanleyhuangyc/MultiLCD

  이 OLED 모듈을 사용하기 위해서는 MicoroLCD 폴더에 있는 파일들이 필요하며 그 내부에 있는 examples 폴더에서 예제 파일을 통하여 동작을 확인해 볼 수 있다. 그리고 주소값을 입력해줘야 하는 중요한 작업이 필요한데, SSD1306.h 파일에서 위에서 세 번째 정도에 있는 #define SSD1306_I2C_ADDRESS 0x3C 부분을 #define SSD1306_I2C_ADDRESS 0x78 로 수정해 준다. 만약 주소가 0x78 이 아니라 다른 주소로 되어있을 경우에는 그 것으로 수정하면 된다. (바로 위 사진 참고.)


  이제 예제를 돌려보면 다음과 같이 텍스트와 이미지가 출력되는 것을 확인할 수 있다.

    







댓글
  • 프로필사진 그게아니고 안녕하세요.
    현재 같은 OLED 모듈을 사용하고 있으나 작동이 안되서 질문드립니다. 글에서 말하는 라이브러리 폴더를 microLCD만 넣어서 예제 실행하고 뒤에있는 주소대로 ssd1306.h파일을 수정하면 되는거 맞나요..?
    2014.08.13 11:54 신고
  • 프로필사진 범 범2 맞습니다. MicroLCD 폴더를 라이브러리로 추가하고 그 내부에 있는 ssd1306.h 파일의 SSD1306_I2C_ADDRESS 의 값을 OLED 모듈 뒷면에 표시된 주소로 수정해 주고 예제 파일을 실행시키면 됩니다.
    계속 안 되신다면 http://code.google.com/p/u8glib/ 도 알아보세요. 다양한 OLED 드라이버를 지원하고 사용하기도 편리합니다.
    2014.08.13 13:37 신고
댓글쓰기 폼