Après avoir traité le logiciel anti-rebond pendant un certain temps, je trouve que cela prend un énorme tribut sur le système, j'ai donc pensé à créer initialement un anti-rebond matériel avec un déclencheur Schmitt (74HC14), un condensateur, un bouton et une résistance comme indiqué ci-dessous de talkelectronics.com :
Mais j'ai lu que le déclencheur de Schmitt est à moitié aussi méchant qu'un onduleur ordinaire lors de la détermination du moment où sortir un niveau haut ou bas, car il change d'état à la marque 33% et 66% alors qu'un onduleur normal se rapprocherait de la marque 50% (mais avec la version HC c'est probablement plus à 55%).
Je me demandais, parce que le déclencheur Schmitt est six onduleurs dans un seul boîtier, le rebouncing s'améliorerait considérablement avec n'importe quel bouton de mon choix appliqué à la première entrée si je faisais six du circuit sur le côté droit avec les mêmes valeurs de composant et connecté tous d'entre eux en série? (Exemple: sortie du premier circuit à l'entrée du deuxième circuit où le condensateur et la résistance se rencontrent.)
Réponses:
L'utilisation de déclencheurs Schmitt en série ne réduirait pas davantage le rebond.
Considérez le filtre:
L'entrée est (U). La ligne rouge est un seuil de 50%, dont la sortie est considérée comme un signal (A). Il rebondit à chaque fois que l'entrée passe.
Les lignes vertes représentent environ 33% et 66%, comme vous l'avez dit. Mais la sortie (B) ne commute que lorsque l'entrée (U) passe d'un seuil vert à l'autre.
Plus important encore, la sortie est soit entièrement ÉLEVÉE, soit FAIBLE (numérique). Donc, si la sortie d'un déclencheur Schmitt était introduite dans l'entrée d'un autre, il n'y aurait essentiellement aucune différence.
Prenez la sortie filtrée d'en haut (B) et réfléchissez à la façon dont elle serait vue par un autre déclencheur Schmitt:
Encore une fois, la sortie du premier serait soit HAUTE soit BASSE. Ainsi, il franchirait les seuils en même temps, ce qui donnerait la même sortie que l'entrée. Il n'y a rien à rebondir! Si quoi que ce soit, je m'attendrais à ce qu'il crée plus de bruit, car vous introduisez plus de composants et donc plus de marge d'erreur.
Cela ressemble à ce que vous cherchez peut-être un déclencheur Schmitt avec des seuils réglables. Certains sont symétriques (par exemple: 33% et 66%, ou 10% et 90%). D'autres sont non symétriques (par exemple: 33% et 80%). Vous pouvez créer le vôtre à l'aide d'un ampli opérationnel.
Essayez de jouer avec cette simulation que j'ai mise en place il y a quelque temps: Simulation de déclenchement de Schmitt - non inverseur non symétrique
la source
Un seul déclencheur Schmitt avec un filtre analogique en face peut être utilisé pour le rebond. Cependant, après ce déclenchement de Schmitt, le signal est entièrement numérique. Tout déclencheur Schmitt supplémentaire ne changera rien à cela. Idéalement, ils conserveront le signal.
Sur un sujet distinct, le rebouncing dans le firmware ne devrait pas représenter une grande charge. La manière habituelle est d'échantillonner l'état du commutateur dans une interruption périodique que vous avez déjà de toute façon. Vous déclarez l'état anti-rebond la valeur actuelle du commutateur lorsque vous avez vu le commutateur dans cet état pour N échantillons consécutifs. J'ai généralement besoin que le commutateur soit dans le même état pendant 50 interruptions consécutives de 1 ms pour que le nouvel état soit considéré comme valide. Cela prend généralement une très petite fraction des cycles globaux du processeur.
la source