공부중
[Arduino] LCD 본문
728x90
1. 이론
ESP32에서 I2C 통신을 위해 LCD 모듈의 SDA (Serial Data Line)와 SCL (Serial Clock Line)을 연결하려면 기본적으로 다음의 GPIO 핀을 사용합니다:
- SDA: GPIO 21
- SCL: GPIO 22
이는 ESP32의 기본 I2C 핀 설정입니다. 다음과 같이 연결하시면 됩니다:
- LCD SDA -> ESP32 GPIO 21
- LCD SCL -> ESP32 GPIO 22
글자 흐린 경우 드라이버 돌려서 저항 값 변경
https://bplab.kr/coding_FAQ/?bmode=view&idx=5342668
2. 라이브러리 다운
툴 -> 라이브러리 관리
liquid crystal I2C 검색
3. 잘 안나오고 네모로 나오는 문제 해결
주소값을 0x27에서 0x3F로 변경하니까 해결되었다.
주소값 확인하는 코드.
#include <Wire.h>
void setup() {
Wire.begin(); // I2C 버스 초기화
Serial.begin(9600);
while (!Serial); // 시리얼 포트가 준비될 때까지 대기
Serial.println("\nI2C Scanner");
}
void loop() {
byte error, address;
int nDevices;
Serial.println("Scanning...");
nDevices = 0;
for (address = 1; address < 127; address++ ) {
// I2C 주소로 스캔 시도
Wire.beginTransmission(address);
error = Wire.endTransmission();
// 오류 코드가 없으면 디바이스를 찾은 것임
if (error == 0) {
Serial.print("I2C device found at address 0x");
if (address < 16)
Serial.print("0");
Serial.print(address, HEX);
Serial.println(" !");
nDevices++;
}
else if (error == 4) {
Serial.print("Unknown error at address 0x");
if (address < 16)
Serial.print("0");
Serial.println(address, HEX);
}
}
if (nDevices == 0)
Serial.println("No I2C devices found\n");
else
Serial.println("done\n");
delay(5000); // 5 초 후 다시 스캔
}
4. 출력 예제
#include <Wire.h> // I2C 통신을 위한 라이브러리
#include <LiquidCrystal_I2C.h> // I2C LCD를 제어하기 위한 라이브러리
// LCD 객체 생성, I2C 주소는 0x27, 20열 2행으로 설정
//LiquidCrystal_I2C lcd(0x27, 20, 2);
LiquidCrystal_I2C lcd(0x3F, 20, 2);
void setup() {
lcd.init(); // LCD 초기화
lcd.backlight(); // LCD 백라이트 켜기
lcd.setCursor(0, 0); // 첫 번째 행, 첫 번째 열로 커서 이동
lcd.print("Hello, world!"); // "Hello, world!" 출력
lcd.setCursor(1, 1); // 두 번째 행, 두 번째 열로 커서 이동
lcd.print("1 2 3 4 5 ."); // "Kim Changho" 출력
}
void loop() {
// 이 예제에서 loop 함수는 비워둘 수 있습니다.
}
4. 경고.
[Arduino] 경고: 라이브러리 LiquidCrystal_I2C가 avr 아키텍처에서 실행되며 esp32아키텍처에서 실행되는 현재보드에서는 호환되지 않을 수 있습니다. |
이런 오류가 나와서 이게 문제 인가 했는데 문제 원인은 아니었나보다.
728x90
'프로그래밍 > Arduino' 카테고리의 다른 글
[Arduino] 7 segment (0) | 2025.01.26 |
---|---|
[Arduino] multi task (0) | 2025.01.25 |
[Arduino] ESP32 드라이버 설치 및 연결 (0) | 2025.01.25 |
[Arduino] 모터 (0) | 2025.01.25 |
버스 공공데이터 활용 (0) | 2025.01.25 |