Trigger de Schmitt ou comparateur à hysteresis ou comparateur à double seuil pour Arduino (ex:bouton)

Leov66
dim, 12/13/2020 - 20:23
Bonjour,
Je vais vous exposer tout le fil de ma pensée, si vous voulez la passer, vous pouvez directement aller à la fin, à la question.
Je me demandais comment éviter les rebonds d'un bouton poussoir.
J’utilise la résistance de tirage de l’Arduino avec la fonction <pinMode(p_but,INPUT_PULLUP)>.
Pour ça j'ai vu 3 solutions, je les liste de la plus simple à la plus "compliquée" :
- utilisation de la fonction <delay(t_rebond)> avec t_rebond, un temps en milliseconde qui sera adapté au temps des rebonds du bouton
- utilisation d’un condensateur en parallèle, en choisissant un temps caractéristique d’à peu près 0,1 seconde
- utilisation d’un Trigger de Schmitt ou d’un comparateur à hystérésis ou comparateur à double seuil, et c’est la toutes mes questions !
J’ai vu qu’on pouvait créer un Trigger de Schmitt à partir d’un AOP (amplificateur opérationnel) avec une rétroaction sur la borne +.
Le schéma et les calculs associés en pièce jointe.
Mes recherches sur internet mon conduites à trouver :
- le 74HC14 : le problème avec celui-ci c'est son hystérésis (la différence entre les 2 seuils)
Un extrait de sa datasheet dans la pièce jointe.
- le TVL 3011 et TVL 3012 qui sont parfaits mais rares sur les sites comme Banggood ou Ebay ...
Ils ont aussi un autre nom, le SOT-23-6 comparator
Source : https://youtu.be/q_DJGL-ANIs
Comme je voulais choisir mes valeurs seuils, je me suis mis en tête de le faire moi même avec un amplificateur opérationnel.
Je cherche donc un amplificateur opérationnel peu onéreux, alimenté en 5V.
Mon idée est la suivante, pour faire le Vref je compte utiliser le 3,3V de l'Arduino et pour les résistances j'ai vu que R1=1000 ohms et R2=500 ohms sont de bonne valeurs (seuil haut à 4,43V et seuil bas à 1,1V).
(Je mets aussi une feuille de calcul Libre Calc pour appuyer mes calculs numériques)
Mes recherches internets m'ont permis de connaître quelques noms de composants :
- le UA741 mais celui-ci comme beaucoup d'autre ne satisfait pas mes contraintes
- le LM358 qui m'a l'air plutôt correct !
Voilà les questions :
Si vous répondez pouvez-vous aussi ajouter un lien vers Banggood ou Ebay ou Aliexpress pour se procurer le composant, si possible à faible coût.
- Est-ce que vous connaissez un composant faisant intervenir 2 seuils (principe du trigger de Schmitt) pour éviter les bruits d'un bouton pour Arduino ?
- Existe-t-il un amplificateur opérationnel "pour Arduino" c-à-d qui soit alimenté en 5V ?
Sources :
- site avec les différentes possibilités pour éviter les rebonds d’un bouton poussoir : https://arduino103.blogspot.com/2011/12/boutons-contacts-et-deparatisage.html
- vidéo qui peut aussi être intéressante : https://youtu.be/6Uj02YBz9BI
Walter
lun, 12/14/2020 - 16:51
Bonjour,
si tu le fais par programmation, plutôt que d'utiliser un délais qui "arrête" l'exécution du µc, utilise une variable pour ne rien faire dans ton trigger si un temps n'est pas passé depuis la dernière action.