Résistances de tirage

18

Dans ma quête pour comprendre le génie électrique, je suis tombé sur ce tutoriel:

http://www.ladyada.net/learn/arduino/lesson5.html

J'ai compris les diagrammes jusqu'à ce que j'arrive aux commutateurs. Je ne sais pas comment les commutateurs fonctionnent sur la maquette ou les diagrammes. C'est le particulier auquel je pense (il s'agit d'une résistance de rappel):

entrez la description de l'image ici

La mise en œuvre est:

entrez la description de l'image ici

Sur la base du schéma, ce qui se passe, je pense, est le suivant: l'alimentation est commutée, si le bouton est relevé, le circuit n'est pas terminé. Si le bouton est enfoncé, le courant emprunte le chemin de moindre résistance à la broche 2 car il a plus de traction (100 ohms <10kohm).

La façon dont il est décrit dans le tutoriel sonne comme lorsque le bouton est enfoncé, le circuit est toujours terminé, mais la résistance de 10k ohms tire l'alimentation au sol. Je ne sais pas comment ni pourquoi si les 10k ohms et 100ohm reçoivent un courant égal, le courant serait tiré au sol par une résistance plus élevée que celle ouverte à la broche 2.

Storm Kiernan
la source
3
Un côté: essayez de penser à un circuit en termes de ce que la tension sera à chaque point, plutôt que où le courant circule. Cela m'a aidé à comprendre quand j'ai commencé à apprendre l'EE.
geometrikal
Je suis un peu déçu de la qualité des réponses à cette question. Je suggère plutôt de regarder cette vidéo par AddOhms. . Je ne comprends pas assez ce concept pour l'expliquer, mais aucune des réponses ici au moment de la rédaction de cet article ne parle même des causes de l'état flottant, ni de la manière dont le pull-up ou le push-down résout le problème.
Evan Carroll,
@EvanCarroll D'un autre côté, la question au moment de la rédaction ne concerne pas les choses qui vous intéressent.
Dmitry Grigoryev

Réponses:

29

Tout d'abord, oubliez pour l'instant la résistance de 100 Ω. Ce n'est pas nécessaire pour le fonctionnement du bouton, il est juste là comme protection au cas où vous commettriez une erreur de programmation.

  • Si le bouton est enfoncé, P2 sera directement connecté à +5 V, ce qui sera considéré comme un niveau élevé, étant "1".
  • Si le bouton est relâché, le +5 V ne compte plus, il n'y a que les 10 kΩ entre le port et la masse.

×


Maintenant, la résistance de 100 Ω. Si vous produisiez accidentellement la sortie de la broche et la réglez à un niveau bas, appuyez sur le bouton provoquera un court-circuit: le microcontrôleur définit 0 V sur la broche et l'interrupteur +5 V sur la même broche. Le microcontrôleur n'aime pas cela, et le CI peut être endommagé. Dans ces cas, la résistance de 100 Ω devrait limiter le courant à 50 mA. (Ce qui est encore un peu trop, une résistance de 1 kΩ serait mieux.)

Puisqu'il n'y aura pas de courant dans une broche d'entrée (à part la faible fuite), il n'y aura pratiquement pas de chute de tension à travers la résistance.

Le 10 kΩ est une valeur typique pour un pull-up ou pull-down. Une valeur inférieure vous donnera une chute de tension encore plus faible, mais 10 mV ou 1 mV ne fait pas beaucoup de différence. Mais il y a autre chose: si le bouton est enfoncé, il y a 5 V à travers la résistance, donc il y aura un courant de 5 V / 10 kΩ = 500 µA. C'est assez bas pour ne pas causer de problèmes, et vous ne maintiendrez pas le bouton enfoncé pendant longtemps de toute façon. Mais vous pouvez remplacer le bouton par un interrupteur, qui peut être fermé pendant longtemps. Ensuite, si vous aviez choisi un pull-down de 1 kΩ, vous auriez 5 mA à travers la résistance tant que l'interrupteur est fermé, et c'est un peu un gaspillage. 10 kΩ est une bonne valeur.


Notez que vous pouvez la retourner pour obtenir une résistance de rappel et passer à la masse lorsque vous appuyez sur le bouton.

