우리가 어떻게 LCD를 컨트롤 할것인가?
8bit = 1Byte
글자 한 개를 표현하는 데 8비트가 필요하다.
(글자-비트 표를 보고 어떤 글자가 이진수로 어떻게 표현되는지 알 수 있음)
3.1) LCD module using input/output pins
5V,GND핀을 각각 Vcc, G핀에 연결한다
RS,E,D4,D5,D7 핀을 아두이노 2,3,4,5,11,12핀에 연결한다
LCD 라이브러리 제공 함수
LiquidCrytral lcd(rs,enable,d4,d5,d6,d7) : LiquidCrytral형 객체를 생성함
lcd.begin(column,row): LCD 크기를 지정함
lcd.clear() : 커서를 맨 위 왼쪽으로 옮기고 내용 삭제
lcd.home() : 커서를 맨 위 왼쪽으로 옮김
lcd.setCursor(column,row): 커서를 지정위치에 이동시킴
lcd.print(data): LCD에 data를 print함
LCD에 초단위로 출력하는 프로그램
#include <LiquidCrystal.h>
unsigned int time;
LiquidCrytral lcd(12,11,5,4,3,2);
void setup(){
lcd.begin(16,2); //16*2LCD 설정
lcd.print("Arduino"); //첫째 줄에 Arduino표시
}
void loop(){
lcd.setCursor(0,1); //커서를 두번째 줄 첫번째 칸으로 이동
lcd.print(time);
++time;
delay(100);
}
LCD를 I2C 통신방법으로도 컨트롤 할 수 있다.
이 방법은 기존 방식보다 핀 사용을 줄였다는 장점이 있다
I2C방식에는 2가지 bus가 있는데
첫번째는 SDA이고 Data를 전달한다
두번째는 SCL이고 data를 전달할 목적지 주소를 보낸다
I2C방식은 라이브러리 매니저에서 라이브러리를 설치해야한다.
라이브러리 함수
LiquidCrytral_I2C(12C addr, numOfHorizontal,verticalCharacters)
lcd.init();
lcd.noBacklight();
lcd.backlight();
LCD화면을 깜빡거리는 예제3.2
(라이브러리 설치해라)
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
//address설정 PCF8574: 0x27 / PCF8574A: 0x3F
LiquidCrystal_I2C(0x3f,16,2); //16x2 LCD임
void setup(){
Serial.begin(9600);
lcd.init(); //LCD설정
lcd.clear();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Arduino LCD");
delay(1000);
lcd.setCursor(0,1);
lcd.print("Welcome");
delay(250);
lcd.noBacklight();
delay(250);
lcd.backlight();
delay(250);
lcd.noBacklight();
delay(250);
lcd.backlight();
delay(250);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Open Serial Mntr");
lcd.setCursor(0,1);
lcd.print("Type to display");
}
void loop(){
if (Serial.available()){//시리얼 통신 수신 값이 있을 때
delay(100);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Message from PC");
lcd.setCursor(0,1);
while(Serial.available()>0){
lcd.write(Serial.read());
}
}
}
'2022-2 > 마이크로프로세서' 카테고리의 다른 글
6. Analog Input (1) | 2022.11.01 |
---|---|
5. Digital Signal Input (0) | 2022.10.23 |
아두이노와 기타등등 알아보기 (0) | 2022.10.14 |
4-2 LED (0) | 2022.10.10 |
4장 - LED (1) | 2022.10.06 |
댓글