아두이노 우노 R4 - LCD I2C

이 튜토리얼은 Arduino UNO R4와 함께 16x2 LCD I2C 인터페이스를 사용하는 방법을 안내합니다. 자세히는, 우리는 다음을 배울 것입니다:

Arduino UNO R4 및 16x2 LCD I2C

Hardware Preparation

1×Arduino UNO R4 WiFi Amazon
1×Arduino UNO R4 Minima (Alternatively) Amazon
1×USB Cable Type-C 쿠팡 | Amazon
1×LCD I2C 쿠팡 | Amazon
1×Jumper Wires Amazon
1×(Recommended) Screw Terminal Block Shield for Arduino UNO R4 쿠팡 | Amazon
1×(Recommended) Breadboard Shield For Arduino UNO R4 쿠팡 | Amazon
1×(Recommended) Enclosure For Arduino UNO R4 Amazon
1×(Recommended) Power Splitter For Arduino UNO R4 Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

LCD I2C 16x2에 대하여

16x2 LCD I2C는 16개의 열과 2개의 행으로 구성된 디스플레이입니다. I2C 인터페이스가 장착되어 있으며, 대비 조정을 위한 전위차계를 포함하고 있습니다.

핀아웃

LCD I2C는 I2C 인터페이스를 통해 연결되며 4개의 핀이 있습니다.

  • GND 핀: GND(0 볼트)에 연결합니다.
  • VCC 핀: 전원(5 볼트)을 위해 VCC에 연결합니다.
  • SDA 핀: I2C 데이터 신호를 전달합니다.
  • SCL 핀: I2C 클록 신호를 전달합니다.
LCD I2C 핀아웃

LCD 좌표

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

아두이노 UNO R4 LCD I2C 좌표

Wiring Diagram

아두이노 UNO R4 LCD I2C 배선도

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

LCD I2C Arduino UNO R4, Nano Arduino Mega
Vin 5V 5V
GND GND GND
SDA A4 20
SCL A5 21

LCD I2C 프로그래밍 방법

LiquidCrystal_I2C 라이브러리를 사용하면 LCD를 매우 쉽게 다룰 수 있습니다.

  • 라이브러리 포함:
#include <LiquidCrystal_I2C.h>
  • I2C 주소, 열 수, 행 수를 지정하여 LiquidCrystal_I2C 객체를 생성합니다.
Here's the Arduino code with comments translated to Korean: LiquidCrystal_I2C lcd(0x27, 16, 2); // 16x2 디스플레이용 I2C 주소 0x27로 LCD 초기화
  • LCD 화면을 설정하세요.
Here is the Arduino code with comments translated into Korean: lcd.init(); // LCD 디스플레이 초기화 lcd.backlight(); // LCD의 백라이트 켜기
  • 선택한 위치에 커서를 두세요 (열 인덱스, 행 인덱스).
lcd.setCursor(column_index, row_index);
  • LCD 화면에 메시지를 표시합니다.
lcd.print("Hello World!");

LCD로 더 많은 일을 할 수 있습니다 ('LCD로 더 많은 일 하기' 섹션 참조).

※ NOTE THAT:

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

아두이노 UNO R4 코드

/* * 이 Arduino UNO R4 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO R4 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-r4/arduino-uno-r4-lcd-i2c */ #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address 0x27, 16 column and 2 rows void setup() { lcd.init(); // LCD를 초기화합니다. lcd.backlight(); lcd.setCursor(3, 0); // 커서를 (3, 0)으로 이동합니다. lcd.print("DIYables"); // 메시지를 (3, 0)에 출력합니다. lcd.setCursor(0, 1); // 커서를 (0, 1)로 이동합니다. lcd.print("www.diyables.io"); // 메시지를 (0, 1)에 출력합니다. } void loop() { }

Detailed Instructions

다음 지침을 단계별로 따르세요:

  • Arduino Uno R4 WiFi/Minima를 처음 사용하는 경우, Arduino IDE에서 Arduino Uno R4 WiFi/Minima 환경 설정에 대한 튜토리얼을 참조하십시오.
  • 제공된 다이어그램에 따라 LCD I2C 디스플레이를 Arduino UNO R4에 연결합니다.
  • USB 케이블을 사용하여 Arduino Uno R4 보드를 컴퓨터에 연결합니다.
  • 컴퓨터에서 Arduino IDE를 실행합니다.
  • 적절한 Arduino Uno R4 보드(예: Arduino Uno R4 WiFi)와 COM 포트를 선택합니다.
  • Arduino IDE의 왼쪽에 있는 Libraries 아이콘으로 이동합니다.
  • 검색 창에 "LiquidCrystal I2C"를 입력하고 Frank de Brabander의 LiquidCrystal_I2C 라이브러리를 찾습니다.
  • Install 버튼을 눌러 LiquidCrystal_I2C 라이브러리를 설치합니다.
아두이노 UNO R4 LiquidCrystal I2C 라이브러리
  • 코드를 복사하여 Arduino IDE에서 엽니다
  • Arduino IDE에서 Upload 버튼을 클릭하여 코드를 Arduino UNO R4에 업로드합니다
  • LCD 화면에서 결과를 확인하세요
아두이노 UNO R4 LCD I2C 디스플레이
  • 텍스트와 위치를 변경해 보세요.

Video Tutorial

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

LCD로 더 많은 것을 해보세요

사용자 정의 문자

특수 문자나 기호(예: 하트나 화난 새)를 LCD에 표시하려면 문자 생성기를 사용해야 합니다. 왜냐하면 lcd.print() 함수는 ASCII 문자만 표시할 수 있기 때문입니다.

