メインコンテンツまでスキップ

Arduino で delay() を使わない

· 約1分
ひかり
Main bloger

Arduino で delay() を使うと、待機時間中に何もできない。 millis() を使用した 1 秒周期の LED 点滅するプログラムを作った。

  1. millis() で時間を取得し時間で割って、t に代入
  2. 前回の t と新たな t を比較して異なる場合に関数を実行

unsigned long t = 0, ot;

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

void loop() {
ot = t;
t = millis() / 500;
if(ot != t){
if(t % 2){
digitalWrite(LED_BUILTIN, LOW);
}else{
digitalWrite(LED_BUILTIN, HIGH);
}
}
}