Hello,
Le projet avec lequel je remets les mains dans le code est un projet de veilleuse basse-tension pour chambre d'enfant à base de ruban à LED.
Le principe de fonctionnement est le suivant:
Après mise sous tension du montage, il est possible de déclencher l'allumage d'une veilleuse par tranche de 10 minutes suivant le nombre d'appui sur un bouton poussoir.
Les limitations sont les suivantes:
- Une fois le premier appui sur le bouton poussoir, les autres doivent se faire dans les 5 secondes pour être comptabiliser.
- le temps d'allumage maximum de la veilleuse est de 60 minutes, le nombre d'appuis est donc limité à 6.
- Il n'est pas possible de relancer un cycle de veilleuse sans faire un Power Off/On complet. Modification future: ajout d'un délais de garde avant réarmement.
Après quelques mises au point avec un Arduino Uno R3, le montage fonctionne de manière satisfaisante. Ne voulant pas intégrer un R3 dans la veilleuse pour des raisons de volume et de prix, je me suis tourné vers un AtTiny. Pour simplifier le soft, je suis passé à une programmation à base d'interruption pour déterminer si le bouton poussoir a été actionné.
De manière globale, le montage fonctionne parfaitement. Mais en réalisant quelques tests d'appuis "poussés", je me suis aperçu qu'il y a un cas pour lequel le comportement obtenu avec le Tiny n'est pas le même qu'avec le Uno R3 :
- lorsque l'on actionne le bouton poussoir pour la première fois par un appui long, le montage prend en compte 2 appuis au lieu de un. Et le temps d'allumage est donc de 20 minutes au lieu de 10. >:(
- En fait, c'est comme si l'appui long sur le bouton agissait comme 2 appuis courts, le premier déclenchant l'interruption, et une fois que celle-ci a terminé son traitement, re-belotte: re-interruption.
Pour information, le bouton poussoir est raccordé à un montage anti-rebond R/C de base (celui décrit dans la littérature Arduino).
J'ai déjà essayé, sans succès, de jongler avec les différents modes de déclenchement de l'interruption (front montant, descendant, changement d'état...), de diminuer la valeur d'anti-rebonds logiciel...
Le soft, commenté est en attachement. Alors, si vous avez des idées, je suis preneur.
Merci. Morgan
Mrx_Nightlight-01_ATtiny45.ino (4.13 KB)