LCD 16x2는 각 줄에 16개의 위치가 있는 2줄에 걸쳐 32개의 문자를 표시할 수 있습니다. 각 문자는 8개의 줄과 5개의 열로 배열된 40개의 작은 사각형을 사용합니다.

아두이노 UNO R4 LCD 16x2 픽셀

문자 생성기는 문자(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> // I2C 주소 0x27에서 16열과 2행으로 연결된 LCD 초기화 LiquidCrystal_I2C lcd(0x27, 16, 2); // 사용자 정의 문자 모양을 만들기 위한 바이트 배열 정의 byte customChar[8] = { 0b00000, 0b01010, 0b11111, 0b11111, 0b01110, 0b00100, 0b00000, 0b00000 }; void setup() { lcd.init(); // LCD 화면 초기화 lcd.backlight(); // 백라이트 켜기 lcd.createChar(0, customChar); // LCD에 ID 0으로 사용자 정의 문자 등록 lcd.setCursor(2, 0); // 커서를 열 2, 행 0에서 시작하도록 설정 lcd.write((byte)0); // 현재 커서 위치에 사용자 정의 문자 표시 } void loop(){ }

화면에 표시된 결과:

LCD 사용자 지정 문자

여러 개의 사용자 지정 문자

우리는 최대 8개의 특수 문자를 만들 수 있습니다(0부터 7까지 번호 매겨짐). 아래 예시는 세 개의 문자를 만드는 방법과 표시 방법을 보여줍니다.

#include <LiquidCrystal_I2C.h> // I2C 주소 0x27을 사용하여 16열 2행의 LCD 객체 생성 LiquidCrystal_I2C lcd(0x27, 16, 2); // 사용자 정의 문자 0 (하트 모양) 정의 byte customChar0[8] = { 0b00000, 0b01010, 0b11111, 0b11111, 0b01110, 0b00100, 0b00000, 0b00000 }; // 사용자 정의 문자 1 (위쪽을 가리키는 화살표) 정의 byte customChar1[8] = { 0b00100, 0b01110, 0b11111, 0b00100, 0b00100, 0b00100, 0b00100, 0b00100 }; // 사용자 정의 문자 2 (아래쪽을 가리키는 화살표) 정의 byte customChar2[8] = { 0b00100, 0b00100, 0b00100, 0b00100, 0b00100, 0b11111, 0b01110, 0b00100 }; void setup() { lcd.init(); // LCD 디스플레이 초기화 lcd.backlight(); // LCD 백라이트 켜기 // LCD에 인덱스 0으로 사용자 정의 문자 0 등록 lcd.createChar(0, customChar0); // LCD에 인덱스 1으로 사용자 정의 문자 1 등록 lcd.createChar(1, customChar1); // LCD에 인덱스 2으로 사용자 정의 문자 2 등록 lcd.createChar(2, customChar2); // 커서를 열 2, 행 0으로 설정 lcd.setCursor(2, 0); // 현재 커서 위치에 사용자 정의 문자 0 표시 lcd.write((byte)0); // 커서를 열 4, 행 0으로 설정 lcd.setCursor(4, 0); // 현재 커서 위치에 사용자 정의 문자 1 표시 lcd.write((byte)1); // 커서를 열 6, 행 0으로 설정 lcd.setCursor(6, 0); // 현재 커서 위치에 사용자 정의 문자 2 표시 lcd.write((byte)2); } void loop() { }

액정 디스플레이(LCD)에 표시된 결과:

다중 사용자 정의 문자 LCD

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

  • 위의 문자 생성기를 사용하여 특별한 문자의 이진 코드를 만드십시오.
  • 해당 문자의 이진 코드를 적으십시오 (이전 단계에서 복사).
byte customChar[8] = { 0b00000, 0b01010, 0b11111, 0b11111, 0b01110, 0b00100, 0b00000, 0b00000 };
  • 설정 함수에서 맞춤형 캐릭터를 만들고 0과 7 사이의 숫자에 배치합니다.
lcd.createChar(index, customChar);
  • Setup() 함수나 loop() 함수에서 언제든지 LCD에 특수 문자를 표시하십시오.
lcd.setCursor(column, row); // 지정된 열과 행으로 커서를 설정합니다 lcd.write((byte)index); // 'index' 위치에 저장된 사용자 정의 문자를 표시합니다

기타 기능

다음 함수를 하나씩 loop() 함수에 삽입하고 각 함수 후에 delay(5000)을 추가하십시오.

  • 읽기 쉬운 LCD 디스플레이
lcd.clear();
  • 화면의 왼쪽 상단 모서리에 커서를 놓으세요.
lcd.home();
  • 커서의 위치를 특정한 곳(열, 행)에 놓습니다.
lcd.setCursor(column, row);
  • LCD 화면 커서를 표시합니다.
lcd.cursor();
  • LCD 화면 커서를 끕니다.
lcd.noCursor();
  • 깜박이는 LCD 커서를 표시하세요.
lcd.blink()
  • LCD 커서 깜박임을 멈춥니다.
lcd.noBlink()

LCD I2C 문제 해결

텍스트가 LCD I2C에 나타나지 않으면 다음 문제를 확인하세요:

  • LCD 화면의 밝기를 뒷면의 가변 저항기를 돌려 조정하세요.
  • LCD의 I2C 주소는 제조사마다 다를 수 있습니다. 일반적으로 0x27 또는 0x3F입니다. 이 주소들을 개별적으로 테스트하세요. 둘 다 작동하지 않으면, 올바른 I2C 주소를 찾기 위해 다음 코드를 사용하세요.
// I2C address scanner program #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!