Différences entre les versions de « Filtre anti-rebond pour boutons poussoirs »

De MediaWiki UOF
Aller à la navigation Aller à la recherche
Ligne 6 : Ligne 6 :
[[Fichier:Bouton poussoir pull down.png]]
[[Fichier:Bouton poussoir pull down.png]]


LA courbe théorique attendue est la suivante : la tension, initialiement à 0 monte soudainement à +V.


[[Fichier:Filtre anti rebond pas de filtre.png]]
[[Fichier:Filtre anti rebond pas de filtre.png]]
La réalité est tout autre :
[[Fichier:Filtre anti rebond pas de filtre.png]]
LA tension ne s'établit pas soudainement mais par a-coups. Ces a-coups sont dus au rebond des lames composant le contacteur les unes sur les autres. Ainsi la tension à l'entrée du processeur va passer par des successions de 1 et de 0 de différentes durées puis par des tensions transitoires que le processeur n'arrivera pas à associer à des niveaux logiques. Evidemment, ces transitoirs ne seront pas du gout du processeur qui n'arrivera pas à traiter ces informations de manière cohérente.
== Anti rebond logiciel ==
Dans un programme qui scrute l'état d'un bouton (qui "regarde" périodiquement si le bouton est enfoncé ou non) l'état de l'entrée n'est analysée qu'une seule fois, à chaque scrutation. En insérant une temporisation dans le programme on laisse passer les transitoirs sans les lire etdonc ils ne sont pas gênants.
== Impossibilité d'utiliser l'anti rebond logiciel ==
Cependant, dans certaines circonstances, il n'est pas possible de faire appel à ce type de filtre. Par exemple lors du réveil de l'ESP32 par un des ports RTC. Dans ce dernier cas, le processeur se réveille, le programme démarre et va scruter les ports d'entrée  savoir quel port à déclenché le réveil du processeur. Dans certains cas, l'analyse des ports peut se produire au moment où la tension est retombée à 0 et donc conduire à une mauvaise interprétation de la cause du réveil.

Version du 29 avril 2022 à 14:57

Introduction

Un bouton poussoir permet de fermer (ou ouvrir) momentanément un circuit électrique. Lors de la fermeture, des lamelles métalliques viennent en contact l'une de l'autre. A cette occasion, il est fort possible que des "rebonds" apparaissent. C'est à dire que la fermeture du circuit ne soit pas franche mais soumise à des on / off très rapides. Dans le circuit suivant, un bouton poussoir permet de mettre l'entrée d'un processeur à +V tandis qu'elle est maintenue en permanence à 0V par une résistance de 10 ko.

Bouton poussoir pull down.png

LA courbe théorique attendue est la suivante : la tension, initialiement à 0 monte soudainement à +V.

Filtre anti rebond pas de filtre.png

La réalité est tout autre :

Filtre anti rebond pas de filtre.png

LA tension ne s'établit pas soudainement mais par a-coups. Ces a-coups sont dus au rebond des lames composant le contacteur les unes sur les autres. Ainsi la tension à l'entrée du processeur va passer par des successions de 1 et de 0 de différentes durées puis par des tensions transitoires que le processeur n'arrivera pas à associer à des niveaux logiques. Evidemment, ces transitoirs ne seront pas du gout du processeur qui n'arrivera pas à traiter ces informations de manière cohérente.

Anti rebond logiciel

Dans un programme qui scrute l'état d'un bouton (qui "regarde" périodiquement si le bouton est enfoncé ou non) l'état de l'entrée n'est analysée qu'une seule fois, à chaque scrutation. En insérant une temporisation dans le programme on laisse passer les transitoirs sans les lire etdonc ils ne sont pas gênants.

Impossibilité d'utiliser l'anti rebond logiciel

Cependant, dans certaines circonstances, il n'est pas possible de faire appel à ce type de filtre. Par exemple lors du réveil de l'ESP32 par un des ports RTC. Dans ce dernier cas, le processeur se réveille, le programme démarre et va scruter les ports d'entrée savoir quel port à déclenché le réveil du processeur. Dans certains cas, l'analyse des ports peut se produire au moment où la tension est retombée à 0 et donc conduire à une mauvaise interprétation de la cause du réveil.