NE555 en Trigger de Schmitt

De Wiki LOGre
Aller à : navigation, rechercher
Circuit NE555 --> Trigger de Schmitt

Contexte

En relation avec un projet dans lequel on a besoin de compter le nombre de tours d'un axe rotatif (tournant à quelques dizaines de tours par seconde grand max), on utilise un capteur optique à fourche et un disque à trous. Le disque est imprimé en ABS, le front d'ombre sur la photo-diode n'est pas instantané et probablement un peu irrégulier. Il peut aussi se trouver quelques perturbations électriques... Le signal de ce capteur, dans l'idéal de forme "en créneaux", n'est donc pas très propre. Les montées et descentes ne sont pas nettes.

Afin de "nettoyer" le signal j'essaie de faire un "trigger de Schmitt". Cela peut se faire à base d'AOP, mais le hasard des balades sur le net je vois que certains utilisent un "timer NE555". J'en ai justement un sur mon bureau... allons-y. Le circuit sur lequel je tombe est celui-ci : https://www.circuitstoday.com/scmitt-trigger-circuit-using-ne-555 ou son équivalent : https://www.electronicshub.org/555-timer-as-schmitt-trigger/

Et je me demande pourquoi il y a un condensateur sur l'entrée, car je me dis que justement le rôle du trigger sera de supprimer toutes les petites variations de signal d'entrée. Est-ce bien nécessaire de le filtrer en amont ? De plus, si mon signal a une fréquence "porteuse" faible, le condensateur ne va rien laisser passer, et mon trigger ne fonctionnera pas (?)

Je fais le montage, comme je n'ai pas le moteur pour faire les tests, je fais varier le signal doucement, à la main par un potentiomètre, et... ça ne marche pas. J'enlève le condensateur et ça marche. Je me dis alors que je vais essayer de comprendre.

NE555, c'est quoi ?

je creuse donc un peu le comportement du "NE555 timer".

En me basant sur ce schéma structurel, ou celui-ci, et sur la table de pinout décrivant bien les fonctions de chaque broche, j'en arrive à ceci... (dites-moi si je me plante)

En l'absence de composants externes complémentaires, le NE555 est un circuit logique basé sur 2 tensions de référence (que j'appellerai VH=2/3 VCC, VL=1/3 VCC) entrant chacun dans un comparateur (resp. CpH et CpL), les sorties de ces comparateurs alimentant une bascule. La sortie Vout du 555 bascule alors vers niveau H ou L selon les niveaux des signaux que l'on envoie dans chacun des comparateurs. Si l'entrée sur CpL , nommée Trigger, passe en dessous de VL, alors on "relève" la bascule et la sortie Vout passe à niveau haut. Si l'entrée sur CpH , nommée Threshold, passe au dessus de VH, alors on "reset" la bascule et la sortie Vout passe à niveau bas;