entrez la description de l'image ici

Cela inversera votre logique: appuyer sur le bouton vous donnera un "0" au lieu d'un "1", mais le fonctionnement est le même: appuyer sur le bouton fera l'entrée 0 V, si vous relâchez le bouton, la résistance connectera le entrée au niveau +5 V (avec une chute de tension négligeable).

C'est ainsi que cela se fait habituellement, et les fabricants de microcontrôleurs en tiennent compte: la plupart des microcontrôleurs ont des résistances de rappel internes, que vous pouvez activer ou désactiver dans le logiciel. Si vous utilisez le pull-up interne, il vous suffit de connecter le bouton à la terre, c'est tout. (Certains microcontrôleurs ont également des menus déroulants configurables, mais ceux-ci sont beaucoup moins courants.)

Stevenvh
la source
Je ne pense pas qu'il soit clair comment la méthode Push-Down résout le problème avec l'état flottant de cette réponse.
Evan Carroll,
7

Notez que le commutateur n'est pas un appareil sophistiqué qui prend du courant et crée un signal de sortie.Pensez-y plutôt comme un fil que vous ajoutez ou retirez simplement du circuit en appuyant sur le bouton.

Si l'interrupteur est déconnecté (non enfoncé), le seul chemin possible pour le courant est de P2traverser les deux résistances à la terre. Ainsi, le microcontrôleur lira un LOW.

Si l'interrupteur est connecté (enfoncé):

  • Le courant passe de l'alimentation à travers l'interrupteur

  • Une partie du courant passe à travers la résistance de 100 ohms jusqu'à P2. Le microcontrôleur affichera HAUT.

  • Une petite quantité de courant passera à travers la résistance de 10 Kohm vers la masse. Il s'agit essentiellement d'une perte d'énergie.

Notez que la résistance de 100 ohms est juste là pour limiter le courant maximum entrant P2. Il n'est normalement pas inclus sur un circuit comme celui-ci, car l' P2entrée du microcontrôleur est déjà à haute impédance et ne consommera pas beaucoup de courant. Cependant, l'inclusion de la résistance de 100 ohms est utile dans le cas où votre logiciel a un bug ou une erreur logique qui l'amène à essayer de l'utiliser P2comme sortie à la place. Dans ce cas, si le microcontrôleur tente de baisser P2mais que le commutateur est court-circuité et qu'il se connecte à haut, vous risquez d'endommager la broche du microcontrôleur. Pour être sûr, la résistance de 100 ohms limiterait le courant maximum dans ce cas.

Jim Paris
la source
5

Lorsque vous appuyez sur le bouton, vous placez un niveau logique élevé (+5 V) sur l'entrée. Mais si vous omettez la résistance et que le bouton est relâché, la broche d'entrée serait simplement flottante, ce qui dans HCMOS signifie que le niveau n'est pas défini. C'est quelque chose que vous ne voulez pas, vous tirez donc l'entrée à la terre avec la résistance. La résistance est nécessaire car sinon, une pression sur le bouton provoquerait un court-circuit.

L'entrée est à haute impédance, ce qui signifie qu'il n'y aura pratiquement pas de courant à travers elle. Un courant nul à travers la résistance signifie une tension nulle à travers elle (loi d'Ohm), donc le 0 V d'un côté sera également de 0 V (ou très proche) sur la broche d'entrée.

C'est une façon de connecter un bouton, mais vous pouvez également échanger la résistance et le bouton, de sorte que la résistance passe à +5 V et le bouton à la masse. La logique est alors inversée: appuyer sur le bouton donnera un niveau bas sur la broche d'entrée. Cela est souvent fait, cependant, car la plupart des microcontrôleurs ont des résistances de rappel intégrées, de sorte que vous n'avez besoin que du bouton, la résistance externe peut alors être omise. Notez que vous devrez peut-être activer le pull-up interne.



Voir aussi cette réponse .

Stevenvh
la source
Je ne pense pas qu'il soit clair comment la méthode Push-Down résout le problème avec l'état flottant de cette réponse.
Evan Carroll,
4

