Arduino 프로젝트를 진행하다 보면 LCD 화면을 활용하여 정보를 출력하는 경우가 많습니다. 특히, LiquidCrystal 라이브러리를 사용하면 간단한 코드로 텍스트를 출력하고, 다양한 애니메이션 효과를 줄 수 있습니다.
이번 포스팅에서는 LCD 화면에 숫자 카운트업, 디스플레이 깜빡임 효과, 텍스트 이동 기능을 구현하는 코드와 설명을 제공합니다.
📌 1. LiquidCrystal 라이브러리란?
LiquidCrystal 라이브러리는 Arduino에서 LCD를 쉽게 제어할 수 있도록 도와주는 라이브러리입니다. 이를 활용하면 단순한 텍스트 출력뿐만 아니라 커서 이동, 화면 깜빡임, 스크롤 효과 등을 적용할 수 있습니다.
사용할 LCD는 16x2 (16칸 가로, 2줄 세로) 형식이며, 아래 핀을 활용하여 연결됩니다.
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
이제 LCD를 활용한 주요 기능들을 구현해 보겠습니다.
🔢 2. 숫자 카운트업 기능
카운트업 기능은 count_up() 함수를 통해 숫자를 증가시키며 화면에 표시하는 기능입니다. LCD 화면의 첫 번째 줄에는 "Count Up" 문구를 표시하고, 두 번째 줄에 숫자가 출력되도록 설정했습니다.
void count_up() {
lcd.print("Count Up");
delay(500);
for (int k = 0; k <= 10; k++) {
lcd.setCursor(0, 1); // 두 번째 줄에 출력
lcd.print("NO: ");
lcd.print(k);
delay(500);
}
lcd.clear();
}
✅ 설명:
- lcd.setCursor(0, 1): 두 번째 줄에 텍스트를 출력하도록 설정
- lcd.print(k): 숫자 카운트업
- lcd.clear(): 화면을 지우고 다음 동작을 준비
✨ 3. 디스플레이 깜빡임 효과
LCD 화면을 깜빡이는 효과를 주어 강조하거나 시각적인 재미를 줄 수 있습니다. 아래 코드는 s_sec() 함수로 3번 깜빡이는 효과를 구현한 예제입니다.
void s_sec() {
for (int k = 0; k < 3; k++) {
lcd.noDisplay(); // 화면 끄기
delay(1000);
lcd.display(); // 화면 켜기
delay(1000);
}
lcd.clear();
}
✅ 설명:
- lcd.noDisplay(): LCD 화면을 비활성화
- lcd.display(): LCD 화면을 다시 활성화
- delay(1000): 1초 동안 유지
🔄 4. 텍스트 이동 효과
텍스트를 좌우로 이동하는 애니메이션을 적용하면 동적인 효과를 줄 수 있습니다. 아래 코드는 "Hello!" 문구를 오른쪽 또는 왼쪽으로 이동하는 함수입니다.
▶️ 오른쪽 이동 (setCursor_r())
void setCursor_r() {
lcd.setCursor(6, 0);
lcd.print("Hello!");
for (int k = 0; k < 3; k++) {
lcd.scrollDisplayRight();
delay(500);
}
lcd.clear();
}
◀️ 왼쪽 이동 (setCursor_L())
void setCursor_L() {
lcd.setCursor(6, 0);
lcd.print("Hello!");
for (int k = 0; k < 3; k++) {
lcd.scrollDisplayLeft();
delay(500);
}
lcd.clear();
}
✅ 설명:
- lcd.scrollDisplayRight(): 화면을 오른쪽으로 이동
- lcd.scrollDisplayLeft(): 화면을 왼쪽으로 이동
- lcd.setCursor(6, 0): 텍스트를 6번째 칸에 위치
🔄 5. 전체 실행
모든 기능을 순차적으로 실행하도록 loop() 함수에서 조합하였습니다.
void loop() {
count_up();
delay(1000);
s_sec();
delay(1000);
setCursor_r();
delay(1000);
setCursor_L();
delay(1000);
}
✅ 동작 흐름: 1️⃣ 숫자 카운트업 → 2️⃣ 화면 깜빡임 → 3️⃣ 오른쪽 이동 → 4️⃣ 왼쪽 이동
각 기능을 1초 간격으로 실행하도록 설정하여 자연스럽게 동작합니다.
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
lcd.print("Count Up");
delay(1000);
lcd.clear();
}
void count_up() {
lcd.print("Count Up");
delay(500);
for (int k = 0; k <= 10; k++) {
lcd.setCursor(0, 1); // Move to second row
lcd.print("NO: ");
lcd.print(k);
delay(500);
}
lcd.clear();
}
void s_sec() {
for (int k = 0; k < 3; k++) {
lcd.noDisplay();
delay(1000);
lcd.display();
delay(1000);
}
lcd.clear();
}
void setCursor_r() {
lcd.setCursor(6, 0);
lcd.print("Hello!");
for (int k = 0; k < 3; k++) {
lcd.scrollDisplayRight();
delay(500);
}
lcd.clear();
}
void setCursor_L() {
lcd.setCursor(6, 0);
lcd.print("Hello!");
for (int k = 0; k < 3; k++) {
lcd.scrollDisplayLeft();
delay(500);
}
lcd.clear();
}
void loop() {
count_up();
delay(1000);
s_sec();
delay(1000);
setCursor_r();
delay(1000);
setCursor_L();
delay(1000);
}
🎯 마무리
이번 포스팅에서는 Arduino LCD를 활용한 카운트업, 깜빡임, 텍스트 이동 기능을 구현하는 코드를 다뤄봤습니다. 이러한 기능을 조합하면 더 멋진 UI를 만들 수 있으며, 다른 프로젝트에서도 응용할 수 있습니다.
💡 혹시 추가로 원하는 기능이 있다면 댓글로 남겨 주세요! 😊 Happy Coding! 🚀
'아두이노' 카테고리의 다른 글
🚀 Arduino I2C LCD를 활용한 자동 이동 캐릭터 (0) | 2025.05.15 |
---|---|
🚀 Arduino LCD에서 커스텀 문자 출력하기 (0) | 2025.05.15 |
아두이노 나노 기반 DIY 오실로스코프 만들기 – 완벽한 가이드 (0) | 2025.05.15 |
Arduino LCD 게임 제작 가이드 🎮 (0) | 2025.05.14 |
인터랙티브한 회로 미리보기 (0) | 2025.05.14 |