아두이노 lcd 특수문자 - adu-ino lcd teugsumunja

안녕하세요~ Smart Hong입니다!

지난시간에 LCD에도 좌표에 대해 포스팅을 했어요.

오늘의 포스팅 주제는 글자(특수기호) 만들기에요.

기본적으로 저희가 주로 사용하는 헤더파일

LiquidCrystal_I2C.h 헤더파일영문 및 몇가지 특수문자만을 포함하고 있어요.

따라서 한글이나 기타 글자들은 출력하지 않는데요.

이번 포스팅에는 글자를 만들어 볼거에요!

우선 제 블로그에서 가장 많이 사용되었던 온습도센서인데요.

온도를 표현 할 때 사용하는를 표현 해 볼거에요!

LCD 한 칸당 아래의 그림과 같이 5*8의 셀들이 있어요.

아두이노 lcd 특수문자 - adu-ino lcd teugsumunja

이 셀들을 하나하나 컨트롤 해서 동작시킬거에요!

아두이노 lcd 특수문자 - adu-ino lcd teugsumunja

위의 그림과 같이 온도의 기호를 표현해 줄게요! C는 알파벳이니까 그냥 쓰면됩니다!

#include<LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd (0x27, 16, 2); byte o[8] = { B01000, B10100, B01000, B00000, B00000, B00000, B00000, B00000 }; void setup() { lcd.init(); lcd.backlight(); lcd.createChar(0,o); } void loop() { lcd.setCursor(0,0); lcd.print("30"); lcd.write(o); lcd.print("C"); }

대역 변수로 o으로 만들어 줄건데요. 배열을 사용합니다.

배열의 B는 Binary 이진수 를 뜻합니다.

01000

10100

01000

00000

00000

00000

00000

00000

이렇게 하면 위의 그림과 같은 모양과 동일하죠? 앞의 B는 다시 말하지만 2진수를 뜻합니다.

문자를 만들었으면 lcd창에서 이 문자를 사용하기 위해 setup 함수에서 creatChar를 사용해서 정의 해줍니다.

lcd 출력은 lcd.print가 아닌lcd.write로 해줍니다!

한번 확인 해 볼까요??

아두이노 lcd 특수문자 - adu-ino lcd teugsumunja

30 옆에 알맞게 기호가 생겼죠??

특수 문자나 라이브러리에서 지원하지 않아 직접 모양을 만드시고 싶으면 위와 같은 방법으로 만드시면 됩니다!

이것으로 LCD의 활용에 대한 포스팅을 마무리 하려고 하는데요.

도움이 되셨나요??

도움이 되셨으면 이웃 추가 부탁드립니다!

감사합니다~