Probleme commutateur

Bonjour à la communauté

J'essaye de fabriquer un "poulomatique", ouverture et fermeture de porte en fonction de la luminosité (juste à but instructif, pour apprendre). J'ai donc un moteur DC qui enroule/déroule une ficelle et des commutateurs pour détecter la fin de course de la porte ouverte ou fermée. J'ai paramétré une interruption en mode rising (detection du port de l'état bas à haut). Quand la porte est ouverte ou fermée, elle maintenant l'interrupteur en mode fermé (elle envoie donc 5v sur le port qui gère l'interruption). Des que la porte commence sa course, elle change l'état du commutateur (qui passe donc de fermé à ouvert, la résistance de pulldown 'tire' le port vers la masse) et cela semble déclencher l'interruption rising ?!? alors que le port passe de haut à bas. Il doit y avoir un pic de tension qui se produit et qui trompe l'interrupt? dois je rajouter une diode quelque part?

Il s'agit probablement d'un rebond. Gérer le rebond peut se faire avec un simple condensateur en parallèle sur le contact.

Bien sûr la résistance peut être une pullup interne. Augmenter la valeur du condensateur en fonction de la qualité du contact.

Merci pour la réponse ultra rapide!

regarde le bout du schéma concerné en pièce jointe, en jaune le parcours qui me pose problème.

moi je suis en pulldown, ça changerait quelque chose si je passais en pullup et résistor interne? j’utilise un arduino nano.

le rebond est lié à la qualité du commutateur? j’avoue c’est un commut à pas cher de chez amazon
et quelle valeur pour le condensateur?

Merci!

Capture.PNG

en fait, j'ai bricolé un truc, peux tu me dire si c'est fiable?

j'ai simplement mis un delay(1000) juste apres le debut de déroulement ou enroulement, comme ça je "zap" le rebond. La course de fermeture et ouverture de porte est toujours plus long qu'une seconde donc ça me parait pas mal comme solution?

ma maquette fonctionne avec cette astuce mais.... fonctionnera t elle sur le long terme?!?

Bien sûr on peut résoudre logiciellement. Il n'y a pas de raison que cela ne marche pas sur le long terme.