Menu
CoddyTech

ディスプレイで数を数える

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からやり直されます。

challenge icon

チャレンジ

簡単

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秒ずつ表示する
}
quiz icon腕試し

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

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

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