ディスプレイで数を数える
CoddyのArduinoジャーニー「ディスプレイとセンサー」セクションの一部。レッスン 3/24。
showDigit()を使うと、1桁の数字を表示するには関数を1回呼び出します。forループを使えば、順番にすべての数値を渡して呼び出せます。
for (int n = 0; n <= 9; n++) {
showDigit(n);
delay(500);
}条件によって最後の数値が決まります。n <= 9は9を含めて実行され、n < 9では8で停止します。
ループをloop()の中に置くと、カウントが終わったときにloop()が再び実行され、カウントは0からやり直されます。
チャレンジ
簡単showDigit()の準備ができました。ディスプレイに数字を表示しましょう:
- 0、1、2と順に9まで表示する
- 各数字を500 ms間表示する
- 9の後は、再び0から始める
Runを押して数字が表示されるのを確認し、次にCheckを押してください。
自分で試してみよう
const int segmentPins[7] = {2, 3, 4, 5, 6, 7, 8}; // a, b, c, d, e, f, g
// 各数字に1つのパターンを割り当て、右から読む。最後のビットがセグメント a。
// gfedcba
const byte digits[10] = {
0b0111111, // 0
0b0000110, // 1
0b1011011, // 2
0b1001111, // 3
0b1100110, // 4
0b1101101, // 5
0b1111101, // 6
0b0000111, // 7
0b1111111, // 8
0b1101111 // 9
};
void showDigit(int n) {
for (int i = 0; i < 7; i++) {
if (bitRead(digits[n], i) == 1) {
digitalWrite(segmentPins[i], LOW); // 点灯
} else {
digitalWrite(segmentPins[i], HIGH); // 消灯
}
}
}
void setup() {
for (int i = 0; i < 7; i++) {
pinMode(segmentPins[i], OUTPUT);
}
}
void loop() {
// 0 から 9 まで、それぞれ0.5秒ずつ表示する
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ディスプレイとセンサーのすべてのレッスン
自分で練習してみよう: Arduinoプレイグラウンド