흔히 사용하는 16X2 CLCD는 영어와 주로쓰이는 특수문자 정도만 표현이 됩니다.
1 2 3 4 | lcd.print("Welcome to "); lcd.setCursor(0,1); lcd.print("Answer's Blog"); lcd.display(); | cs |
위와 같이 코드를 작성했을때의 모습입니다.
한글을 억지로 작성한다고 한글이 나오지 않습니다.
1 2 3 4 | lcd.print("반갑습니다"); lcd.setCursor(0,1); lcd.print("앤써입니다"); lcd.display(); | cs |
이렇게 한글로 작성하였더라도
이렇게 깨져서 나옵니다.
한글에 대응되는 code가 저 이상한 문자들이기 때문이죠.
즉 한글에 대응되는 코드가 저장되어 있지 않습니다.
그래서 수동으로 만들어 줘야 합니다.
LCD Custom Character Generator
위 링크를 누르시면 LCD 문자를 쉽게 만들 수 있는 웹페이지에 방문할 수 있습니다.
위 링크로 들어가면 위와 같은 화면이 나오는데
왼쪽이 CLCD의 DOT를 나타낸 것이고, 오른쪽은 그에 대응되는 코드입니다.
실제로 CLCD를 자세히 보시면 한 글자당 8X5의 DOT로 구성되어 있습니다.
마우스로 글자를 만드시면 오른쪽에 코드가 자동으로 만들어 집니다.
마우스로 클릭하면 글자가 만들어지는데,
'앤' 이라는 글자를 만들어 봤는데 좀 허접합니다.
가로의 DOT가 5칸밖에 되지 않습니다. ㅠ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | byte customChar[] = { B00101, B11101, B11111, B11101, B00101, B00000, B10000, B11111 }; void setup() { Serial.begin(115200); lcd.begin(16,2); lcd.createChar(0, customChar); lcd.home(); lcd.write((byte)0); } | cs |
위에서 만들어준 코드를 그대로 넣어봤습니다.
Line 17에서 write안에 (byte)를 해주셔야 오류가 안생깁니다.
수동으로 만든 글자가 그대로 출력이 되었습니다.
이번에는 '앤써입니다.'를 해보려고 하는데 '써'는 도저히 안되 '서'로 해봤습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | byte customChar[] = { B00101, B11101, B11111, B11101, B00101, B00000, B10000, B11111 }; byte customChar2[] = { B01001, B01011, B10101, B10101, B10101, B10101, B00000, B00000 }; byte customChar3[] = { B01001, B10101, B01001, B00000, B10001, B11111, B10001, B11111 }; byte customChar4[] = { B00001, B10001, B10001, B10001, B10001, B11101, B00001, B00000 }; byte customChar5[] = { B00010, B11010, B10010, B10011, B10010, B11010, B00010, B00000 }; void setup() { Serial.begin(115200); lcd.begin(16,2); lcd.createChar(0, customChar); lcd.createChar(1, customChar2); lcd.createChar(2, customChar3); lcd.createChar(3, customChar4); lcd.createChar(4, customChar5); lcd.setCursor(0,0); lcd.write((byte)0); lcd.write((byte)1); lcd.write((byte)2); lcd.write((byte)3); lcd.write((byte)4); } | cs |
먼저 글자를 만들어 코드를 작성합니다.
출력되었습니다.
역시 DOT가 부족하다보니 이쁘게는 안됩니다.
좀더 디테일하게 하려면 2자로 한글 1자를 만들던지 해야할 것 같네요^^
한글 외에도 다양하게 사용할 수 있으니 이용해 보시기 바랍니다.
'Study > Arduino' 카테고리의 다른 글
Arduino bootloader 올리기 (20) | 2018.07.20 |
---|---|
SD card와 Level shifter (0) | 2018.07.17 |
SD카드 사용하기 (0) | 2018.07.05 |
ADS1115 16BIT ADC MODULE - Non library (0) | 2018.06.11 |
ADS1115 16bit ADC Module (2) | 2018.06.08 |