-
아두이노 라이브러리 | LCD 모듈 LiquidCrystal.hTechnology/Arduino 2024. 4. 12. 18:00
1. LCD 모듈
LCD(Liquid Crystal Display)는 고정된 위치에 영문자나 숫자를 표시할 수 있는 출력 장치이다. 총 16개의 단자를 가지고 있으며, 왼쪽부터 접지 단자, 전원 단자, 가변저항과 연결하는 글자 밝기 조절 단자(V0), 제어 신호 단자 3개(RS, R/W, E), 데이터 입력 신호 단자 8개(DB0~DB7), 백라이트 LED 양극 단자와 음극 단자로 구성되어 있다. LCD 모듈은 아래 링크로 접속하면 구매할 수 있다.
2. 제어 방법
LCD를 제어하기 위해서는 디스플레이에 문자를 나타내라는 명령과 문자를 표시하는 데 필요한 아스키코드(ASCII code) 데이터가 필요하다. 데이터 입력 신호 단자를 통해 입력된 명령과 데이터는 LCD 모듈 내부에 있는 명령 레지스터와 데이터 레지스터에 각각 일시적으로 저장되는데, RS 제어 단자에 디지털 신호 LOW를 입력하면 명령 레지스터가, 디지털 신호 HIGH를 입력하면 데이터 레지스터가 선택되어 데이터가 전달된다. R/W 제어 단자는 LCD 모듈이 읽기(Write) 동작이나 쓰기(Read) 동작을 하도록 설정하는 단자로, 디지털 신호 LOW가 입력되면 LCD 모듈이 디스플레이에 문자를 쓰는 동작을 한다. LCD 모듈은 일반적으로 문자를 표시하는 데 많이 사용되므로, R/W 제어 단자는 일반적으로 접지 단자에 연결된다. E 제어 단자는 활성화 여부를 결정하는 단자로, 해당 단자에 입력되는 디지털 신호로 HIGH에서 LOW로 변경되는 하강 에지(edge)를 형성하면 레지스터에 저장된 내용을 바탕으로 데이터가 처리된다.
아두이노 플랫폼은 사용자가 LCD 모듈의 각 제어 단자를 직접 제어할 필요 없이 직관적으로 제어할 수 있도록 LCD 라이브러리를 제공하고 있다. 해당 라이브러리는 데이터 입력 신호 단자 8개를 모두 사용하는 8비트 모드로 제어하지 않고, 단자 4개(DB4~DB7)만 사용하는 4비트 모드로 LCD 모듈을 제어한다. 아래 링크로 접속하면 아두이노 플랫폼에서 지원하는 LCD 라이브러리와 이에 대한 설명을 확인할 수 있다.
3. 예제
3.1. 회로 구성
3.2. 프로그램 작성
#include <LiquidCrystal.h> // LCD 라이브러리 추가 // LCD라는 이름의 LiquidCrystal 객체 생성 LiquidCrystal LCD(12, 11, 7, 6, 5, 4); // RS, EN, DB4, DB5, DB6, DB7 순서로 연결 void setup() { LCD.begin(16, 2); // LCD 사용 시작, 열과 행의 개수 입력 LCD.print("HELLO WORLD!"); // LCD에 문자열 입력 delay(1000); // 1000 ms 대기 } void loop() { LCD.setCursor(0, 1); // LCD 커서를 0열 1행으로 이동 LCD.print("WELCOME TO THE VEDACUBE"); delay(1000); // LCD에 출력된 문자열을 왼쪽으로 13칸 이동 for (int i = 0; i < 7; i++) { LCD.scrollDisplayLeft(); delay(100); } delay(1000); // LCD에 출력된 문자열을 오른쪽으로 29칸 이동 for (int i = 0; i < 23; i++) { LCD.scrollDisplayRight(); delay(100); } // LCD에 출력된 문자열을 왼쪽으로 16칸 이동 for (int i = 0; i < 16; i++) { LCD.scrollDisplayLeft(); delay(100); } delay(1000); LCD.clear(); // LCD에 출력된 문자열을 모두 삭제 delay(1000); }
[함께 읽으면 좋은 페이지]
참고문헌
- 최훈. (2022). 팅커캐드 & 아두이노. 길벗캠퍼스.
- DroneBot Workshop. (2018). Using LCD Displays with Arduino. YouTube. https://www.youtube.com/watch?v=wEbGhYjn4QI. 2023.11.03.
반응형'Technology > Arduino' 카테고리의 다른 글
아두이노 라이브러리 | 키패드 Keypad.h (0) 2024.06.21 아두이노 I2C 통신 | LCD I2C 모듈 LiquidCrystal_I2C.h (1) 2024.06.14 아두이노 프로젝트 | 디지털 타이머 (0) 2024.04.05 아두이노 프로젝트 | 디지털 카운터 (0) 2024.03.29 아두이노 라이브러리 | 7-세그먼트 디스플레이 SevSeg.h (0) 2024.03.22