LCDに数値をリアルタイム表示する
CoddyのArduinoジャーニー「ディスプレイとセンサー」セクションの一部。レッスン 8/24。
lcd.print()は数値も出力でき、変数や計算結果もテキストと同じように使えます。
lcd.print(millis() / 1000); // ボードの起動からの経過秒数数値を最新の状態に保つには、loop()内で再度出力します。ただし、出力するたびにカーソルが進むため、2回目の出力は1回目の後ろに表示されます。つまり、0、次に00、そして000となります。出力する前にlcd.setCursor()でカーソルを戻すと、新しい数値が古い数値に上書きされます。
void loop() {
lcd.setCursor(0, 1);
lcd.print(millis() / 1000);
delay(200);
}短いdelay()を入れることで、1秒に1回しか変わらない数値のために、画面が1秒間に何千回も再描画されるのを防げます。
チャレンジ
簡単上の行には Seconds: と表示します。その下に、ボードが動作した秒数を表示します。
loop()内で、カーソルを下の行の先頭に移動しますmillis() / 1000を出力します- 200 ms 待ちます
Run を押してカウントを確認し、次に Check を押します。
自分で試してみよう
#include <LiquidCrystal.h>
// RS, E, D4, D5, D6, D7
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
lcd.print("Seconds:");
}
void loop() {
// ボードの起動から経過した秒数を下段に表示する
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ディスプレイとセンサーのすべてのレッスン
自分で練習してみよう: Arduinoプレイグラウンド