Comment fonctionne le condensateur dans un circuit anti-rebond?

13

Sur le circuit suivant (un bouton-poussoir anti-rebond qui allume une LED):

schématique

simuler ce circuit - Schéma créé à l'aide de CircuitLab

J'essaie de comprendre pourquoi la LED ne s'allume pas car le condensateur semble contourner l'interrupteur. Lorsque le condensateur est plein, il ne transmet / ne conduit pas d'électricité?

Vous remarquerez que je suis très débutant, mais après 20 heures de lecture de divers tutoriels, je n'arrive toujours pas à comprendre quelque chose de très simple; Comment le condensateur complet agit-il différemment d'un simple fil? Si je remplaçais le condensateur par un fil placé un fil au lieu du condensateur, la lumière serait toujours allumée.

Edit: Certaines personnes ont souligné que le circuit anti-rebond n'avait aucun sens (mauvaise tension, etc.) Voici ma deuxième tentative pour donner plus de sens. R5 et R6 pourraient être les mêmes, mais je pensais que les garder séparés aiderait à garder 1 travail pour chaque composant.

circuit

FMaz008
la source

Réponses:

14

Ce n'est pas un bon circuit anti-rebond.

Un problème est que (au moins idéalement) le commutateur et ses fils de connexion ont une résistance de zéro. Cela signifie que le condensateur se décharge instantanément lorsque l'interrupteur est fermé. (En termes pratiques, également, cette décharge rapide pourrait même être mauvaise pour les contacts du commutateur ou le câblage, s'il y a une tension suffisamment élevée sur le condensateur et qu'il a une capacité suffisamment élevée.)

Un rebond de commutateur capacitif devrait charger lentement le condensateur lorsque le commutateur est dans un état et le décharger lentement lorsqu'il est dans un autre état. La constante RC ne doit pas nécessairement être la même, mais elle doit être différente de zéro. Le circuit possède des résistances qui contrôlent la charge du condensateur; il a juste besoin d'une résistance dans la boucle de commutation pour la décharger gracieusement.

Un autre problème avec ce circuit est que la LED n'est éteinte que si le circuit est allumé depuis un certain temps, comme si le circuit existe depuis le début du temps avec cette même source de tension. Mais que se passe-t-il si, au temps , la source de tension a été 0V et saute soudainement à sa tension? À ce moment, le condensateur, qui devait être vide, commence à se charger. Pendant le chargement, le courant circule et la LED s'allume brièvement puis s'éteint. (Eh bien, peut-être pas, car votre source n'a que 1V, mais c'est une autre histoire).t=0

Dans CircuitLab, vous pouvez distinguer ces deux situations dans la simulation "Time Domain". Vous pouvez soit "Ignorer les initiales" ou non. Le solveur peut soit prétendre que le circuit a existé dans l'état donné pendant toute l'éternité jusqu'au temps , et commencer à le résoudre à partir de là. Ou il peut le résoudre du point de vue que le circuit vient juste d'exister à et que les sources de tension prennent vie, les condensateurs sont vides, etc.t = 0t=0t=0

Une dernière considération ici est que le circuit n'allume qu'une LED, donc le rebond du commutateur est fondamentalement théorique, à moins que la LED ne brille sur un détecteur optique où le rebond du commutateur se transforme en un problème dans le signal. Si le travail de la LED consiste simplement à fournir une jolie lumière, votre œil ne sera même pas assez rapide pour voir le commutateur rebondir.


Voici une simulation dans le domaine temporel du circuit (après avoir changé V1 en 3V). Ce qui est tracé est le courant LED. Important: le paramètre Ignorer initial est réglé sur Oui, afin que nous puissions voir ce qui se passe lorsque le condensateur est initialement vide et que la source de tension est alimentée à 3V. Tout cela avec le commutateur dans un état ouvert.

entrez la description de l'image ici

