Contrôlez une LED bicolore avec une seule broche

9

Est-il possible de contrôler une LED bicolore avec une seule broche d'un microcontrôleur?

L'instinct dit NON, car vous pouvez avoir une extrémité mise à la terre et l'autre aller à la broche du micro, ce qui vous permet de l'allumer ou de l'éteindre mais pas de changer sa couleur.

Mais peut-être que quelqu'un a une meilleure idée?

Thomas O
la source
1
Vous pouvez faire à peu près n'importe quoi avec une broche de micro. Plus précis, s'il vous plaît?
Nick T

Réponses:

6

Vous pouvez le faire avec une LED bicolore qui a les deux LED dos à dos si vous connectez une borne LED à une tension intermédiaire, par exemple 2,5 V sur une conception 5 V et connectez l'autre côté au MCU via une résistance appropriée ( J'ai utilisé 560R).

Ensuite, une sortie basse donne une couleur, haute donne l'autre et le triple état laisse la LED éteinte. La modulation de largeur d'impulsion vous permettra de contrôler la luminosité (commutation de la sortie entre actif et tri-état) ou de mélanger les couleurs (sortie de commutation basse à haute).

Vous pouvez également régler la tension intermédiaire pour compenser les différentes tensions directes des LED.

J'ai utilisé un ampli opérationnel LM2904 pour fournir la tension intermédiaire - il fonctionne avec une tension d'alimentation jusqu'à 5V. Il existe de nombreux autres appareils qui peuvent fonctionner à des tensions plus faibles tout en absorbant et en fournissant suffisamment de courant pour alimenter les LED.

John Gallant
la source
3

Si vous n'aviez pas besoin d'un état éteint et que votre Voh était suffisamment grand (modifier: pour surmonter la tension de polarisation directe de la LED), vous pourriez être en mesure de raccorder une extrémité de la LED à une tension médiane. La sortie d'un 1 obtient une couleur, la sortie d'un 0 obtient l'autre couleur. Pour l'éteindre ... ha, bonne chance. Peut-être pourriez-vous essayer d'y mettre un condensateur, puis de piloter la sortie avec un PWM que le capuchon lisserait jusqu'au milieu du rail?

ajs410
la source
7
Je pensais à peu près la même chose, peut-être que l'état désactivé pourrait être atteint en tristant la broche de sortie du micro.
tcrosley
1
Une suggestion géniale ... la déclaration de trois broches devrait la désactiver sans le PWM sophistiqué. Cependant, vous devez faire attention à ne pas laisser flotter l'entrée, vous aurez probablement besoin d'un pull down (PAS de diviseur, ne laissez pas la broche d'entrée voir les tensions
médianes
1
Vous pouvez utiliser une résistance de haute valeur (470k) tirée haut ou bas. La LED sera polarisée ou d'une couleur ou de l'autre, mais le flux de courant sera si faible que vous ne verrez pas la LED allumée.
akohlsmith
5
@ ajs410 - Je pense que les microcontrôleurs sont beaucoup plus intelligemment conçus qu'une puce logique stupide. Sur votre micro 8 bits moyen, la grande majorité des broches peuvent être utilisées comme entrées analogiques (sans les configurer explicitement comme telles), il ne devrait donc y avoir aucun effet néfaste (oscillation de grille, consommation de courant excessive) tant que la tension reste à l'intérieur GND et VDD.
Nick T
2
L'un des inconvénients (éventuellement importants) de cette topologie est que vous aurez toujours un courant assez important qui le corrigera (sans modification) pour toutes les applications alimentées par batterie à long terme.
Nick T
0

Vous pouvez Charlieplex il

À M
la source
3
mais cela nécessite un minimum de deux broches. OP a demandé une solution en utilisant une broche.
tcrosley
En fait, il est possible dans certains cas d'étendre Charlieplexing pour fournir N * (N + 1) LED avec N broches, si la tension d'alimentation est inférieure à deux fois la chute de tension des LED et que l'on a la bonne combinaison de chutes de tension des LED disponibles. Supposons pour simplifier que l'objectif est de contrôler 12 LED avec trois broches; six LED ont une chute de 2,5 volts, et six ont une chute de 1,7 volts, et la tension d'alimentation est de 3,0 volts. L'objectif est de 5 mA pour les diodes 2,5 volts et de 6,5 mA pour les diodes 1,7 volts. Mettez une résistance de 100 ohms en série avec chaque sortie. Trois des LED 2,5 volts connectent les sorties au VDD, trois au VSS ...
supercat
... et les DEL de 1,7 volts connectent les sorties entre elles sous la forme "normale" de Charlieplex. Pour allumer une LED de 1,7 volt, pilotez une sortie haute et une basse. Les résistances chuteront de 0,65 volt, laissant 1,7 volts pour la LED et une tension insuffisante pour la LED de 2,5 volts. Pour allumer une LED de 2,5 volts, pilotez une sortie en haut ou en bas et aucune des autres. Ensuite, une LED de 2,5 volts aura suffisamment de courant pour s'allumer.
supercat
On pourrait ajouter plus de résistances ou de diodes au silicium pour faire face à différents scénarios de tension si nécessaire, mais cela ajouterait une certaine complexité. @tcrosley: ce qui précède se généralise en utilisant une broche pour contrôler deux LED.
supercat