[3D프린터개발산업기사 실기] 아두이노 I2C LCD 문자 출력

2019. 8. 21. 12:12공대남편/3D프린터개발산업기사

지난 실기 시험에서 1602 I2C LCD가 사용되었다고 하여, 이를 기준으로 작성하였습니다.
※ 1602 I2C LCD : 16행 2열의 문자를 출력할 수 있고, I2C 통신을 할 수 있는 LCD.
※ LiquidCrystal_I2C 라이브러리 사용

 

회로 구성

  LCD 후면을 보면 I2C 모듈(검은색 보드)이 부착되어 있는 것을 볼 수 있다. I2C 모듈이 부착된 LCD는 2개 핀(SDA,SCL)만 이용해서 문자를 출력할 수 있다.

LCD 후면

  회로는 다음과 같이 구성한다. 아두이노 보드의 종류에 따라서 연결하는 핀 번호가 다르니 유의한다. (실기에서 사용하는 Mega를 기준으로 작성하였다.)

LCD 아두이노(Mega)
GND GND
VCC 5V
SDA D20 (SDA)
SCL D21 (SCL)

회로를 연결한 사진

 

코드 작성

  LCD에 문자를 출력하기 위해서는 LiquidCrystal_I2C.h 라이브러리를 추가하여 사용할 수 있다. 해당 라이브러리는 [스케치] → [라이브러리 포함하기] → [라이브러리 관리]에 들어가서 LiquidCrystal I2C를 검색하여 설치한다. (Frank de Brabander가 만든 것 사용)

  우선 가장 기본이 되는 "Hello World!"를 출력해보자. 코드는 다음과 같이 작성하여 업로드 한다.

#include <LiquidCrystal_I2C.h>  //라이브러리 추가
LiquidCrystal_I2C lcd(0x27,16,2);  //0x27은 I2C 주소, 16열, 2행 설정
void setup() {
  lcd.init();  //LCD 초기화
  lcd.backlight();  //백라이트를 켠다
  lcd.print("Hello World!");  //문구 출력
}
void loop() {
}

  2번째 줄에 "lcd"라는 이름의 객체를 생성해 주었다. 변수는 I2C주소, 열 개수, 행 개수를 입력해야 하는데, I2C 주소는 일반적으로 0x27 또는 0x3F를 사용한다.

 

  이번에는 여러 줄에 반복되는 문구를 출력해보자. 코드는 다음과 같이 작성하여 업로드한다.

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
void setup() {
  lcd.init();
  lcd.backlight();
  lcd.print("Hello World!");  //초기 문구 출력
  delay(1000);
}
void loop() {
  lcd.clear();  //화면 전체 삭제
  delay(1000);
  lcd.setCursor(0,0);  //1열,1행 위치로 이동
  lcd.print("Techcouple");  //반복 문구 출력
  delay(1000);
  lcd.setCursor(0,1);  //1열, 2행 위치로 이동
  lcd.print("LCD Test...");  //반복 문구 출력
  delay(1000);
}