ESP8266 - LCD | ESP8266 - LCD

이 튜토리얼은 ESP8266을 사용하여 LCD 디스플레이를 사용하는 방법과 ESP8266을 프로그래밍하여 LCD에 텍스트와 특수 문자를 표시하는 방법을 알려줍니다.

준비물

1×ESP8266 NodeMCU Amazon
1×Micro USB Cable Amazon
1×LCD I2C 쿠팡 | Amazon
1×Jumper Wires Amazon
1×(Optional) 5V Power Adapter for ESP8266 Amazon
1×(Optional) ESP8266 Screw Terminal Adapter Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

LCD I2C 16x2에 대하여

LCD I2C는 표준 LCD에 비해 더 나은 대안입니다. 단 4개의 핀만으로 ESP8266에 연결하기가 쉽습니다. 내장된 가변 저항으로 LCD의 대비를 조정하기 쉽습니다.

LCD I2C 핀배열

LCD I2C는 ESP8266에 연결하기 위해 I2C 인터페이스를 사용합니다. 4개의 핀이 있습니다:

  • GND핀: 이것은 GND(0V)에 연결되어야 합니다.
  • VCC핀: 이것은 LCD의 전원 공급 장치이며 VCC(5V)에 연결되어야 합니다.
  • SDA핀: 이것은 I2C 데이터 신호입니다.
  • SCL핀: 이것은 I2C 시계 신호입니다.
LCD I2C pinout

LCD 좌표

LCD I2C 16x2는 총 16개의 열과 2개의 행을 가지고 있습니다. 열과 행은 0부터 시작하여 번호가 매겨집니다.

ESP8266 NodeMCU LCD I2C Coordinate

선연결

ESP8266 NodeMCU LCD I2C wiring diagram

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

ESP8266의 핀 배치ESP8266 및 다른 구성 요소에 전원을 공급하는 방법에 대해 더 많이 보십시오.

LCD I2C ESP8266
Vin Vin
GND GND
SDA D2 (GPIO4)
SCL D1 (GPIO5)

LCD I2C 프로그래밍 방법

LCD를 사용하려면 LiquidCrystal_I2C 라이브러리를 포함시켜야 합니다.

LCD 설정:

LCD는 사용하기 전에 설정해야 합니다.

LCD에 쓰기:

LiquidCrystal_I2C 라이브러리 덕분에 LCD에 쓰기가 간단해집니다.

#include <LiquidCrystal_I2C.h> // LCD를 위한 라이브러리

LiquidCrystal_I2C 클래스의 객체를 선언하면서, 그 I2C 주소, 열의 수, 행의 수를 지정하세요.

LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C 주소 0x27, 16열 2행

LCD를 시작하십시오.

lcd.init(); //lcd를 초기화합니다 lcd.backlight(); //백라이트를 켭니다

커서를 원하는 위치(column_index, row_index)에 놓으세요.

lcd.setCursor(column_index, row_index);

LCD 화면에 메시지를 표시하세요.

lcd.print("Hello World!");

"Do More with LCD" 섹션을 살펴보며 LCD로 무엇을 할 수 있는지의 가능성을 탐구해 보세요.

※ NOTE THAT:

LCD의 주소는 제조업체에 따라 다를 수 있습니다. 우리 코드에서는 DIYables 제조업체에서 지정한 0x27을 사용했습니다.

ESP8266 코드

#include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C 주소 0x27, 16열 2행 void setup() { lcd.init(); // LCD I2C 디스플레이 초기화 lcd.backlight(); } void loop() { lcd.clear(); // 디스플레이 지우기 lcd.setCursor(0, 0); // 커서를 (0, 0)으로 이동 lcd.print("Arduino"); // (0, 0)에 메시지 출력 lcd.setCursor(2, 1); // 커서를 (2, 1)으로 이동 lcd.print("GetStarted.com"); // (2, 1)에 메시지 출력 delay(2000); // 위 내용을 2초간 표시 lcd.clear(); // 디스플레이 지우기 lcd.setCursor(3, 0); // 커서를 (3, 0)으로 이동 lcd.print("DIYables"); // (3, 0)에 메시지 출력 lcd.setCursor(0, 1); // 커서를 (0, 1)으로 이동 lcd.print("www.diyables.io"); // (0, 1)에 메시지 출력 delay(2000); // 위 내용을 2초간 표시 }

