준비물: NodeMCU 개발보드 1개, OLED SSD1306 디스플레이 1개, micro-USB 케이블 1개, 브레스보드 그림 1. 준비물 개발환경 아두이노 스케치 1.8.9 Wire 라이브러리 https://www.arduino.cc/en/reference/wire ESP8266 OLED SSD1306 라이브러리 https://github.com/ThingPulse/esp8266-oled-ssd1306 I2C란 I2C 버스는 80년대 초반에 저속의 부품들을 연결하기 위한 목적으로 필립스에서 개발한 직렬버스이다. "Inter IC"라고도 하며, IIC, I2C 버스라고도 한다. I2C 통신은 다음과 같은 특징들을 갖는다. SDA, SCL 등 2개의 통신선만 사용하므로 구성이 간단하다. 마스터-슬레이브 관계로 연결하여 1:n 연결이 가능하다. 슬레이브는 고유의 주소로 구분한다. 통신 최대속도는 100Kbit/s이며, Fast mode(400Kbit/s), High speed mode(3.4Mbit/s)도 지원한다. 실습내용 아두이노의 경우 디폴트로 SDA와 SCL을 위해 GPIO4 핀과 GPIO5 핀이 지정되어 있지만, ESP8266의 경우 소프트웨어적인 방식으로 구현되어 있기 때문에 임의의 핀을 이용할 수 있다. 여기서는 D1(GPIO5), D2(GPIO4)핀을 SCL과 SDA로 지정했다. ESP8266은 마스터로 동작하며 OLED 디스플레이는 슬레이브로 동작한다. Wire 라이브러리 ESP8266(마스터)에서 OLED 디스플레이(슬레이브)로의 데이터 전송은 먼저 버퍼를 준비하고, 버퍼에 데이터를 기록한 후 버퍼의 내용을 전달하는 3단계로 진행된다. 멤버 함수들을 사용하기 위해 우선 헤더 파일을 추가한다. #include <Wire.h> 초기화 void begin(int sda, int scl) sda: SDA(Serial data) 핀 번호 scl: SCL(Serial clock) 핀 번호 데이터...
댓글
댓글 쓰기