Arduino でループを停止する
-
Sleep_n0m1
ライブラリを使用してvoid loop()
を停止する -
exit(0)
を使用してvoid loop()
を停止する -
無限ループを使用して
void loop()
を停止する
このチュートリアルでは、Arduino でループを停止する方法について説明します。Arduino には 2 種類のループがあります。1つはデフォルトで提供される void loop()
で、もう 1つはユーザーが独自に作成するものです。ユーザーが作成したループは、break
メソッドを使用して簡単に終了できます。Arduino の void loop()
を終了するには、次のメソッドを使用できます。
Sleep_n0m1
ライブラリを使用して void loop()
を停止する
上記の方法はすべての Arduino ボードで機能する可能性がありますが、Arduino は引き続き電力を使用します。Sleep_n0m1
ライブラリを使用すると、手動またはタイマーを使用してリセットするまで、Arduino CPU を永続的にスリープ状態にすることができます。これはすべての Arduino ボードで機能するとは限らないことに注意してください。
#include <Sleep_n0m1.h>
Sleep sleep;
unsigned long sleepTime; // how long you want the Arduino to sleep
void setup() {
sleepTime = 50000; // set sleep time in ms, max sleep time is 49.7 days
}
void loop() {
// Your Code
sleep.pwrDownMode(); // set sleep mode
sleep.sleepDelay(sleepTime); // sleep for: sleepTime
}
コードを使い終わったら、必ず Sleep_n0m1
ライブラリを使用してください。この方法では、わずかな電力しか消費しません。詳細については、このリンクを使用してください。
exit(0)
を使用して void loop()
を停止する
Arduino の void loop()
は、コードの後にexit(0)
メソッドを使用して終了できますが、Arduino.cc
にはこのループを終了するメソッドがないため、このメソッドが機能しない可能性があることに注意してくださいすべての Arduino ボード用。
void loop() {
// All of your code here
// exit the loop
exit(0); // 0 is required to prevent error.
}
exit(0)
の後、手動でリセットするまで Arduino は動作を停止することに注意してください。したがって、コードがタスクを完了した後は、必ずこのメソッドを使用してください。
無限ループを使用して void loop()
を停止する
上記の方法はすべての Arduino ボードで機能するとは限らないため、別の方法を使用する必要があります。無限ループ方式はすべての Arduino ボードで機能しますが、Arduino は起動したままで、電力を消費し続けます。このメソッドでは、コードの後に無限ループを挿入できます。Arduino はコードを処理し、無限ループに入り、手動でリセットするまでそこにとどまります。
void loop() {
// All of your code
while (1) { // infinite loop
}
}
Arduino が無限ループに入った場合、リセットするまで戻らないので、コードを終了した後は必ず無限ループを使用してください。