사용자 정의 문자 그리기
Coddy Arduino 여정의 디스플레이와 센서 섹션에 포함된 레슨. 24개 중 10번째.
LCD의 각 문자는 5×8 점 격자입니다. 직접 최대 8개의 문자를 만들 수 있으며, 번호는 0부터 7까지입니다. 8개의 행으로 하나를 정의하세요. 각 행은 5비트 패턴이며, 1은 켜진 점을 뜻합니다:
byte heart[8] = {
0b00000,
0b01010,
0b11111,
0b11111,
0b01110,
0b00100,
0b00000,
0b00000
};lcd.createChar(0, heart)는 이를 문자 0으로 저장합니다. lcd.write(byte(0))는 커서가 있는 위치에 그 문자를 그립니다. print(0)은 대신 숫자 0을 그립니다.
주의할 점이 하나 있습니다. 문자를 저장할 때 라이브러리는 화면을 문자 메모리에 연결하고, 그 상태가 계속 유지됩니다. 이후에 출력하는 내용은 화면이 아니라 해당 메모리에 저장됩니다. 따라서 출력하기 전에 createChar()를 호출한 뒤 lcd.setCursor()(또는 lcd.clear())를 호출하세요.
lcd.createChar(0, heart);
lcd.setCursor(0, 0); // 화면으로 돌아가기
lcd.write(byte(0));챌린지
중급시작 코드에는 웃는 얼굴 디자인이 있습니다. 이걸로 인사해 보세요:
lcd.createChar()를 사용해 문자 0으로 저장합니다- 커서를 왼쪽 위로 이동합니다
Hi(공백 포함)를 출력한 다음 웃는 얼굴을 그립니다
실행을 누른 다음 확인을 누르세요.
직접 해보기
#include <LiquidCrystal.h>
// RS, E, D4, D5, D6, D7
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
byte smiley[8] = {
0b00000,
0b01010,
0b01010,
0b00000,
0b10001,
0b01110,
0b00000,
0b00000
};
void setup() {
lcd.begin(16, 2);
// 스마일리를 문자 0으로 저장한 다음 "Hi "와 스마일리를 출력합니다
}
void loop() {
}
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
디스플레이와 센서의 모든 레슨
직접 연습해 보세요: Arduino 플레이그라운드