Donc, si l'on connecte un signal d'entrée fluctuant, simultanément sur Trigger et Thershold, alors le NE555 se comporte donc "naturellement" en mode Trigger de Schmitt inverseur, avec les deux seuils de déclenchement définis ci-dessus, VL et VH . Je me goure ? (La broche 5 "Control voltage" permettant de modifier un peu si besoin ces seuils, on lui adjoint en général un condo 10nF pour filtrer d'éventuelles perturbations)

--> Il n'y a rien dans la structure interne du 555 qui "gère le temps". L'appellation "timer" serait donc un abus de langage lié au fait que ce circuit entre très souvent dans la composition de timers. Bon ça c'est parce que je n'ai pas tenu compte de la pin 7, nommée "Discharge", permettant d'adjoindre des composants externes, R + C, permettant de définir un temps de décharge qui va faire redescendre le niveau d'une ou des broches d'entrée, et donc de rebasculer après un temps donné. Le mode de fonctionnement "monostable", "astable", etc. étant choisi selon l'usage qui est fait de Trigger et Threshold. Donc oui dans ce cas le NE555 est bien un timer dont les éléments de réglage temporel sont reportés à l'extérieur. C'est ça ?

Simulations numérique des phénomènes "analogiques"

Afin de mieux analyser ce qu'il se passe dans mon Trigger de Schmitt, je lance quelques petites simulations. L'applet https://falstad.com/circuit/ est plutôt pratique pour ce que je veux faire.

Voici le trigger minimaliste, sans diviseur de tension supplémentaire ni condensateur, juste le NE555 qui semble bien se comporter avec un signal à 40Hz "bruité" à 400Hz :

Trigger minimaliste

La version suivante inclut résistances et condo, ça marche aussi apparemment... Néanmoins, on voit que le signal principal est déjà bien aplati.

Trigger "filtré"

La simulation est obtenue avec https://falstad.com/circuit/ , et voici le code à "importer" :

$ 1 0.000005 7.619785657297057 55 5 50
165 304 112 416 112 4 0
w 256 80 368 80 0
R 256 80 144 80 0 0 40 5 0 0 0.5
O 432 176 464 176 0 0
w 304 240 304 208 0
w 256 240 304 240 0
v 256 240 192 240 0 1 400 1 0 0 0.5
R 192 240 160 240 0 1 40 2.5 2.5 0 0.5
g 592 304 592 320 0
g 400 272 400 288 0
w 368 80 432 80 0
w 432 80 432 144 0
c 544 224 592 224 0 1e-8 1.86419047495961
r 592 80 592 240 0 100000
r 592 304 592 240 0 100000
o 3 64 0 4102 5 0.00009765625 0 1
o 5 64 0 4099 10 0.00009765625 0 2 5 3


Mais alors que se passerait-il si on avait un signal fondamental et un "bruit" de fréquences différentes de celles-ci ? Les simulations montrent clairement que selon les fréquences de la porteuse et du bruit, les comportements varient :

Trigger "simple"

--> Globalement c'est "plutôt pas mal", sauf que certains déclenchements se font parfois en double ou triple sur les fronts montant ou descendant.

Trigger "filtré"

--> Parfois satisfaisant, mais aux basses fréquences le condensateur ne laisse plus passer de signal, ou du moins l'écrase beaucoup trop et les seuils peuvent ne plus être atteints.

Conclusion

Ma conclusion pour l'instant est que,

  1. évidemment, il faudrait adapter le "filtre" aux fréquences en jeu dans notre système. Mais comment calculer les valeurs des composants de ce filtre ? D'un point de vue théorique... probablement un électronicien pourrait m'expliquer cela ?
  2. pour les basses fréquences qui seront celles de mon application, le filtre n'est probablement pas pertinent. Par contre, en complément à ce trigger qui seuille sur des niveaux de signal, il est nécessaire de refuser le comptage d'impulsions "dupliquées", i.e. trop proches temporellement par rapport à la fréquence du signal moyen. Ceci pourra certainement se faire par un délai dans le programme Arduino qui recevra ce signal pour comptabiliser les pulses.

Certains me diront "mais tu pourrais tout faire en numérique si tu as un Arduino !" ... peut-être mais je n'aurais probablement pas fait cette analyse si je n'avais pas considéré les phénomènes analogiques et visualisé les courbes ci-dessus ;-)

Compléments

Merci MarcX pour ces éléments d'explication...

Le condo de ton montage est normalement là pour éliminer la composante continue de ton signal et les deux résistances constituent un pont diviseur qui crée une tension de la moitié de Vcc pour que ton signal soit centré sur Vcc/2. Si le condo est trop faible, ce qui à vue de nez est le cas, il va aussi avec la complicité des 2 résistances, jouer un rôle de filtre passe-haut trop important, ce qui n'est pas vraiment le but. Je te suggère de mettre un condo beaucoup plus gros, de l'ordre du micro Farad pour commencer.
Le filtre RC constitué par ton condensateur et les deux résistances a une fréquence de coupure de 1/2PiRC. C'est la valeur du condo et la résistance équivalente R est grosso merdo 100k/2=50k puisque les deux résistances de ton montage sont reliées à des points froids (les alims).
Donc ton montage a une fréquence de coupure de 318Hz si mes calculs sont bons.
Il n'est donc pas étonnant que le 40Hz soit davantage atténué que le 400Hz dans la simulation qu'on peut voir sur ton dessin : https://wiki.logre.eu/index.php/Fichier:Simul_trigger_2_filtr%C3%A9_40-400.PNG
Pour revenir à ton trigger de Schmitt à base de 555, c'est plus avantageux d'avoir un signal centré sur Vcc/2, donc le condo et les deux résistances se justifient mais cet ensemble RC ne doit en aucun cas constituer un filtre passe-haut qui vienne endommager la partie intéressante du signal (le 40Hz) et favoriser le bruit (le 400Hz). Il faut donc un condo plus gros qui associé aux résistances va laisser circuler librement les variations basses.
Si tu as un signal faible en sortie de ta photodiode ou de ton phototransistor, tu peux ajouter un étage à transistor ou un AOP pour l'amplifier avant de l'envoyer à ton trigger de S.
-- 
MarcX