Provoquer un Reset logiciel sur un UNO fonctionne si tu exécutes le code:
__asm__ __volatile__ ("jmp 0");
Donc on peut imaginer qu'une fonction contenant cette ligne de code soit appelée si une broche du uc passe à l'état haut et est câblée à cette fonction par un attachinterrupt(). Sauf qu'un Reset est généralement provoqué pour sortir d'un état de plantage du uc, et si tel est le cas, il est très probable que le code ne renverra pas vers la fonction sensée générer le Reset.
Donc si c'est pour sortir d'un état de plantage, il faut plutôt utiliser le watchdog.