Prog eventielle avec millis

Dans la première solution n'oubliez pas qu'il faut mettre à jour l'état du bouton bien sûr

Dans la seconde solution un break serait utile sans doute après le STOP sinon le moteur redémarrera immédiatement en remontant au début du while.

Dans les deux cas, votre programme ne peut rien faire d'autre. Si vous avez envie ensuite de gérer un double click sur le bouton, de rajouter d'autres boutons (histoire de faire monter plusieurs volets en même temps), ou d'écouter des commandes sur le port série, de mettre une interface web de gestion de vos volets, ou quoi que ce soit d'autre ce type d'approche ne fonctionnera pas - et votre code deviendra vite très "spaghetti" --> c'est dans ce cas qu'une approche par machine à état, même si un peu plus lourde en code en premier abord, vous apportera une souplesse très appréciable (cf mon tuto programmation par machine à états éventuellement si vous voulez découvrir cette technique)