사용 방법

Arduino IDE에서 ESP8266을 사용하기 시작하려면 다음 단계를 따르세요:

  • 만약 이것이 처음 ESP8266을 사용하는 것이라면, Arduino IDE에서 ESP8266 환경 설정하는 방법 튜토리얼을 확인하세요.
  • 도안에 표시된 대로 구성 요소들을 연결하세요.
  • USB 케이블을 사용하여 ESP8266 보드를 컴퓨터에 연결하세요.
  • 컴퓨터에서 Arduino IDE를 엽니다.
  • 올바른 ESP8266 보드를 선택하세요, 예를 들어 (NodeMCU 1.0 (ESP-12E Module)), 그리고 그에 해당하는 COM 포트를 선택하세요.
  • Arduino IDE의 왼쪽 바에 있는 Libraries 아이콘을 클릭하세요.
  • "LiquidCrystal I2C"를 검색하고 Frank de Brabander가 만든 LiquidCrystal_I2C 라이브러리를 찾으세요.
  • 그리고나서, Install 버튼을 클릭하여 라이브러리를 추가하세요.
ESP8266 NodeMCU LiquidCrystal I2C library
  • 코드를 복사해서 아두이노 IDE에서 열어주세요.
  • 아두이노 IDE에서 Upload 버튼을 클릭하여 코드를 컴파일하고 ESP8266으로 업로드하세요.
  • LCD에서 결과를 확인하세요.
ESP8266 NodeMCU display text on LCD
  • 이미지의
  • 단어와 사진의 배치를 바꿔가며 실험해보세요.

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.

LCD로 더 많은 것을 하세요

맞춤 캐릭터

lcd.print()는 ASCII 문자만 허용합니다. 특수 문자나 상징(예: 하트, 분노의 새)을 표시하려면 문자 생성기를 사용하세요.

LCD 16x2는 32개의 문자를 표시할 수 있는 능력을 가지고 있습니다. 각 문자는 40개 픽셀로 구성되어 있으며, 8개의 행과 5개의 열로 되어 있습니다.

ESP8266 NodeMCU LCD 16x2 Pixel

캐릭터 생성기는 40 픽셀 크기의 캐릭터를 생성합니다. 사용하려면 다음 단계를 따르기만 하면 됩니다:

Click on each pixel to select/deselect


Copy below custom character code
Replace the customChar[8] in the below code
#include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C 주소 0x27, 16열 및 2행 byte customChar[8] = { 0b00000, 0b01010, 0b11111, 0b11111, 0b01110, 0b00100, 0b00000, 0b00000 }; void setup() { lcd.init(); // LCD I2C 디스플레이 초기화 lcd.backlight(); lcd.createChar(0, customChar); // 새로운 맞춤 문자 생성 lcd.setCursor(2, 0); // 커서를 (2, 0)로 이동 lcd.write((byte)0); // 맞춤 문자를 (2, 0)에 출력 } void loop() { }

LCD 화면에 표시된 결과는 다음과 같습니다: . LCD에 표시된 결과는 다음과 같습니다:

LCD custom character

여러 개의 맞춤 문자들

최대 8개의 맞춤 문자를 만들 수 있으며, 0부터 7까지 번호가 매겨집니다. 다음 예는 그중 세 개를 생성하고 보여줍니다.

