Comment piloter une LED 20mA à partir d'une broche GPIO 4mA max


16

J'ai un circuit intégré doté d'un GPIO avec lequel j'aimerais piloter une LED.

Étant donné que l'appareil fonctionnera sur batterie, la consommation d'énergie sera faible (zéro peut-être) tandis que la LED est éteinte en priorité.

Le GPIO fournit 3,3 V lorsqu'il est allumé et 0,0 V lorsqu'il est éteint.

Il a également une limite d'un maximum de 4mA.

La LED a un courant direct de 20mA et une tension directe souhaitée de 2,0V.

Lorsque la LED est allumée, elle clignotera très probablement (en utilisant PWM) dans la plage de faible kilohertz.

Après avoir fouillé, je pense que c'est peut-être le type de circuit dont j'ai besoin.

entrez la description de l'image ici

Question 1: Suis-je encore près d'être sur la bonne voie.

Question 2: Quel est le composant correct à utiliser pour l'élément (5), (Transistor ou Mosfet), et comment dois-je procéder pour en trouver un (chez Frys local, RadioShack, en ligne) et comment sont-ils identifiés (spécifiés)?

Question 3: Le choix de l'élément (5) aura-t-il un effet sur la valeur ohmique de l'élément de résistance (3)? En dehors de la loi d'Ohm normale pour la source d'alimentation 3,0 V et la LED 2,0 V.

Question 4: Quelle serait la valeur ohmique de l'élément de résistance (2), le cas échéant.

Réponses:


29

Le circuit que vous montrez devrait fonctionner, mais il est inutilement compliqué et coûteux. Voici quelque chose de plus simple et moins cher:

À peu près n'importe quel petit transistor NPN que vous pouvez trouver fonctionnera dans ce rôle. Si la chute BE du transistor est de 700 mV, la LED baisse de 2,0 V, alors il y aura 600 mV sur R1 lorsque la LED est allumée. Dans cet exemple, cela permettra à 17 mA de traverser la LED. Augmentez la résistance si vous pouvez tolérer une lumière plus faible de la LED et que vous souhaitez économiser de l'énergie.

Un autre avantage de ce circuit est que le collecteur du transistor peut être connecté à quelque chose de supérieur à 3,3 V. Cela ne changera pas le courant à travers la LED, juste la chute de tension sur le transistor et donc combien il se dissipe. Cela peut être utile si le 3,3 V provient d'un petit régulateur et que le courant LED ajouterait une charge importante. Dans ce cas, connectez le collecteur à la tension non régulée. Le transistor devient en fait le régulateur uniquement pour la LED, et le courant LED proviendra de l'alimentation non régulée et n'utilisera pas le budget courant limité du régulateur 3,3 V.

Ajoutée:

Je vois qu'il y a une certaine confusion sur le fonctionnement de ce circuit et pourquoi il n'y a pas de résistance de base.

Le transistor est utilisé dans la configuration émetteur-suiveur pour fournir un gain de courant, pas un gain de tension. La tension de la sortie numérique est suffisante pour alimenter la LED, mais elle ne peut pas générer suffisamment de courant. C'est pourquoi le gain de courant est utile mais le gain de tension n'est pas nécessaire.

Regardons ce circuit en supposant que la chute BE est un 700 mV fixe, la tension de saturation CE est de 200 mV et le gain est 20. Ce sont des valeurs raisonnables sauf que le gain est faible. J'utilise délibérément un faible gain pour l'instant car nous verrons plus tard que seul un gain minimum est nécessaire du transistor. Ce circuit fonctionne bien tant que le gain se situe entre cette valeur minimale et l'inifinité. Nous analyserons donc le gain irréaliste de 20 pour un petit transistor de signal. Si tout fonctionne bien avec cela, nous allons bien avec tous les vrais transistors à petit signal que vous rencontrerez. On peut compter sur le 2N4401 que j'ai montré pour avoir un gain d'environ 50 dans ce cas, par exemple.

La première chose à noter est que le transistor ne peut pas saturer dans ce circuit. Étant donné que la base est entraînée à au plus 3,3 V, l'émetteur n'est jamais supérieur à 2,6 V en raison de la chute de 700 mV BE. Cela signifie qu'il y a toujours un minimum de 700 mV entre CE, ce qui est bien au-dessus du niveau de saturation de 200 mV.