Comme vous pouvez le voir, le courant passe à travers la LED puis s'éteint. Si votre intention était que la LED soit strictement contrôlée par l'opérateur via le bouton-poussoir, votre conception ne met pas en œuvre votre intention à cent pour cent.


En ce qui concerne le commentaire ci-dessous, supposons que le but est réellement de piloter une broche de microcontrôleur (tout fonctionne à 5V). Premièrement, nous pouvons le faire sans aucune capacité et gérer le rebond dans le logiciel en échantillonnant la broche à un taux raisonnablement bas.

schématique

simuler ce circuit - Schéma créé à l'aide de CircuitLab

Lorsque l'interrupteur est ouvert, la sortie est tirée à 0 V par la résistance de descente. Lorsque nous fermons l'interrupteur, la tension au sommet de la résistance monte à 5V. Cette sortie peut être considérée comme un signal. Nous nous intéressons à la composante basse fréquence du signal: des pressostats relativement lents. Nous voulons rejeter les hautes fréquences, comme le rebond du commutateur. Pour cela, nous pouvons ajouter un filtre passe-bas RC unipolaire passif:

schématique

simuler ce circuit

Maintenant, lorsque l'interrupteur se ferme, la tension augmente progressivement à mesure que le condensateur est chargé. Vous pouvez le voir dans la simulation du domaine temporel:

fermeture de l'interrupteur lissée

Lorsque le commutateur est ouvert, le condensateur se décharge à travers R1 et R1, ramenant progressivement la tension à zéro. Le condensateur suit essentiellement la tension de R1, mais avec un retard dû au fait de devoir charger à travers R1 et de se décharger à travers R1 et R2. (Notez que la décharge est deux fois plus lente que la charge!)

L'entrée du microprocesseur détecte la tension avec une impédance élevée, nous pouvons donc ignorer son effet de charge et même ne pas l'afficher sur le diagramme. Nous ne pouvons pas le faire dans le cas de la LED car elle nécessite du courant que notre circuit doit fournir. Ce courant traverse nos résistances et développe des tensions dont il faut tenir compte: en d'autres termes, il a des "effets de charge".

Ce type de circuit fonctionne encore mieux si nous alimentons la sortie à un déclencheur Schmidt. Un déclencheur Schmidt est une sorte de tampon pour les signaux numériques qui présente une hystérésis similaire à un thermomètre. Sa sortie passe à l'état haut lorsqu'un certain seuil d'entrée élevé est dépassé et tombe à l'état bas lorsqu'un seuil bas différent est dépassé. Par exemple, il peut atteindre un niveau élevé lorsque l'entrée dépasse 3,5 volts et n'atteindre un niveau bas que lorsque l'entrée tombe en dessous de 1,5.

Donc, même si le condensateur laisse passer un peu de bruit qui pourrait encore provoquer de petits va-et-vient près du franchissement du seuil d'une entrée, le déclencheur Schmidt le rejettera.


Supposons que nous voulons faire rebondir la LED avec un condensateur? Le problème est que les résistances finissent par être trop faibles en raison de la nécessité de fournir du courant à la LED. Si nous utilisons simplement le même circuit et rendons les résistances plus petites (et le condensateur plus grand du même facteur), nous nous retrouvons avec quelque chose qui gaspille de l'énergie. Pour ce faire, vous devez utiliser une petite boucle de signal pour gérer le commutateur, le rebondir, puis utiliser la tension pour contrôler un transistor qui transfère le courant dans la LED.

Bien que le rebouncing d' une LED puisse être inutile, si nous rendons les résistances et / ou le condensateur suffisamment grands, nous pouvons obtenir un comportement agréable: celui de la LED s'éteignant lentement lorsque le bouton est enfoncé et maintenu, et s'éteignant lorsqu'il est relâché.

schématique

simuler ce circuit