La résistance de 10kohm est appelée résistance de pull-down parce que, lorsque le nœud "vert" (lors de la connexion des résistances de 100ohm et 10kohm) n'est pas connecté à + 5V par le commutateur, ce nœud est tiré à la masse (en supposant un faible courant à travers cette branche , évidemment). Lorsque le commutateur est fermé, ce nœud gagne un potentiel de + 5V.

Ceci est utilisé pour contrôler les entrées des circuits intégrés logiques (portes ET, portes OU, etc.), car ces circuits se comporteront de manière erratique s'il n'y a pas de valeur déterminée sur leurs entrées (une valeur 0 ou 1). Si vous laissez l'entrée d'une porte logique flottante, la sortie ne peut pas être déterminée de manière fiable, il est donc conseillé de toujours appliquer une entrée déterminée (un 0 ou un 1, à nouveau) à l'entrée de la porte. Dans ce cas, P2 serait une entrée vers une porte logique spécifique, et lorsque le commutateur est ouvert, il a une valeur d'entrée de 0 (GND); lorsque l'interrupteur est fermé, il a une valeur d'entrée de 1 (+ 5V).

Shamtam
la source
2

le courant prend le chemin de moindre résistance

Je ne sais pas d'où vient cette idée fausse commune, mais c'est effectivement faux car elle contredit directement la loi d'Ohm. Le courant emprunte toutes les voies possibles , inversement proportionnelles à leur résistance. Si vous appliquez 5V à une résistance de 10k, 0,5mA la traversera, quel que soit le nombre de chemins alternatifs (à faible résistance ou autre) que vous fournissez.

Soit dit en passant, ce chemin à travers la résistance de 100 Ohms n'est pas nécessairement la "moindre résistance", car la résistance n'est pas connectée à la masse . Typiquement, vous connectez cette résistance à une entrée MCU avec une impédance> 10 MOhm, ce qui fait de la résistance 10k le chemin de la moindre résistance.

Dmitry Grigoryev
la source
1

La raison pour laquelle la résistance de rappel est nécessaire est que le microcontrôleur est un dispositif CMOS et donc la broche d'entrée est finalement la grille d'un MOSFET.

Si votre bouton poussoir contrôlait une ampoule ou une LED ou un relais, vous n'auriez pas besoin d'une résistance de rappel car un circuit ouvert serait "éteint". Lorsque le bouton était relâché, l'ampoule s'éteignait car aucun courant ne circulait.

Si votre appareil était une véritable pièce TTL comme les puces logiques originales de la série 7400, vous n'auriez pas besoin de la résistance de rappel car ces entrées seraient des transistors bipolaires et lorsque le bouton serait relâché, aucun courant ne passerait par la jonction base-émetteur et l'entrée serait "de".

En revanche, l'entrée de votre microcontrôleur est une porte MOSFET qui agit comme un condensateur. Lorsque la tension de grille est suffisamment élevée, l'entrée est "activée". Cela se produit lorsque vous appuyez sur le bouton et que le courant circule à travers la résistance 100R dans le microcontrôleur. La grille se charge (très rapidement) comme un condensateur et l'entrée devient "on". Maintenant, que se passe-t-il lorsque vous relâchez le bouton? Plus de flux de courant. Mais qu'est-ce que cela signifie pour l'entrée? S'il n'y a pas de résistance de rappel, la charge sur la porte n'a nulle part où aller. La tension restera juste là près de 5V et l'entrée sera toujours "on". La résistance de pull-down draine la charge de grille de sorte que sa tension tombe en dessous du niveau "on". C'est ce que vous voulez faire pour que l'entrée numérique soit considérée comme "désactivée".

Vous pouvez expérimenter cela en connectant deux boutons à votre broche d'entrée. Attachez un à 5V et un à la terre. Lorsque vous appuyez sur le bouton 5V, l'entrée s'active. Lorsque vous le relâchez, il restera allumé jusqu'à ce que vous poussiez celui qui est connecté à GND.

Ben Jackson
la source
Dans TTL, c'est en effet la jonction base-émetteur qui ne conduira pas, mais pas de la manière que vous pourriez penser: l'entrée est l' émetteur du transistor NPN d'entrée, et le transistor conduit si l'entrée est rendue basse. Flottant est le même que élevé.
stevenvh