본문 바로가기
아두이노

아두이노 LCD 회로 설계 및 코드 구현

by 모빌리티키즈 2025. 5. 24.
728x90
반응형

아두이노를 활용하여 LCD 디스플레이를 제어하는 프로젝트를 진행해 보겠습니다. 이 글에서는 필요한 부품 리스트부터 소스 코드 설명까지 상세하게 다룹니다.

1. LCD 회로 구현을 위한 부품 리스트

LCD를 활용한 프로젝트를 구성하기 위해 다음 부품이 필요합니다.

부품명설명
아두이노 보드 코드 실행을 위한 마이크로컨트롤러 (Uno, Mega 등)
LCD 16x2 16x2 문자 디스플레이 (HD44780 드라이버 내장)
가변저항 (Potentiometer) LCD 대비 조정용
점퍼 와이어 회로 연결을 위한 필수품
브레드보드 간편한 회로 구성용

2. 부품 설명

각 부품이 회로에서 어떤 역할을 하는지 알아보겠습니다.

  • 아두이노 (Arduino Uno): 마이크로컨트롤러로, LCD 디스플레이를 제어하는 코드를 실행하는 역할을 합니다.
  • LCD 16x2: 문자형 LCD로, 한 줄에 16개의 문자, 총 2줄을 표시할 수 있습니다.
  • 가변저항: LCD의 명암을 조절하는 데 사용됩니다. 이를 통해 화면이 너무 밝거나 어두운 문제를 해결할 수 있습니다.
  • 점퍼 와이어: 모든 부품을 연결하는 역할을 합니다.
  • 브레드보드: 납땜 없이 회로를 구성할 수 있도록 도와줍니다.

3. 회로 연결 방법

LCD 16x2 디스플레이를 아두이노에 연결하는 방법은 다음과 같습니다.

핀 연결표

LCD 핀아두이노 핀설명
VSS GND 그라운드 연결
VDD 5V 전원 공급
V0 가변저항 화면 대비 조정
RS 12 레지스터 선택
RW GND 읽기/쓰기 모드 설정 (쓰기 모드)
E 11 Enable 신호
D4 5 데이터 핀
D5 4 데이터 핀
D6 3 데이터 핀
D7 2 데이터 핀

브레드보드에 모든 부품을 연결하고, 점퍼 와이어를 활용해 아두이노와 LCD를 연결합니다.

가변저항의 가운데 핀을 V0에 연결하면 명암을 조절할 수 있습니다.

 

4. 소스 코드 구성

LCD 디스플레이를 제어하는 주요 기능을 포함한 코드 구조입니다.

코드 기능

✅ 텍스트 출력

✅ 커서 깜빡임

✅ 화면 깜빡임

✅ 화면 스크롤

5. 소스 코드 설명

아두이노에서 LiquidCrystal 라이브러리를 사용하여 LCD를 제어할 수 있습니다. 주요 함수는 다음과 같습니다.

  • lcd.begin(16,2): LCD를 16x2 형식으로 초기화합니다.
  • lcd.print("Hello!"): LCD 화면에 문자열을 출력합니다.
  • lcd.clear(): 화면을 지웁니다.
  • lcd.cursor(): 커서를 활성화합니다.
  • lcd.blink(): 커서를 깜빡이게 합니다.
  • lcd.scrollDisplayRight(): 화면을 오른쪽으로 이동합니다.
  • lcd.scrollDisplayLeft(): 화면을 왼쪽으로 이동합니다.

6. 전체 소스 코드

 
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
    lcd.begin(16, 2);
}

void loop() {
    // 깜빡이는 커서 표시
    lcd.print("Cursor ON-Blink");
    lcd.cursor();
    lcd.blink();
    delay(2000);
    lcd.clear();

    // 커서 깜빡임 해제
    lcd.print("Cursor OFF");
    lcd.noBlink();
    lcd.noCursor();
    delay(1000);
    lcd.clear();

    // 숫자 증가 표시
    lcd.print("Cursor UP");
    for (int k = 0; k <= 10; k++) {
        lcd.home();
        lcd.print("NO:");
        lcd.print(k);
        delay(200);
    }
    lcd.clear();

    // 화면 깜빡이기
    lcd.print("Hello!");
    for (int k = 0; k < 3; k++) {
        lcd.noDisplay();
        delay(1000);
        lcd.display();
        delay(1000);
    }
    lcd.clear();

    // 오른쪽으로 텍스트 이동
    scrollText("Hello!", true);

    // 왼쪽으로 텍스트 이동
    scrollText("Hello!", false);
}

// 텍스트 이동 함수
void scrollText(const char *text, bool toRight) {
    lcd.setCursor(6, 0);
    lcd.print(text);

    for (int k = 0; k < 3; k++) {
        if (toRight) {
            lcd.scrollDisplayRight();
        } else {
            lcd.scrollDisplayLeft();
        }
        delay(500);
    }
    lcd.clear();
}

7. 동작 설명

✅ LCD 화면에 다양한 메시지를 출력할 수 있습니다.

✅ 커서 깜빡임 기능을 통해 화면 상태를 확인할 수 있습니다.

✅ 화면을 깜빡이거나 이동하여 동적 텍스트를 만들 수 있습니다.

✅ 숫자를 증가시키면서 값이 변하는 모습을 확인할 수 있습니다.

8. 결론

이번 프로젝트에서는 아두이노를 활용하여 LCD 디스플레이를 제어하는 방법을 알아보았습니다.

👉 LCD 16x2를 연결하고 다양한 기능을 적용하는 방법을 학습했습니다.

👉 소스를 작성하여 커서 깜빡임, 숫자 출력, 화면 이동 등의 기능을 구현했습니다.

👉 아두이노를 활용한 다양한 LCD 프로젝트에 응용할 수 있습니다.

이제 여러분의 프로젝트에 맞게 LCD 코드를 응용해보세요!

🚀 궁금한 점이 있으면 언제든지 질문하세요. 😊

728x90
반응형