Menu
CoddyTech

カスタム文字を描画する

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));
challenge icon

チャレンジ

中級

スターターには笑顔のデザインが用意されています。それを使ってあいさつしましょう:

  • 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() {
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ディスプレイとセンサーのすべてのレッスン

自分で練習してみよう: Arduinoプレイグラウンド