Comme le transistor est toujours dans sa région "linéaire", nous savons que le courant du collecteur est le courant de base multiplié par le gain. Le courant d'émetteur est la somme de ces deux courants. Le rapport émetteur / courant de base est donc de gain + 1, soit 21 dans notre exemple.

Pour calculer les différents courants, il est plus facile de commencer par l'émetteur et d'utiliser les relations ci-dessus pour obtenir les autres courants. Lorsque la sortie numérique est à 3,3 V, l'émetteur est de 700 mV de moins, ou à 2,6 V. La LED est connue pour chuter de 2,0 V, ce qui laisse 600 mV à travers R1. De la loi d'Ohms: 600mV / 36Ω = 16,7mA. Cela éclairera bien la LED mais laissera un peu de marge pour ne pas dépasser son maximum de 20 mA. Comme le courant de l'émetteur est de 16,7 mA, le courant de base doit être de 16,7 mA / 21 = 790 µA et le courant du collecteur de 16,7 mA - 790 µA = 15,9 mA. La sortie numérique peut générer jusqu'à 4 mA, nous sommes donc bien dans les spécifications et nous ne la chargeons même pas de manière significative.

L'effet net est que la tension de base contrôle la tension de l'émetteur, mais le gros du travail pour fournir le courant de l'émetteur est effectué par le transistor, pas par la sortie numérique. Le rapport entre la quantité de courant LED (le courant d'émetteur) provenant du collecteur et la base est le gain du transistor. Dans l'exemple ci-dessus, ce gain était de 20. Pour 21 parties de courant via la LED, 1 partie provient de la sortie numérique et 20 parties de l'alimentation 3,3 V via le collecteur du transistor.

Que se passerait-il si le gain était plus élevé? Encore moins du courant LED global proviendrait de la base. Avec un gain de 20, 20/21 = 95,2% provient du collecteur. Avec un gain de 50, il est de 50/51 = 98,0%. Avec un gain infini, il est de 100%. C'est pourquoi ce circuit est en fait très tollerant de variation de pièce. Que 95% ou 99,9% du courant LED provienne de l'alimentation 3,3 V via le collecteur n'a pas d'importance. La charge sur la sortie numérique changera, mais dans tous les cas, elle sera bien en dessous de son maximum, donc cela n'a pas d'importance. La tension de l'émetteur est la même dans tous les cas, donc la LED verra le même courant que le transistor ait un gain de 20, 50, 200 ou plus.

Un autre avantage subtil de ce circuit que j'ai mentionné précédemment est que le collecteur n'a pas besoin d'être lié à l'alimentation 3,3 V. Comment les choses changent-elles si le collecteur est relié au 5 V, par exemple? Rien du point de vue de la LED ou de la sortie numérique. N'oubliez pas que la tension de l'émetteur est fonction de la tension de base. La tension du collecteur n'a pas d'importance tant qu'elle est suffisamment élevée pour maintenir le transistor hors de saturation, ce que 3,3 V était déjà. La seule différence sera la chute CE à travers le transistor. Cela augmentera la dissipation de puissance du transistor, qui dans la plupart des cas sera le facteur limitant de la tension maximale du collecteur. Disons que le transistor peut dissiper en toute sécurité 150 mW. Avec le courant de collecteur de 16,7 mA, nous pouvons calculer la tension du collecteur à l'émetteur pour provoquer une dissipation de 150 mW:

Cela signifie que dans cet exemple, nous pouvons lier le collecteur à n'importe quelle alimentation pratique de 3,3 V à 11,6 V. Il n'a même pas besoin d'être réglementé. Il pourrait fluctuer activement n'importe où dans cette plage et le courant LED resterait bien stable. Cela peut être utile, par exemple, si le 3,3 V est produit par un régulateur avec peu de capacité de courant et que la majeure partie est déjà allouée. S'il fonctionne à partir d'une alimentation d'environ 5 V, par exemple, ce circuit peut obtenir la plupart du courant LED de cette alimentation 5 V tout en gardant le courant LED bien régulé . Et, ce circuit est très tolérant aux variations des pièces de transistor. Tant que le transistor a un gain minimum, bien inférieur à ce que la plupart des petits transistors de signal fournissent, le circuit fonctionne correctement.

