LCD란?
LCD는 Liquid Crystal Display의 약어로, 액정 디스플레이를 의미합니다. 이는 아두이노와 같은 마이크로컨트롤러와 함께 사용되어 다양한 프로젝트에서 사용됩니다.
아두이노와 LCD를 함께 사용하는 방법은 일반적으로 아두이노의 디지털 핀과 아날로그 핀을 사용하여 제어합니다. 또한 I2C나 SPI와 같은 통신 프로토콜을 사용하여 LCD를 제어할 수도 있습니다.
LCD를 사용하는 방법은 대개 LCD 라이브러리를 사용합니다. 이 라이브러리는 텍스트, 숫자, 기호 등을 표시하는 데 필요한 함수를 제공합니다. 라이브러리를 사용하여 LCD를 초기화하고 텍스트 또는 숫자를 표시하거나, 커서를 이동시키거나, 백라이트를 제어할 수 있습니다.
아두이노와 LCD를 함께 사용하면 다양한 프로젝트에서 유용하게 사용할 수 있습니다. 예를 들어 온도계, 습도계, 시계, 날씨 정보 표시기, 문자열 출력기 등을 만들 수 있습니다.
LCD 핀 배치 및 회로도
<lcd 핀 배치>
1. GND
2. VCC
3. Contrast
4. RS (Register Select)
5. R/W (Read/Write)
6. Enable
7. DB0 (Data Bit 0)
8. DB1 (Data Bit 1)
9. DB2 (Data Bit 2)
10. DB3 (Data Bit 3)
11. DB4 (Data Bit 4)
12. DB5 (Data Bit 5)
13. DB6 (Data Bit 6)
14. DB7 (Data Bit 7)
15. Backlight Anode (+)
16. Backlight Cathode (-)
위 순번대로 아두이노에 꽂으라는 말은 아닙니다. 이렇게 배치되어있다라는걸 말씀드립니다.
위 핀 배치를 참고하여 아두이노와 LCD 모듈을 연결합니다. 핀 배치는 LCD 모듈의 제조사 및 모델에 따라 다를 수 있으므로, 연결 전에 반드시 핀 배치를 확인해야 합니다.
LCD 모듈과 아두이노를 연결한 후, 아두이노 코드를 작성하여 LCD 모듈을 제어할 수 있습니다.
<lcd 회로도>
LCD 16X2 코딩 해보기
#include <LiquidCrystal.h>
// RS 핀: 12, Enable 핀: 11, DB4 핀: 5, DB5 핀: 4, DB6 핀: 3, DB7 핀: 2
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2); // LCD 모듈의 크기를 설정합니다.
lcd.print("Hello, World!"); // LCD 모듈에 문자열을 출력합니다.
}
void loop() {
// 아무 작업도 수행하지 않습니다.
}
위 코드는 LiquidCrystal 라이브러리를 사용하여 16x2 LCD 모듈을 제어하는 예시입니다. LiquidCrystal 라이브러리는 아두이노에 기본으로 포함되어 있으므로, 별도의 설치 작업이 필요하지 않습니다.
setup() 함수에서는 LCD 모듈의 크기를 설정하고, loop() 함수에서는 아무 작업도 수행하지 않습니다. 대신, LCD 모듈에 "Hello, World!"라는 문자열을 출력하는 코드를 작성합니다.
위 코드를 아두이노에 업로드한 후, LCD 모듈을 살펴보면 "Hello, World!"라는 문자열이 출력되는 것을 확인할 수 있습니다.
LiquidCrystal_I2C란?
LiquidCrystal I2C는 I2C 버스를 통해 LCD 디스플레이를 제어하기 위한 라이브러리입니다. 일반적으로 아두이노에서 LCD를 제어하려면 6개의 핀이 필요하지만 LiquidCrystal I2C를 사용하면 이를 단 2개의 핀으로 제어할 수 있습니다.
이 라이브러리는 I2C 통신을 사용하여 PCF8574 또는 PCF8574A I/O 확장 칩에 연결된 LCD 디스플레이를 제어합니다. 이를 통해 LCD를 제어하기 위해 필요한 핀 수를 줄일 수 있으므로 작은 아두이노 보드나 다른 마이크로컨트롤러보드에서도 LCD를 사용하기 쉽습니다.
LiquidCrystal I2C 라이브러리를 사용하면 LCD 디스플레이를 초기화하고 문자를 출력하고 커서를 이동시키는 등의 작업을 쉽게 수행할 수 있습니다. 또한, 이 라이브러리는 LCD 디스플레이의 밝기, 커서의 깜빡임 등과 같은 다양한 설정을 변경할 수 있는 기능도 제공합니다.
그럼 일반 lcd랑 i2c와 비교해볼까요?
좌측은 처음 설명드렸던 아두이노에서 흔히 사용하는 lcd 이며, 우측은 i2c방식으로 육안으로 봐도 확연한 차이를 보입니다.
쉽게 말해 편하게 사용할 수 있는 것입니다.
LiquidCrystal_I2C를 이용한 코딩
#include <Wire.h> // Wire 라이브러리 포함
#include <LiquidCrystal_I2C.h> // LiquidCrystal_I2C 라이브러리 포함
// I2C 주소와 LCD 크기 설정
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
lcd.init(); // LCD 초기화
lcd.backlight(); // 백라이트 켜기
lcd.setCursor(0, 0); // 커서 위치 설정
lcd.print("Hello, World!"); // LCD에 출력
}
void loop() {
// 아무것도 하지 않음
}
LiquidCrystal_I2C 회로도
어때요 정말 심플해졌죠? sda scl 핀은보드에따라 핀을 꽂는 곳이 다르니 확인해보셔야 됩니다.
아두이노 UNO: A4 (SDA), A5 (SCL)
아두이노 Mega: 20 (SDA), 21 (SCL)
아두이노 Leonardo: 2 (SDA), 3 (SCL)
아두이노 Due: 20 (SDA), 21 (SCL)
모든 기기들이 정상적으로 작동하는지 확인하기위해선 우리는 확인을 합니다. 소리 촉감 시각적 이벤트등
이때 lcd는 아주 만족스러우면서 다양한 표현을 직접적으로 확인할 수 있는 훌륭한 모듈입니다.
LiquidCrystal_I2C 라이브러리 다운받기
아두이노 IDE를 엽니다.
"스케치" -> "라이브러리 포함하기" -> "라이브러리 관리"를 차례대로 클릭합니다.
검색 창에 "LiquidCrystal_I2C"를 입력하고 검색합니다.
LiquidCrystal_I2C 라이브러리가 검색되면 "설치" 버튼을 클릭합니다.
설치가 완료되면 "완료" 메시지가 표시됩니다.
'아두이노(arduino)' 카테고리의 다른 글
아두이노 수분센서 / 사용예제 / 회로도 및 코드 (0) | 2023.03.07 |
---|---|
아두이노 온습도 센서 종류 및 코드 / 설명 (0) | 2023.03.06 |
아두이노 기본 문법 if()문을 배워봅시다. (0) | 2023.02.23 |
아두이노 기본 문법 while()문을 배워봅시다. (0) | 2023.02.15 |
아두이노 기본 문법 for()문을 배워봅시다. led 밝기 조절해보기. (0) | 2023.02.08 |