Search Code

ESP32 튜토리얼 11/55 - ESP32와 함께 LCD1602 LCD2004 사용하기 - SunFounder의 ESP32 IoT 학습 키트

ESP32 튜토리얼 11/55 - ESP32와 함께 LCD1602 LCD2004 사용하기 - SunFounder의 ESP32 IoT 학습 키트

이 튜토리얼에서는 ESP32 마이크로컨트롤러와 함께 LCD1602 및 LCD2004를 사용하는 방법을 살펴보겠습니다. 이러한 LCD 화면을 사용하면 텍스트와 기타 정보를 효과적으로 표시하여 프로젝트에 시각적 피드백을 더할 수 있습니다. 또한 가독성을 보장하기 위해 대비를 조정하는 방법도 다룰 것입니다.

SunFounder ESP32 IoT 학습 키트의 일부인 ESP32는 Wi-Fi와 Bluetooth 기능이 내장되어 있어 다양한 IoT 애플리케이션을 위한 강력한 도구입니다. LCD를 ESP32에 연결하면 코드에서 출력되는 메시지나 데이터를 쉽게 표시할 수 있어 프로젝트를 더욱 상호작용적이고 사용자 친화적으로 만들 수 있습니다(비디오 00:30 참조).

하드웨어 설명

사용할 주요 구성 요소는 ESP32 마이크로컨트롤러와 LCD1602 또는 LCD2004 디스플레이 모듈입니다. ESP32는 프로젝트의 두뇌 역할을 하여 입력을 처리하고 LCD 디스플레이를 포함한 출력을 제어합니다.

LCD 모듈은 I2C를 통해 통신하므로 통신에 두 개의 데이터 핀(SDA 및 SCL)만 사용하고 전원 및 접지 연결만 있으면 배선이 간소화됩니다. 이 설정은 여러 핀을 연결하는 복잡성을 크게 줄여 더 깔끔하고 관리하기 쉬운 회로를 만들 수 있습니다.

데이터시트 세부 정보

제조업체 SunFounder
부품 번호 LCD1602
로직/IO 전압 5 V
공급 전압 5 V
디스플레이 크기 16 x 2 문자
백라이트 있음
인터페이스 I2C
크기 80 x 36 mm
참고 사항 / 변형 일반적으로 I2C 주소 0x27과 함께 사용됨

 

  • 손상을 방지하려면 올바른 전압 공급(5 V)을 확인하세요.
  • I2C 라인의 간섭을 최소화하려면 짧은 전선을 사용하세요.
  • 최적의 대비 가시성을 위해 가변 저항을 조정하세요.
  • 디스플레이가 초기화되지 않으면 I2C 주소를 확인하세요(일반적인 주소: 0x27, 0x3F).
  • 겹침을 방지하려면 메시지를 업데이트하기 전에 디스플레이를 지우세요.

배선 지침

ESP32-11_LCD-배선-회로도
ESP32-11_LCD-wiring

LCD1602를 ESP32에 배선하려면 먼저 LCD의 접지 핀을 ESP32의 접지 핀에 연결하세요. 그런 다음 LCD의 VCC 핀을 ESP32의 5V 출력에 연결하세요. I2C 통신을 위해 LCD의 SDA 핀을 ESP32의 핀 21에 연결하고 LCD의 SCL 핀을 ESP32의 핀 22에 연결하세요. 통신 문제를 방지하려면 연결이 안전한지 확인하세요.

ESP32는 3.3V 로직 레벨에서 작동하지만 LCD1602는 올바른 작동을 위해 5V가 필요하다는 점에 유의하는 것이 중요합니다. 따라서 LCD 손상을 방지하려면 올바른 전압 공급을 사용하고 있는지 확인하세요. 다른 LCD 크기를 사용하는 경우 I2C 주소와 사양에 따라 배선을 적절히 조정하세요.

코드 예제 및 설명

코드에서는 I2C 통신과 LCD에 필요한 라이브러리를 포함하는 것으로 시작합니다. I2C 주소 0x27을 사용하여 LCD 인스턴스를 만들고 16열 2행임을 지정합니다.