L'une des leçons ici est de réfléchir au fonctionnement réel d'un circuit. Il n'y a pas de place dans l'ingénierie pour des réactions ou des superstitions de réflexe comme de toujours mettre une résistance en série avec la base. Mettez-en un là où vous en avez besoin, mais notez que ce n'est pas toujours, comme le montre ce circuit.


Le transistor manque, c'est sa résistance de limitation de courant sur sa base.
Passant

3
@Passerby - Non, ce n'est pas le cas. Il s'agit d'une topologie intelligente qui n'en a pas besoin.
Connor Wolf

1
@AndrewKohlsmith - Cela devrait également être assez immunisé contre les variations de processus dans le transistor. Tant que le transistor a suffisamment de bêta, n'importe quel appareil fonctionnera à peu près.
Connor Wolf

2
Wow, belle réponse, a changé ma façon de voir la conception des circuits.
abdullah kahraman

1
Pas surpris du tout d'être ému viscéralement par un exemple bien raisonné et articulé et de voir le nom "Olin Lathrop" comme le contributeur. Oui, je me rends compte que c'est> 5,5 ans après la réponse réelle. Voilà à quel point c'est une bonne réponse. +1
jayce

3

De nombreuses LED sont aujourd'hui très lumineuses et fonctionnent bien à partir de 4mA ou même moins et cela vous fera économiser des composants externes supplémentaires. Les LED que j'utilise couramment fonctionnent parfaitement bien (pour mon application) à 1mA!

Il suffit de mettre une résistance en série avec la LED, suffisamment grande pour limiter le courant. Vérifiez si vous ne dépassez pas le courant maximum pour l'ensemble de l'appareil, il est spécifié dans la fiche technique.

Vérifiez donc si votre LED est suffisamment lumineuse directement connectée à la broche GPIO avec une résistance série:

R=UdropILED =3.32.0V4mA=1.2V4mA=300Ω

Ω


Je viens d'essayer une LED rouge de 10 mm et une LED blanche de 5 mm, à un courant de commande de 2 mA, et les deux sont très visibles. À 4 mA, les deux sont assez brillants. La LED 10 mm est évaluée à 30 mA, tandis que la LED blanche est évaluée à 25 mA.
Anindo Ghosh

0

Je sais que votre question portait sur des composants discrets, mais je pense que dans le cas général, vous feriez probablement mieux de regarder un tampon ou un pilote de ligne basé sur IC. Par exemple, l'ULN2803 est un tampon octal (8 E / S) et tirera moins de 2 mA de vos broches GPIO, mais peut générer jusqu'à 500 mA par sortie. (C'est une logique inverseuse, donc votre code doit en tenir compte). Évidemment, vous voudrez utiliser des résistances de limitation de courant pour vos LED.


0

Commentant le schéma proposé dans le message d'origine:

L'utilisation d'un transistor NMOS FET discret comme celui-ci serait un bon choix.

  • Aucune résistance série n'est nécessaire à la grille d'un MOSFET.
  • Sélectionnez un FET avec une tension de seuil d'environ 1 V en dessous de votre tension d'alimentation pour vous assurer qu'il sera bien saturé une fois allumé, puis la chute de tension à travers le MOSFET sera faible. (Les MOSFET font de très bons commutateurs.)
  • Le courant LED sera réglé par ILED = (VCC - Vf - Vds) / R. Pour les nombres indiqués et en supposant 0,2 V sur le FET, R = (3,3 - 2,0 - 0,2) / 20 mA = 51 ou 56 ohms (valeur standard la plus proche)

Remarque: Normalement, l'anode LED est liée à l'alimentation et la résistance est en série avec la cathode; cela peut améliorer le temps de commutation en réduisant la quantité de capacité dans le circuit qui doit être chargée / déchargée lors de la commutation car la tension de cathode "s'effondrera" à la tension d'anode lorsqu'elle est éteinte.

Comme une autre affiche l'a mentionné, si le courant nécessaire à la LED est suffisamment faible, vous pouvez utiliser directement le GPIO. En mode drain ouvert, il est identique au comportement avec un FET externe (mais inversé). Mais je ne recommanderais pas d'utiliser un port uC à plus de 1 mA pendant longtemps; le circuit intégré pourrait ne pas être conçu pour de grands courants constants comme celui-ci (il pourrait s'agir de problèmes d'électromigration ou d'auto-échauffement).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.