메이킹/메이킹 준비

아두이노 OLED 사용기

트리맨스 2019. 12. 27. 23:43
반응형


아두이노를 이용하여 디스플레이로 원하는 것을 출력할 수 있다. 이번 게시물에서는 OLED 의 간단한 사용법과 이를 응용한 간단한 예제에 대해서 알아볼 것이다.


이번에 쓰는 OLED 는 링크 의 상품과 거의 동일하다. 4핀 구성이며 컨트롤러는 SSD1306을 사용한다. 



핀 구성도 4핀이라서 매우 간단하다. VCC는 5V에 꼽고 SCL은 A5, SDA는 A4에 꼽는다.

SDA 와 SCL 의 핀번호는 라이브러리에서 정해 놓은 것이라 바꿀 수가 없다. 만약 바꾸고 싶다면 라이브러리를 직접 손을 봐야 한다. 


아두이노 라이브러리는 u8glib 를 사용한다. 이 라이브러리는 사용자가 직접 추가해야 하는 라이브러리 이다. 링크 에서 직접 다운받아 설치하도록 하자.


이 라이브러리에는 기본적으로 10개 정도의 기본 예제를 제공한다. 라이브러리 하나를 실행시켜서 잘 인식이 되는지, 고장난 곳은 없는지 확인해 보자. 예제 중에 Grapicstest 라는 예제가 있을 것이다. 이것을 열면 꽤 긴 코드가 나온다. 회로를 잘 꾸몄다고 해서 바로 업로드 해버리면 오류를 낸다. 왜냐하면 디스플레이의 크기 및 통신 방식을 지정해 주지 않았기 때문이다. 헤더 파일 아래에 엄청난 주석이 달려 있을 것이다. 


우리는 U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); 항목의 주석을 제거해야지 컴파일이 성공적으로 이루어져 예제가 잘 출력이 될 것이다. 주석을 없애는 방법은 맨 앞의 슬래시 2개 (//) 를 지워주면 된다.


예제의 출력 결과물은 아래 영상에 있다. 컴파일 하는 시간이 생각보다 오래 걸리니 당황하지 말자.




이제 이것을 가지고 간단한 출력 결과물을 볼 수 있다. 이번에도 cds 의 입력값을 출력하는 예제를 만들어 보았다. 왜냐하면 집에 있는 입력센서가  cds 밖에 없기 때문이다. 슬프다.


A0를 입력 단자로 두고, 최대 100까지의 값을 출력한다. 특정 값 이상이 되면 100으로 고정하게 했다. 숫자와 더불어 직관적으로 알 수 있게 가로선을 추가했다.



https://github.com/tre2man/arduino/tree/master/squba_oled


반응형