본문 바로가기

Arduino/[2] Arduino Module

[Arduino Module] #8. LCD 디스플레이

728x90
반응형

LCD 디스플레이

LCD는 Liquid Crystal Display의 약자로 액정 표시장치를 말한다.

 

여기에서 액정 (Liquid Crystal)이란 액체처럼 유체의 성질을 가지면서 고체처럼 광학적 성질을 가지는 물질이며 액정은 고체 표면에 액정이 특정 방향으로 정렬할 수도 있어, 전기적 신호를 가해 원하는 방향으로 배열하여 빛을 투과시키거나 차단시킬 수 있다는 특징을 가진다.

 

LCD는 이러한 액정의 성질을 이용한다. 빛을 내는 백라이트, 백라이트에서 나온 빛을 한 방향으로  투과시키기 위한 편광판, 각 픽셀에 대한 액정 배열을 조절하여 투과하는 빛의 양을 제어하는 TFT, 그다음으로 액정이 순서대로 위치하여 구성된다.

LCD 패널

I2C LCD

아두이노 프로젝트 제작에 있어 가장 보편적으로 사용되는 LCD는 16*2 Character LCD로서 1줄에 16개의 문자씩 총 2줄에 문자를 표기할 수 있는 LCD 이다.

출처: https://blog.daum.net/shksjy/24

 

위 그림과 같이 16*2 Character LCD를 사용하기 위해서는 총 12개의 배선이 필요하며, 문자의 선명도 제어를 위해 가변 저항을 추가적으로 연결해주어야 하기 때문에 사용하기 어렵다는 단점이 있다..

 

또한 아두이노와 연결하여 제어할 경우 총 6개의 digital Pin을 사용해야 하기 때문에 다양한 센서와 기타 부품을 사용할 경우에는 digital port 부족으로 사용에 한계가 있다..

 

이런 문제들을 개선한 모듈이 I2C LCD 모듈이다. 

I2C LCD 모듈

I2C LCD의 회로도

출처: http://bplab.kr/coding_FAQ/?q=YToyOntzOjEyOiJrZXl3b3JkX3R5cGUiO3M6MzoiYWxsIjtzOjQ6InBhZ2UiO2k6MTt9&bmode=view&idx=5342668&t=board

#include<SoftwareSerial.h>
#include <Wire.h>
#include<LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2);

void setup(){
  btS.begin(9600);
  lcd.init();
  lcd.backlight();
}
void loop(){
  if(Serial.available()){
    String str = Serial.readStringUntil('\n');
    str.trim();
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print(str); 
  }
}

LCD 디스플레이 사용

회로도

#include <LiquidCrystal.h>

LiquidCrystal LCD(4, 6, 10, 11, 12, 13);

void setup(){
  LCD.begin(16, 2); // 16x2사이즈의 LCD사용을 시작
  Serial.begin(9600);
}

void loop(){

  LCD.setCursor(0,0);         // lcd 0,0좌표에서부터
  LCD.print("your sentence:");

  if(Serial.available()){
    String str = Serial.readString();                                        
    str = str.substring(0, str.length()-1);

    Serial.print(str);


    LCD.setCursor(0,1);         // lcd 0,0좌표에서부터
    LCD.print(str); 

    return;
  }
}

LCD 메서드

#include <LiquidCrystal.h>
LiquidCrystal LCD(4, 6, 10, 11, 12, 13);
  • LCD 디스플레이 라이브러리를 추가한다.
  • LCD의 핀을 초기화한다. 이때 핀 번호는 다르게 해도 상관없다. LCD의 객체를 'LCD'로 선언한다.
LCD.begin(x,y) LCD의 사이즈를 (x,y)로 선언한다.
일반적으로 LCD.begin(16, 2)로 선언하며 16x2사이즈의 LCD사용을 선언한다.
LCD.clear() LCD의 해당 행의 출력을 지운다.
LCD.setCursor(x,y) LCD 커서의 위치를 (x,y)로 변경한다.
LCD.print(str) LCD의 인자로 받은 문자열을 출력한다.
LCD.backlight(); LCD의 백라이트를 킨다.

 

 

728x90
반응형
댓글