概要
Arduinoでは、リセットボタンを押すと初期化がされ、setup()の関数がコールされますが、リセットボタンを押さずにコード上だけでリセットをさせたいときは、アドレス0を指定して実行をする方法があります。
参考: https://www.instructables.com/two-ways-to-reset-arduino-in-software/
コード例
void setup() {
Serial.begin(9600); Serial.println("started"); } void(* resetFunc) (void) = 0; //declare reset function @ address 0 void loop() { delay(1000); resetFunc(); //call reset Serial.println("never happens"); }
resetFunc()を呼ぶと、Arduinoがリセットされ、setupから実行されます。