Study/Arduino

한글 LCD XLINK1602 아두이노에서 사용하기

Answer Choi 2018. 7. 26. 16:23
반응형

Xlink1602 아두이노용 코드



아두이노 라이브러리에서는 CLCD 한글을 공식적으로 지원을 하지는 않습니다.


그리고 CLCD가 5X8이다 보니 한글을 만들기도 힘들구요.


CLCD 글자 만들기


위 링크는 이전에 포스팅한 블로그입니다.


그래서 한글이 지원되는 LCD를 찾았는데 가격은 조금 비쌉니다.



크기는 LC1622과 크기가 같습니다.



dot는 글자당 11X12입니다. 


충분히 한글을 표시할 수 있습니다^^


다만 문제가 드라이버가 직접개발한 XD 1602AD라고 합니다. 


예제를 제공합니다만 Arduino용 라이브러리는 없어서


Arduino에서 사용가능하도록 코드를 손봐야 합니다.


xlink sample code


위 링크는 업체에서 제공하는 샘플코드인데 


iar, winavr, codevision용으로 제공합니다.


그래서 Arduino로 코드를 옮기기 시작했습니다.


1
2
3
4
5
6
7
8
9
10
11
#define CLCD_RS 13 // CLCD RS 제어 신호
#define CLCD_RW 12 // CLCD EN 제어 신호
#define CLCD_EN 11 // CLCD RS 제어 신호
#define CLCD_DB0 10
#define CLCD_DB1 9
#define CLCD_DB2 8
#define CLCD_DB3 7
#define CLCD_DB4 6
#define CLCD_DB5 5
#define CLCD_DB6 4
#define CLCD_DB7 3
cs


핀설정은 위와 같이 하였습니다.


필요없는 코드는 제거하고, 실행했는데 한글이 나오지 않네요 ㅠ


계속된 디버깅을 하면서 알아본 결과...


Arduino는 한글을 UTF-8로 인코딩하는데,


XLink1602는 ksc5601로 인식해서 Display 합니다.;;


그리하여 성신여대 심광섭교수님 홈페이지에서 KSC코드를 이용하였습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
void ex1(){
    print_x_y_ksc(10,0,0xbec8);//안
    print_ksc(0xb3e7);//녕
    print_x_y_ksc(16,0,0xc7cf);// 하
    print_ksc(0xbcbc); // 세
    print_ksc(0xbfe4);// 요
 
    print_x_y_ksc(10,1,0xbed8); // 앤
    print_ksc(0xbde1); // 써
    print_x_y_ksc(16,1,0xc0d4); // 입
    print_ksc(0xb4cf);// 니
    print_ksc(0xb4d9); // 다
}
cs


위 코드의 0xXXXX이 ksc 한글코드이고 뒤의 주석이 해당되는 한글입니다.


print_x_y_ksc는 기존 lcd_printxy_str을 수정한 것입니다.



띄워보니 잘 나옵니다.


숫자도 따로 함수를 만들어서 띄워 보았습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void ex2(){
    print_x_y_ksc(14,0,0xbfc0); // 오
    print_ksc(0xb4c3); // 늘    
    print_ksc(0xc0ba);// 은
 
    lcd_xy(4,1);
    print_numbers(2018); 
    print_ksc(0xb3e2); // 년
    print_numbers(7); 
    print_ksc(0xbff9);// 월
    print_numbers(26); 
    print_ksc(0xc0cf); // 일
    print_ksc(0xc0d4); // 입
    print_ksc(0xb4cf);// 니
    print_ksc(0xb4d9); // 다
}
cs


수정한 예제코드는 제일 위에 링크되어 있습니다.


ex1이나 ex2가 loop로 나오게 되어있습니다.


수정해서 사용하시면 됩니다.

반응형