이 Arduino LCD I2C 튜토리얼에서는
LCD I2C(Liquid Crystal Display)를 Arduino 보드에 연결하는 방법을 배웁니다.
LCD는 정보 표시를 위한 전자 프로젝트에서 매우 대중적이고 널리 사용됩니다.
LCD에는 많은 종류가 있습니다. 이 자습서에서는 LCD 16x2(16열 및 2행)를 예로 사용합니다. 다른 LCD도 비슷합니다.
필요한 하드웨어
Arduino UNO 또는 Genuino UNO |
USB 2.0 케이블 유형 A/B |
LCD I2C |
점퍼 와이어 |
LCD I2C 16x2 정보
에서 이전의 튜토리얼 , 우리는 일반 LCD를 사용하는 방법을 배웠습니다.
그러나 Arduino와 일반 LCD 사이의 배선은 복잡합니다.
따라서 배선을 단순화하기 위해 LCD I2C가 만들어졌습니다.
실제로 LCD I2C는 일반 LCD, I2C 모듈 및 전위차계(potentiometer)로 구성됩니다.
핀아웃
LCD I2C는 I2C 인터페이스를 사용하므로 4개의 핀이 있습니다.
- GND 핀 은 GND (0V)에 연결해야 합니다 .
- VCC 핀 LCD용 전원 공급 장치는 VCC (5V)에 연결해야 합니다 .
- SDA 핀 I2C 데이터 신호
- SCL 핀 I2C 클록 신호
LCD 좌표
LCD I2C 16x2는 16열과 2행을 포함합니다. 열과 행은 0부터 인덱싱됩니다.
배선도
LCD I2C 프로그래밍 방법
LiquidCrystal_I2C 라이브러리 덕분에 LCD를 사용하는 것은 아주 쉽습니다.
- 라이브러리 포함:
#include <LiquidCrystal_I2C.h> // Library for LCD
- I2C 주소, 열 수, 행 수를 사용하여 LiquidCrystal_I2C 개체를 선언합니다.
LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address 0x27, 16 column and 2 rows
- LCD를 초기화합니다.
lcd.init(); //initialize the lcd lcd.backlight(); //open the backlight
- 커서를 원하는 위치로 이동(column_index, row_index)
lcd.setCursor(column_index, row_index);
- LCD에 메시지를 인쇄합니다.
lcd.print("Hello World!");
LCD로 할 수 있는 일이 더 많이 있습니다(LCD 부분으로 더 많은 작업 참조)
아두이노 코드
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address 0x27, 16 column and 2 rows
void setup()
{
lcd.init(); // initialize the lcd
lcd.backlight();
lcd.setCursor(0, 0); // move cursor to (0, 0)
lcd.print("Arduino"); // print message at (0, 0)
lcd.setCursor(2, 1); // move cursor to (2, 1)
lcd.print("GetStarted.com"); // print message at (2, 1)
}
void loop()
{
}
빠른 단계
Arduino IDE에서 도구로 이동 라이브러리 관리
- "LiquidCrystal I2C"를 검색 한 다음 Frank de Brabander의 LiquidCrystal_I2C 라이브러리를 찾습니다.
- 설치 버튼을 클릭 하여 LiquidCrystal_I2C 라이브러리를 설치합니다.
- 위의 코드를 복사하여 Arduino IDE로 엽니다.
- 클릭 업로드 아두 이노 코드를 업로드 아두 이노 IDE 버튼을
- LCD에서 결과 보기
- 텍스트와 위치를 수정해 보세요.
기타 기능
loop() 함수에 아래 함수를 하나씩 추가합니다. 그리고 각 함수 뒤에 delay(5000)를 추가합니다.
- LCD 화면 클리어하기
lcd.clear();
- 커서를 LCD의 왼쪽 상단으로 이동
lcd.home();
- 커서를 위치(열, 행)로 이동
lcd.setCursor(column, row);
- LCD 커서 표시
lcd.cursor();
- LCD 커서를 숨깁니다.
lcd.noCursor();
- 깜박이는 LCD 커서 표시
lcd.blink()
- 깜박이는 LCD 커서를 끕니다.
lcd.noBlink()
- LiquidCrystal 라이브러리 참조 에서 더 많은 정보
LCD I2C 문제 해결
LCD I2C에 텍스트가 표시되지 않으면 다음 문제를 확인하십시오.
- LCD 뒷면의 전위차계를 돌려 LCD의 밝기를 조절합니다.
- 제조사에 따라 LCD의 I2C 주소가 다를 수 있습니다.
일반적으로 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); // wait 5 seconds for next scan
}
[참조 번역인용] https://arduinogetstarted.com/tutorials/arduino-lcd-i2c