第0回 解答例

LEDを点滅させる

演習の解答例。まず自分で書いてから読むこと。

基本:500ms周期で点滅

void setup() {
    pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
    digitalWrite(LED_BUILTIN, HIGH);
    delay(500);

    digitalWrite(LED_BUILTIN, LOW);
    delay(500);
}

発展1:点滅速度を変える

delay()の数値を直接書き換えるのではなく、名前を付けておくと変更箇所が1か所で済む。

const int BLINK_MS = 100;   // ここだけ変えれば速度が変わる

void loop() {
    digitalWrite(LED_BUILTIN, HIGH);
    delay(BLINK_MS);

    digitalWrite(LED_BUILTIN, LOW);
    delay(BLINK_MS);
}

発展2:ボタンでLEDのON/OFFを切り替える

const int LED_PIN = LED_BUILTIN;
const int BUTTON_PIN = 9;

void setup() {
    pinMode(LED_PIN, OUTPUT);
    pinMode(BUTTON_PIN, INPUT_PULLUP);
}

void loop() {
    // INPUT_PULLUP では、押したときに LOW になる
    if (digitalRead(BUTTON_PIN) == LOW) {
        digitalWrite(LED_PIN, HIGH);
    } else {
        digitalWrite(LED_PIN, LOW);
    }
}

ポイント

  • setup()は1回、loop()は繰り返し呼ばれる
  • 数値に名前を付けると、何を表す値かがコードから読み取れる
  • INPUT_PULLUPを使うと外付け抵抗なしでボタンを読める(押すとLOW)

→ 第0回の本文に戻る