#include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C 주소 0x27, 16열 2행 byte customChar0[8] = { 0b00000, 0b01010, 0b11111, 0b11111, 0b01110, 0b00100, 0b00000, 0b00000 }; byte customChar1[8] = { 0b00100, 0b01110, 0b11111, 0b00100, 0b00100, 0b00100, 0b00100, 0b00100 }; byte customChar2[8] = { 0b00100, 0b00100, 0b00100, 0b00100, 0b00100, 0b11111, 0b01110, 0b00100 }; void setup() { lcd.init(); // LCD I2C 디스플레이 초기화 lcd.backlight(); lcd.createChar(0, customChar0); // 새로운 사용자 지정 문자 생성 (인덱스 0) lcd.createChar(1, customChar1); // 새로운 사용자 지정 문자 생성 (인덱스 1) lcd.createChar(2, customChar2); // 새로운 사용자 지정 문자 생성 (인덱스 2) lcd.setCursor(2, 0); // 커서를 (2, 0)으로 이동 lcd.write((byte)0); // 커스텀 문자 0을 (2, 0)에 출력 lcd.setCursor(4, 0); // 커서를 (4, 0)으로 이동 lcd.write((byte)1); // 커스텀 문자 1을 (4, 0)에 출력 lcd.setCursor(6, 0); // 커서를 (6, 0)으로 이동 lcd.write((byte)2); // 커스텀 문자 2를 (6, 0)에 출력 } void loop() { }

LCD에 표시된 결과는: 입니다. LCD에 나타난 결과는: 입니다.

LCD multiple custom characters

요약: LCD에 사용자 정의 문자 사용 방법

  • 캐릭터 생성기를 사용하여 사용자 지정 캐릭터에 대한 이진 코드를 생성하세요.
  • 이전 단계에서 생성된 이진 코드를 복사하여 선언하세요.
byte customChar[8] = { 0b00000, 0b01010, 0b11111, 0b11111, 0b01110, 0b00100, 0b00000, 0b00000 };

설정(setup()) 루틴에서 자신만의 캐릭터를 정의하고 0에서 7 사이의 숫자 값을 할당하세요.

lcd.createChar(index, customChar);

설정(setup()) 함수나 루프(loop()) 함수에서 언제든지 LCD에 사용자 정의 문자를 표시하세요.

lcd.setCursor(column, row); // 원하는 위치로 커서 이동 lcd.write((byte)index); // 원하는 위치에 사용자 정의 문자 출력

기타 기능들

"Hello World"를 출력하십시오.

다음 기능들을 loop() 함수 안에 차례대로 삽입하십시오:

  • LCD 화면을 지우세요.
  • 5000밀리초 동안 지연시키세요.
  • "Hello World"를 출력하세요.
lcd.clear();

LCD의 왼쪽 상단 모서리에 커서를 위치하세요.

lcd.home();

커서를 특정 열과 행에 위치시키세요.

lcd.setCursor(column, row);

LCD 화면에 커서를 표시하십시오.

lcd.cursor();

LCD 커서를 보이지 않게 합니다.

lcd.noCursor();

LCD 커서가 깜박이는 것을 표시하세요.

lcd.blink()

LCD 커서의 깜빡임을 비활성화하십시오.

lcd.noBlink()

자신에게 도전하세요

다음 프로젝트 중 하나를 수행하기 위해 LCD를 사용하세요:

LCD I2C 문제 해결

  1. LCD 뒷면에 있는 포텐쇼미터를 돌려 LCD의 대비를 조정하세요.
  2. 제조사에 따라 LCD의 I2C 주소가 다를 수 있습니다. 일반적으로 LCD의 기본 I2C 주소는 0x27 또는 0x3F입니다. 이 값을 차례로 시도해 보세요. 실패하면 아래 코드를 실행하여 I2C 주소를 확인하세요.
// I2C 주소 스캐너 프로그램 #include <Wire.h> void setup() { Wire.begin(); Serial.begin(9600); Serial.println("I2C Scanner"); } void loop() { byte error, address; int nDevices; Serial.println("Scanning..."); nDevices = 0; for (address = 1; address < 127; address++ ) { 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"); else Serial.println("done"); delay(5000); // 다음 스캔까지 5초 기다림 }

시리얼 모니터에 표시된 결과는: . 시리얼 모니터에서 볼 수 있는 효과는: . 시리얼 모니터에 나타나는 것은: .

COM6
Send
Scanning... I2C device found at address 0x3F ! done Scanning... I2C device found at address 0x3F ! done
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!