По сути это перевод точки выполнения программы в самое начало.
Добавляем в свой скетч строку
void(* resetMCU) (void) = 0;
Эта строка должна находиться до функции void setup().
Далее в теле скетча гду вам необходимо выболнить перезапуск вызываетет эту функцию, просто пишите resetMCU();
Ниже пример скетча, который перезапускает Ардруинку спустя 5 секунд после включения.
void(* resetMCU) (void) = 0; //объявляем функцию reset с адресом 0 void setup() { } void loop() { delay(5000); //пауза 5 сек resetMCU(); }