본문 바로가기
2022-2/마이크로프로세서

3. LCD Display

by 철없는민물장어 2022. 9. 28.
728x90
반응형

우리가 어떻게 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());
            }
       }
       
}

 

 

728x90
반응형

'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

댓글