LCD 패널과 i2C 센서를 활용한 화면 출력
- Wemos d1 r1 보드 같은 경우에는 wifi센서가 내장되면서 포트 A1~A4까지 사용중이다.
- 그리고 I2C통신을 활용하는 센서들은 A4, A5 포트를 쓰기 때문에 기존 아두이노 보드를 사용해서 실습을 해야한다.
소스코드
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup()
{
// initialize the LCD
lcd.begin();
// Turn on the blacklight and print a message.
lcd.backlight();
lcd.print("Hello, world!");
}
void loop()
{
// Do nothing here...
}
- 연결방법
- 아두이노 ↔ i2c 센서
- 5V ↔ VCC
- GND ↔ GND
- A4 ↔ SDA
- A5 ↔ SCL
- 당연히 정품 아두이노에 제공된 wifi 센서를 달아서 써도 되기는 하는데 그럴 경우 초기설정단계에서 많이 복잡할 수 있으니 참고하길 바란다. 되도록이면 LCD를 쓸꺼면 Wifi를 안쓰거나 wifi를 쓰면 lcd를 안쓰는걸 추천한다. (시간대비 효율성이 떨어지는 작업들이 많음)
- 당연히 이것도 library를 설치를 해야한다. 상단의 툴에서 라이브러리 추가로 아래의 라이브러리를 추가한다.
- 상단처럼 설치하면 잘 되는 컴퓨터도 있는 반면 안되는 컴퓨터도 있다.
- LCD관련 에러중 대표정인건 no matching function for call to ‘LiquidCrystal_I2C::begin(); 라고 뜨는 경우!
- 라이브러리 파일도 똑같은 이름이지만, 제공자에 따라 내부코드가 다른 라이브러리인 경우가 종종 있기에 그렇다.
- 그래서 만약 제가 실험에서 사용한 라이브러리가 아닌, 같은 이름이지만 다른 라이브러리를 사용할 경우 위와 같은 에러 표시를 낼 수 있다.
- 라이브러리는 분명 설치되어 있지만 그래서 프로그램이 인지는 하는데, 코드에서 사용한 함수 적용이 되지 않을 때 이런 에러를 띄우게 됩니다.