Il s'agit du même circuit que précédemment: le nœud "sortie vers microcontrôleur" se connecte désormais à la base d'un MOSFET à n canaux qui achemine le courant vers la LED. Le MOSFET "tampon" la logique anti-rebond de la conduite LED. Le circuit anti-rebond n'est pas perturbé par la faible impédance de la LED, et la LED n'est pas privée de courant par les hautes impédances du circuit anti-rebond.

Kaz
la source
Hum, alors quelle serait la solution? La LED peut être une entrée Arduino ou autre chose. Ma question était plus sur le condensateur ... J'ai juste essayé de copier un circuit anti-rebond existant pour illustrer ma question sur le condensateur. La tension serait de 5 V, pas de 1.
FMaz008
Je peux ajouter cela à la réponse.
Kaz
Donc, ce que vous dites, c'est que je devrais ajouter une résistance de 100 µm entre V1 et SW1? Je suppose que je suis juste confus parce que je n'ai pas encore vu de circuit anti-rebond à bouton-poussoir impliquant plus d'une résistance dans tout le tutoriel que j'ai vu. Mais la plupart ne dessinent pas le circuit complet (vers OUT, vers Arduino, etc.) donc c'est difficile à comprendre pour moi. Ce serait donc mauvais? : digital.ni.com/public.nsf/8e0a9cd1e264dced86256a100082b910/…
FMaz008
Bizarre, vous m'avez donc expliqué que je ne peux pas faire un bouton poussoir qui allume une LED, avec un circuit anti-rebond. Quoi qu'il en soit, cela a répondu à la question initiale, je ferai plus de recherche pour le reste: p Je n'aime simplement pas dire `` l'arduino le fera '': Je sais, je pourrais simplement ajouter un retard de 20 ms et ne pas faire de rebond du tout, mais j'essaie de comprendre quelle est la magie derrière ça ... c'est pourquoi je veux un circuit complet.
FMaz008
Vous pouvez faire rebondir un bouton poussoir qui entraîne une LED, mais c'est inutile car le rebond du commutateur ne provoque pas de dysfonctionnement d'une LED. Pour un circuit complet, imaginez que l'Arduino soit alimenté par + 5V et mis à la terre. Ensuite, le nœud "out" se connecte à la broche d'entrée que vous souhaitez piloter.
Kaz
2

Cet effet se produit car à l'état stationnaire, un condensateur bloque efficacement tout courant provenant de tensions CC. Cela peut être vu en comprenant l'équation

i = C * (dV / dt)

À DC, le terme différentiel est 0, donc le courant est 0. Par conséquent, le courant à travers le condensateur sera nul à l'état stable.

Si vous prenez cela pour acquis, il devrait être assez évident pourquoi ce circuit fonctionne. Si vous voulez encore plus de détails que cela, alors cette vidéo fera probablement un meilleur travail de démonstration de la façon dont la physique d'un condensateur se produit pour donner le résultat ci-dessus que ma description ne le pourrait.

NickHalden
la source
Cette vidéo est géniale, à l'exception de la tête qu'il m'a donné: p Merci :)
FMaz008
1

Un condensateur peut, à de nombreuses fins, être considéré comme une très petite batterie rechargeable. Il ne fera passer le courant que pendant la charge ou la décharge.

La plupart des LED nécessitent au moins 2 volts pour s'allumer - pour que votre circuit fonctionne, la source de tension doit être d'au moins 3 volts. Ensuite, vous pourriez voir la LED continuer à briller pendant une fraction de seconde après avoir ouvert le commutateur, pendant que le condensateur se charge.

Peter Bennett
la source
Je n'ai pas vraiment configuré la tension et tout ça, à part la résistance. C'est ma première utilisation de Circuit Lab, donc je ne faisais que "placer le composant avec des valeurs par défaut", si je le faisais pour de vrai, ce serait 5V.
FMaz008
1
"When the capacitor is full, it doesn't transmit/conduct electricity"

Oui. Ce n'est pas un fil, c'est (comme le symbole) deux plaques parallèles rapprochées.

pjc50
la source