Arduinoのmillis()関数とは?使い方と注意点をわかりやすく解説

Arduinoを使ったプログラミングでよく登場するのが、millis()という関数です。初心者の方にとっては、「何をする関数なのか」「どのように使えばよいのか」が分かりにくいこともあるかもしれません。

この記事では、millis()関数の基本的な使い方や仕組み、実際の使用例、さらには注意点までをわかりやすく解説します。


目次

millis()関数とは?

millis()関数は、Arduinoプログラムが開始されてからの経過時間をミリ秒(1/1000秒)単位で返す関数です。戻り値の型はunsigned longで、0から始まり、プログラムの起動とともに時間が加算されていきます。

この関数はArduino特有のものであり、C++の標準関数ではありません。


millis()関数の特徴

  • ミリ秒単位の精度:1秒 = 1000ミリ秒として時間をカウント。
  • 非同期処理に最適delay()と異なり、処理を停止せずに時間の経過を確認できます。
  • オーバーフローする仕様:おおよそ49.7日(2^32ミリ秒)で数値が0に戻りますが、差分をとる形で使用すれば影響はありません。

基本的な使い方

unsigned long previousMillis = 0;
const long interval = 1000; // 1000ミリ秒(=1秒)

void setup() {
  Serial.begin(9600);
}

void loop() {
  unsigned long currentMillis = millis();

  if (currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis;
    Serial.println("1秒が経過しました");
  }
}

このように、現在時刻(currentMillis)と前回記録した時刻(previousMillis)の差分を使って、一定の間隔で処理を実行することができます。


millis()を使うメリット

1. delay()との違い

delay()関数はその時間中すべての処理を停止しますが、millis()を使えば、時間の計測中も他の処理を並行して実行することが可能です。

2. タイマーの代替として使える

例えば「3秒後にLEDを点灯させたい」といった制御が、簡単かつ柔軟に実装できます。


注意点:オーバーフローとその対処法

millis()の値は約49.7日で最大値に達し、**0に戻る(オーバーフロー)**という仕様があります。

しかし、次のように「差分」で時間を扱えば、オーバーフローしても問題なく動作します。

if ((millis() - previousMillis) >= interval) {
  // この方法ならオーバーフローにも強い
}

millis()関数が活躍する場面

  • 一定間隔でセンサーデータを読み取る
  • LEDの点滅やモーター制御
  • ポンプやアラームの時間管理
  • タイマーやストップウォッチの実装

まとめ

Arduinoで時間を扱う上で、millis()関数は非常に重要な役割を果たします。特に非同期処理タイマー制御を実装する際には欠かせない存在です。

オーバーフローの扱い方さえ理解しておけば、安定したタイミング制御が実現できます。delay()よりも高度な時間制御が可能になるので、Arduino初心者の方もぜひ積極的に使ってみてください。

副業から独立まで「稼げる」Webスキルを習得する(PR)

ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。

「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。

このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。

講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。

副業に特化した強み

  • 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
  • AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
  • 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。

受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。

受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。

ブログで稼ぎたいなら「メイカラ」

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次