반응형

【 아두이노 기초 】 #15 문자 LCD 제어 실습 II




 LCD 액정 디스플레이를 이용하여 문자를 출력 해보는 실습을 해보자.

앞 강좌에서는 16by2 LCD와 16by4 LCD를 사용하는 법에 대해 설명하였는데, 이번강좌에서는 사용자 정의 문자라고 할 수 있는 특수한 캐릭터(문자)를 직접 만들어 출력해보도록 하자 (앞 강좌 참조: http://rasino.tistory.com/128 )



▶ 실물 회로도면 :


※ 위 LCD는 I2C 통신 칩이나 기타 부가 장치가 없는 순수한 문자 LCD이다. 때문에 브레드 보드 접속을 위한 핀도 연결 되어 있지 않은 경우 아래와 같은 핀해더를 구해서 16핀만 남겨놓고 자른 다음 LCD 아래쪽에서 부터 연결하여 납땜을 하면 된다.

▶ 부대품 목록 : 아두이노 보드, 브레드 보드


▶ 부품 목록    : 16by2 또는 16by4 LCD , 핀헤더, 반고정 저항 (10KΩ) 


▶ 회로 도면   : 아래를 참조하여 정확하게 연결하도록 한다.



 LCD 핀부위를 확대한 이미지는 아래와 같다  (7,8,9,10 핀은 사용하지 않는다)


LCD와 아두이노 핀 연결 부위 상세 이미지



< LCD 핀 배열 >

16by4와 기본 핀 배열은 같다.




▶ 실습 절차  : 
 (하드웨어)

 (프로그램설치)

 폰트를 이용하지 않고 직접 문자를 만들어 출력하기 위해서는 배열값을 일일이 만들어 주어야 하기 때문에 아래와 같은 프로그램을 이용하면 쉽게 만들어 사용하기 편리하며 코드 값 복사하기에도 간편하다.


 - 5 x 8 캐릭터 디자이너 프로그램 다운로드 (☜ 클릭):



 다운로드 받은 프로그램을 실행시키면 아래와 같은 화면이 뜰 것이다.



그러면 아래 설명을 참고하여 다양한 형태의 캐릭터를 만들어 볼 수 있다.





▶ 프로그램 (코드& 설명) : 

5x8 LCD Display Character Designer툴을 이용한 캐릭터출력

#include <LiquidCrystal.h>  

LiquidCrystal lcd(2,3,4,5,6,7);

byte SpecialChar0[8]={        //Custom Character #0

 B00100,

 B00100,

 B01110,

 B10101,

 B00100,

 B00100,

 B01010,

 B10001   };

// … 배열 1[8] ~  6[8] 까지 생략

byte SpecialChar7[8]= {        //Custom Character #7

 B00100,

 B10101,

 B01110,

 B00100,

 B00100,

 B00100,

 B11011,

 B00000   };  

 lcd.begin(CC,RR);

// CC 는 행(columns), RR는열 (rows) }


void setup(){

lcd.createChar(0, SpecialChar0);

lcd.createChar(1, SpecialChar1);

lcd.createChar(2, SpecialChar2);

lcd.createChar(3, SpecialChar3);

lcd.createChar(4, SpecialChar4);

lcd.createChar(5, SpecialChar5);

lcd.createChar(6, SpecialChar6);

lcd.createChar(7, SpecialChar7);

}

void loop() {

  lcd.setCursor(0,2);

  lcd.print  ("I'm Sung-sik KIM”);

  lcd.setCursor(0, 0);                     

 for(int i=0; i<16; i++)   {

   lcd.setCursor(1, 1);                   // 해당 행과 열로 커서 이동  

   lcd.write(i);                             // 상태 바 업데이트

   // 또는 이렇게 사용 lcd.write(byte(0));   … (byte(1));

  delay(300);                             // 0.3초간 지연 

  }   

}


※ 위 코드에서 만약 16by4 LCD(4줄 LCD)를 사용 한다면 lcd.begin(16,4)로 LCD 셋업 코드를 바꾸면 된다.  LCD 셀의 배열 위치값은 아래 이미지를 참조하라.




▶ 실행 영상 : 




위 캐릭터를 아래 영상처럼 애니메이션 효과로 처리한 영상이다.






▶ 아두이노 코드 다운로드 : 


LCD16by2_sign2.ino

LCD16by2_sign3.ino








반응형