#include  
#include 

LiquidCrystal_I2C lcd(0x27,16,2);  // 16자 2줄 디스플레이를 위해 LCD 주소를 0x27로 설정

이 설정을 통해 LCD를 쉽게 제어할 수 있습니다. setup() 함수에서 LCD를 초기화하고 백라이트를 켠 다음 환영 메시지를 출력합니다.

void setup()
{
  lcd.init(); // LCD 초기화
  lcd.backlight(); // LCD 백라이트 켜기
  lcd.print("Hello, world!");   // LCD에 메시지 출력
  delay(3000);
}

loop() 함수에서는 디스플레이를 지우고 커서 위치를 설정한 다음 현재 카운트 값을 출력하여 디스플레이를 지속적으로 업데이트합니다. 이는 LCD가 변경되는 정보를 동적으로 표시할 수 있는 방법을 보여줍니다.

void loop()
{
  lcd.clear(); 
  lcd.setCursor(0, 0); // 커서 위치를 첫 번째 행과 첫 번째 열(0, 0)로 설정
  lcd.print("COUNT: ");
  lcd.print(count); // count 변수의 현재 값 출력
  delay(1000);
  count++; // 카운터를 1씩 증가
}

전체 코드는 기사 아래에 로드되며, 여기에서 완전한 구현과 프로젝트에 추가된 추가 기능을 확인할 수 있습니다.

시연 / 기대 효과

모든 것이 연결되고 코드가 업로드되면 LCD는 3초 동안 "Hello, world!"를 표시한 다음 매초 증가하는 카운터를 시작해야 합니다. 가변 저항을 사용하여 대비를 조정하여 텍스트를 쉽게 읽을 수 있도록 할 수 있습니다(비디오 08:45 참조).

문제가 발생하면 배선 연결을 확인하고 올바른 I2C 주소가 사용되고 있는지 확인하세요. 일반적인 실수는 LCD의 I2C 주소가 코드에 설정된 것과 일치하지 않아 디스플레이가 제대로 작동하지 않는 것입니다.

비디오 타임스탬프

  • 00:00 시작
  • 1:47 LCD 소개
  • 3:26 문서 페이지
  • 5:06 ESP32와 LCD 배선 방법
  • 9:07 Arduino에서 ESP32 보드 및 COMP 포트 선택
  • 8:51 LCD 라이브러리 설치
  • 10:06 LCD용 I2C 주소 찾기
  • 14:00 Arduino 코드 설명
  • 17:50 시연
  • 20:54 ESP32와 함께 LCD2004 사용
  • 22:58 녹색 LCD1602가 파란색보다 더 좋음

이미지

ESP32_11-5-l2C.MOV_snapshot_00.02.763
ESP32_11-5-l2C.MOV_snapshot_00.02.763
SunFounder-ESP32-Lesson-11-LCD1602.mp4_snapshot_20.23.926
SunFounder-ESP32-Lesson-11-LCD1602.mp4_snapshot_20.23.926
ESP32-11_LCD-wiring
ESP32-11_LCD-wiring
ESP32-11_LCD-wiring-schematic
ESP32-11_LCD-wiring-schematic
810-ESP32 Tutorial 11/55- Arduino code for LCD using ESP32
언어: C++
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

//SDA->21,SCL->22 
LiquidCrystal_I2C lcd(0x27,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display

int count = 0;

void setup()
{
  lcd.init();// initialize the lcd 
  lcd.backlight(); // Turns on the LCD backlight.
  lcd.print("Hello, world!");   // Print a message to the LCD.
  delay(3000);
}

void loop()
{
  lcd.clear(); 
  lcd.setCursor(0, 0); // Sets the cursor position to the first row and first column (0, 0).
  lcd.print("COUNT: ");
  lcd.print(count); // Prints the current value of the count variable.
  delay(1000);
  count++; // Increments the counter by 1. 
}

자원 및 참고자료

파일📁

파일이 없습니다.