본문 바로가기
arduino

아두이노 LCD1602 (I2C,IIC) 특수문자사용하기 : 초보자를 위한 완벽한 가이드

by Taesung 2023. 10. 7.
728x90

서론: 아두이노와 LCD I2C 모듈을 이용하여 글씨와 특수문자까지 작성해보겠습니다.

I2C모듈을 사용하지 않는 예제는 아래 글을 참조하세요

https://taesungblog.tistory.com/16

 

아두이노 1602 LCD (4bit) 사용하기 : 초보자를 위한 완벽한 가이드

서론: 아두이노와 CLCD (Character Liquid Crystal Display)는 텍스트 정보를 표시하고 상호작용하는 데 유용한 장치입니다. 이번 글에서는 아두이노와 CLCD를 사용하여 기본적인 텍스트 출력을 구현하는 방

taesungblog.tistory.com

회로 구성:

회로구성의 경우 간단합니다.

CLCD I2C 회로도

예제코드

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// LCD 화면 크기에 맞게 설정합니다. 예를 들어 16x2 또는 20x4일 수 있습니다.
LiquidCrystal_I2C lcd(0x27, 16, 2);  // 주소 (0x27)와 화면 크기 설정

void setup() {
  // LCD 초기화
  lcd.init();
  lcd.backlight(); // 백라이트 켜기

  // 화면에 텍스트 출력
  lcd.setCursor(0, 0); // 첫 번째 줄, 첫 번째 열
  lcd.print("Hello, World!");

  lcd.setCursor(0, 1); // 두 번째 줄, 첫 번째 열
  lcd.print("Arduino I2C LCD");
}

void loop() {
  // 여기에 원하는 작업을 추가하세요
}

결과확인:

 

아두이노 LCD

첫째줄에 Hello,World 

두번쨰줄에 Arduino I2C LCD를 출력합니다.

예제코드 2:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);  // I2C 주소 (보통 0x27)와 화면 크기 설정

// 특수문자 배열 정의
byte customChar0[8] = {
  B00011,
  B00100,
  B01000,
  B11111,
  B11111,
  B01000,
  B00100,
  B00011,
};
byte customChar1[8] = {
  B00000,
  B00000,
  B00000,
  B11111,
  B11111,
  B00000,
  B00000,
  B00000,
};
byte customChar2[8] = {
  B00000,
  B00000,
  B11011,
  B01110,
  B01110,
  B11011,
  B00000,
  B00000,
};
void setup() {
  lcd.init();                      // LCD 초기화
  lcd.backlight();                 // 백라이트 켜기

  // 사용자 정의 특수문자 생성 및 저장
  lcd.createChar(0, customChar0);
  lcd.createChar(1, customChar1);
  lcd.createChar(2, customChar2);

  lcd.setCursor(0, 0);            // 첫 번째 줄, 첫 번째 열
  lcd.print("Special Char:");

  // 사용자 정의 특수문자 출력
  lcd.setCursor(0, 1);            // 두 번째 줄, 첫 번째 열
  lcd.write(byte(0));              // 특수문자 출력
  lcd.write(byte(1));              // 특수문자 출력
  lcd.write(byte(2));              // 특수문자 출력
}

void loop() {
  // 여기에 작업을 추가하세요
}

결과확인:

아두이노 특수문자 LCD

첫째줄에 Special Char 

두번쨰줄에 customChar0 ,customChar1,customChar2 로 작성한 특수문자가 출력됩니다.

 

LiquidCrystal_I2C.h 에서 사용할수있는 함수

LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t lcd_cols, uint8_t lcd_rows) LiquidCrystal_I2C 객체를 초기화합니다.

lcd_Addr: I2C 주소 (7비트 주소). lcd_cols: LCD 화면의 열 수. lcd_rows: LCD 화면의 행 수.

init() LCD를 초기화합니다. clear() LCD 화면을 지웁니다.

home() 커서를 홈 위치로 이동시킵니다 (1행 1열).

setCursor(uint8_t col, uint8_t row) 커서의 위치를 설정합니다.

col: 열 번호 (0부터 시작). row: 행 번호 (0부터 시작).

print(String text) 문자열을 LCD에 출력합니다. text: 출력할 문자열.

write(uint8_t value) 문자 또는 특수문자를 출력합니다. value: 출력할 문자 또는 특수문자의 ASCII 코드 값.

createChar(uint8_t location, uint8_t charmap[]) 사용자 정의 특수문자를 만들고 저장합니다.

location: 특수문자의 위치 (0부터 7까지). charmap: 특수문자의 비트맵 데이터 배열.

noDisplay() 화면 표시를 비활성화합니다.

display()화면 표시를 활성화합니다.

noCursor()커서를 표시하지 않도록 설정합니다.

cursor() 커서를 표시합니다.

noBlink() 커서 깜빡임을 비활성화합니다.

blink() 커서를 깜빡이게 합니다.

scrollDisplayLeft() 화면을 왼쪽으로 스크롤합니다.

scrollDisplayRight() 화면을 오른쪽으로 스크롤합니다.

autoscroll() 자동 스크롤 모드를 활성화합니다.

noAutoscroll() 자동 스크롤 모드를 비활성화합니다.

leftToRight() 글자의 방향을 왼쪽에서 오른쪽으로 변경합니다.

rightToLeft() 글자의 방향을 오른쪽에서 왼쪽으로 변경합니다.

createChar(uint8_t location, uint8_t charmap[]) 사용자 정의 문자를 만들고 저장합니다.

setBacklight(uint8_t status) 백라이트 상태를 설정합니다.

offBacklight() 백라이트를 끕니다.

onBacklight() 백라이트를 켭니다.

반응형