カスタム文字を描画する
CoddyのArduinoジャーニー「ディスプレイとセンサー」セクションの一部。レッスン 10/24。
LCD の各文字は、5×8 個のドットのグリッドです。自分で最大 8 個の文字を設計でき、番号は 0 から 7 です。8 行で 1 つの文字を定義します。各行は 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 を描画します。
注意点が 1 つあります。文字を保存するとき、ライブラリは画面の参照先を文字メモリに切り替え、そのままの状態になります。その後に出力するものは画面ではなく、そのメモリに書き込まれます。そのため、出力する前に createChar() の後で lcd.setCursor()(または lcd.clear())を呼び出してください。
lcd.createChar(0, heart);
lcd.setCursor(0, 0); // 画面に戻る
lcd.write(byte(0));チャレンジ
中級スターターには笑顔のデザインが用意されています。それを使ってあいさつしましょう:
lcd.createChar()で文字0として保存します- カーソルを左上に移動します
Hi(スペース付き)を表示してから、笑顔を描画します
Runを押してから、Checkを押します。
自分で試してみよう
#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プレイグラウンド