第1回 解答例

温度が30度以上ならLEDを点灯する

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

解答

const int LED_PIN = LED_BUILTIN;
const float THRESHOLD = 30.0f;

void setup() {
    pinMode(LED_PIN, OUTPUT);
    Serial.begin(115200);
}

void loop() {
    float temperature = 32.0f;   // 実機ではセンサから読む

    Serial.print("temperature = ");
    Serial.println(temperature);

    if (temperature >= THRESHOLD) {
        digitalWrite(LED_PIN, HIGH);
    } else {
        digitalWrite(LED_PIN, LOW);
    }

    delay(1000);
}

ポイント

  • しきい値はconstで名前を付ける。30.0が何の数字か後から分かる
  • 小数の比較なので型はfloat。intにすると29.9が29になってしまう
  • elseでLEDを消すのを忘れない。消さないと一度点いたままになる

→ 第1回の本文に戻る