Tel que ton programme est actuellement rédigé, lorsque tu actives l'une des sortie, tu restes bloqué dans la fonction pulseRelay() pendant 23s. Ce qui empêche de recevoir une quelconque commande de stop.
Pour pourvoir gérer plusieurs actions simultanément, il faut:
- bannir la fonction delay(), Et remplacer ceux-ci, comme le suggère john_lenfr, par une temporisation faite avec millis() (voir dans les exemples livrés avec l'IDE le programme blinkWithoutDelay)
- utiliser une machine à état pour chacune des sorties. Ces machines changeront d'état soit sur les commandes reçues par la télécommande soit sur l'expiration de temporisation
- le stop peut être causé soit par une autre touche de ta télécommande soit par le ré-appui sur la touche qui a lancée l'action. Dans un cas comme dans l'autre, il suffit d'associer le code de la touche à un nouveau changement d'état du système.
edit: il serait pertinent de reprendre ton premier message sur ce fil pour en changer le titre qui n'est pas très explicite au regard de ton attente. Cela attirerait peut être plus de réponses.