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