millis

リファレンス

説明

プログラムが書き込まれ、実行されてからの経過時間(ミリ秒)を返す関数です

注意すべき点

返り値は unsigned long 型です

int に値を代入することも可能ですが、 unsigned longintlong と比べて保持可能なデータ量が大きいので、 長い時間を計測する場合などにエラーを引き起こす原因となることがあります

サンプルコード

unsigned long time = millis();

// delayを使わないクロック
unsigned long start_ms;

// クロックを開始する関数
void clock_start() {
    digitalWrite(5, HIGH);
    start_ms = millis();
}

// 定期実行してクロックを停止させる関数
void clock_check(unsigned long duration) {
    if(millis() - start_ms >= duration) {
        digitalWrite(5, LOW);
    }
}