728x90
반응형
Arduino 프로젝트에서 LCD를 사용하면 텍스트 출력뿐만 아니라 애니메이션 효과도 적용할 수 있습니다. 특히, I2C 방식의 LCD를 활용하면 보다 적은 핀으로 연결할 수 있어 편리합니다.
이번 포스팅에서는 LiquidCrystal_I2C 라이브러리를 이용하여 커스텀 캐릭터를 생성하고, LCD 화면에서 자동 이동하는 애니메이션을 구현하는 방법을 알아보겠습니다.
🔹 LiquidCrystal_I2C 라이브러리란?
I2C 방식의 LCD는 기존 병렬 방식(Parallel LCD)보다 더 적은 핀을 사용하여 연결할 수 있는 방식입니다. 이를 쉽게 제어하기 위해 LiquidCrystal_I2C 라이브러리를 사용합니다.
✅ 핵심 기능:
- LCD의 백라이트 및 기본 설정
- lcd.createChar()를 이용한 커스텀 문자 생성
- lcd.setCursor()를 활용한 위치 이동
- lcd.clear()를 통한 화면 정리
이제 LCD에서 움직이는 캐릭터를 생성하는 코드를 만들어 보겠습니다!
🎭 1. 커스텀 캐릭터 생성하기
LCD에서는 사용자 정의 문자를 설정하여 캐릭터 같은 특별한 모양을 만들 수 있습니다. 이를 위해 lcd.createChar() 함수를 사용하여 8x8 픽셀의 캐릭터를 생성합니다.
✅ 코드 (커스텀 문자 생성)
#include <LiquidCrystal_I2C.h>
#define LCD_I2C_ADDR 0x27
LiquidCrystal_I2C lcd(LCD_I2C_ADDR, 16, 2);
byte character[8] = {B00000,
B01010,
B10101,
B00000,
B00100,
B10001,
B01110,
B00000};
void setup() {
lcd.init();
lcd.backlight();
lcd.createChar(0, character); // 사용자 정의 문자 생성
}
💡 설명:
- byte character[8]: 8x8 픽셀로 캐릭터 모양을 정의
- lcd.createChar(0, character): LCD에 커스텀 문자 저장
- lcd.init(); 및 lcd.backlight(); → LCD 초기화 및 백라이트 설정
🎬 2. LCD에서 캐릭터 이동 애니메이션 구현
LCD에서 캐릭터가 자동으로 움직이도록 애니메이션을 추가할 수 있습니다. 아래 코드는 캐릭터가 왼쪽에서 오른쪽으로 이동한 후 다시 반대 방향으로 움직이는 코드입니다.
✅ 코드 (캐릭터 이동 애니메이션)
void loop() {
for (int i = 0; i < 16; i++) { // 오른쪽 이동
lcd.clear();
lcd.setCursor(i, 0);
lcd.write(byte(0)); // 커스텀 문자 출력
lcd.setCursor(2, 1);
lcd.print("Arduino World!");
delay(300);
}
for (int i = 15; i >= 0; i--) { // 왼쪽 이동
lcd.clear();
lcd.setCursor(i, 0);
lcd.write(byte(0)); // 커스텀 문자 출력
lcd.setCursor(2, 1);
lcd.print("Arduino World!");
delay(300);
}
}
💡 설명:
- 오른쪽으로 이동: for (int i = 0; i < 16; i++)
- 왼쪽으로 이동: for (int i = 15; i >= 0; i--)
- lcd.clear(); → 화면을 지우면서 자연스럽게 움직이도록 설정
- lcd.setCursor(i, 0); → 캐릭터를 움직이는 위치로 변경
- lcd.write(byte(0)); → 저장된 커스텀 캐릭터를 출력
🎯 마무리
이번 포스팅에서는 I2C 방식의 LCD를 활용한 커스텀 캐릭터 출력 및 자동 이동 애니메이션을 구현해 보았습니다. 이 방식은 다양한 게임 요소, 애니메이션 효과 및 프로젝트에 적용할 수 있습니다.
✅ 추가 확장 가능 기능:
- 버튼을 추가하여 사용자가 직접 이동 조작
- 여러 개의 캐릭터를 동시에 출력하여 다양한 인터랙션 구현
- 센서를 활용하여 움직임을 감지하는 방식 추가
💡 추가 기능을 원하신다면 댓글로 남겨 주세요! 🚀 Happy Coding! 🎮
728x90
반응형
'아두이노' 카테고리의 다른 글
초음파 센서를 이용한 음계 변환 회로 설계 (0) | 2025.05.20 |
---|---|
🎹 아두이노로 1옥타브 피아노 만들기! (0) | 2025.05.17 |
🚀 Arduino LCD에서 커스텀 문자 출력하기 (0) | 2025.05.15 |
Arduino와 LiquidCrystal 라이브러리를 활용한 LCD 출력 제어 (0) | 2025.05.15 |
아두이노 나노 기반 DIY 오실로스코프 만들기 – 완벽한 가이드 (0) | 2025.05.15 |