Allumer plusieurs LED avec Arduino en utilisant un transistor

8

Je veux pouvoir allumer 50 LED rouges avec une broche d'un Arduino. Je ne veux pas de contrôle individuel, je veux juste pouvoir les activer ou les désactiver tous.

J'ai trouvé cet exemple . Il utilise un transistor 2N3904. Est-ce l'approche que je veux adopter? Je suppose que j'aurais besoin d'un transistor de puissance supérieure?

J'utilise une alimentation externe qui est câblée dans une carte personnalisée avec un régulateur de tension 5v, donc j'alimente les LED directement à partir de ce régulateur.

Les LED se présentent sous la forme de ce réseau de barres lumineuses LED (ou du moins très similaires) ...

J'avais mentionné dans un commentaire dans une réponse ci-dessous que j'utilisais une résistance de 330 ohms avec chaque LED. Dans une autre partie de ce projet, j'utilise les barres lumineuses comme indicateurs de niveau, et chaque LED séparée est contrôlée via un registre à décalage, donc la résistance séparée. Je me rends compte après y avoir pensé que je n'ai pas besoin d'avoir une résistance en série avec chaque LED pour cela maintenant car elles sont toutes allumées ou éteintes (hmmm .... désolé pour mes commentaires plutôt aléatoires!).

J'ai pensé que je pourrais avoir une sorte d'interrupteur électronique qui peut déconnecter la terre ou le 5V. Est-ce viable?

Adam
la source
C'est pour un contrôleur logiciel que je fais. Les lumières doivent pouvoir répondre relativement rapidement (c'est-à-dire toutes les 200 millisecondes)
Adam
1
Le logiciel est facile à comprendre. Je pense qu'un peu plus d'explications sur le matériel aideraient. Quel type de barre LED utilisez-vous? Les LED sont-elles en série, en parallèle, en cathode commune, en anode commune ou toutes indépendantes? Est-ce que "alimenter les LED directement du secteur" signifie à partir du régulateur 5V? Parce que cela pourrait signifier bien d'autres choses. Vous avez mentionné une résistance de 330 ohms par LED ... donc chaque LED (toutes les 50) a une résistance en série? J'essaie simplement de clarifier afin que nous puissions vous donner la meilleure réponse possible.
Kurt E. Clothier
Salut Kurt, j'ai édité mon message d'origine avec les informations. Acclamations
Adam

Réponses:

7

Un transistor est essentiellement un interrupteur qui peut déconnecter la masse ou le 5V. Il existe des transistors de toutes sortes, et certains peuvent commuter des charges vraiment énormes. 50 LED n'est pas un gros problème.

La question est donc la suivante: un seul commutateur 2N3904 peut-il commuter 50 LED?

Pour répondre à cela, nous devons d'abord savoir quel type de LED. Mais supposons que vous utilisez la variété habituelle rien de spécial. Une estimation raisonnable du courant maximum de ces20mA. Si vous en avez 50, le courant maximum est20mA50=1000mA. En regardant la fiche technique, je vois que le courant de collecteur maximum pour 2N3904 est200mA. La réponse est donc non: vous ne pouvez pas commuter 50 LED avec un 2N3904.

Je suppose que vous avez plusieurs options:

  • utiliser plusieurs 2N3904
  • utiliser moins de LED
  • utiliser les mêmes LED, mais les piloter avec moins de courant
  • utiliser un transistor plus gros ( TIP121 est très facile à trouver)
  • utiliser un autre appareil de commutation

Parmi ceux-ci, je pense que la réduction du courant LED ou l'utilisation d'un transistor plus grand est probablement la solution la plus probable. D'autres appareils de commutation (comme un relais) sont probablement plus chers et plus lents.

Phil Frost
la source
1
* Utilisez un MOSFET IRLML2502, mon composant préféré de la journée. :-)
Anindo Ghosh
J'utilise 5 barres lumineuses LED rouges (10 LED chacune). J'utilise une résistance de 330 ohms en série avec chaque LED, donc je recherche environ 2 mA par LED. Cela totalise moins que les spécifications du transistor (je pense - je suis toujours un peu confus lors du calcul de l'utilisation actuelle totale!)
Adam
Cela semble peu probable. Votre résistance représenterait une chute de tension de 330 Ω x 0,002 A = 0,66 V, donc à moins que vos LED aient un Vf de 4,34 V (ce qui serait inhabituellement élevé pour les LED rouges), votre courant est susceptible d'être considérablement plus élevé.
microtherion
1
Cette réponse ne prend en compte que les leds câblées en parallèle. Les leds pourraient être deux en série. Le courant serait donc de 20mA * 25 chaînes. Mais @Adam 2mA est faible pour une led, s'allument-ils même à ce tirage actuel?
Passant du
1
@Passerby, compréhensible. Je suis sûr que certains de ceux à haute puissance nécessitent un peu plus pour s'allumer. Mais les LED courantes avec lesquelles j'ai travaillé sont très satisfaites des petits courants (même inférieurs à 1 mA), bien qu'ils ne brillent pas très fort. En fait, les LED de ce projet n'utilisent que 1,8 mA chacune. Et comme ils sont multiplexés et seulement sur 1/3 du temps, le courant effectif ressemble plus à 0,6 mA. Même encore, l'écran est facilement visible en pleine lumière à une distance décente. projectsbykec.com/projects/miscivers/…
Kurt E. Clothier
3

Compte tenu des informations fournies (50 LED rouges notées à 1,95 V, source 5 V, courant 2 mA, résistances 330 Ω), les éléments suivants fonctionneraient.

En tenant compte du calcul de la résistance Led commune:
(Vcc - Tension directe) / Courant
où Vcc est de 5 V, la tension directe est de 1,95 V par LED, car nous en avons deux en série, 1,95 V * 2 et le courant souhaité est de 2 mA.
(5 - (1,95 * 2)) / 0,002 ou (5 - 3,9) / 0,002 ou 1,1 / 0,002 = 550.
Étant donné que vous avez des résistances de 330 Ω, un ajustement en conséquence donnerait 3 mA par série. Pas par led, mais par série, car le courant est égal dans un chemin série. Chaque série de résistances, dans ce cas deux, utiliserait le même 3mA de courant. Cela simplifie donc l'équation à des chaînes de la série 3mA * 25, seulement 75mA qui doivent être commutées.

Tout petit transistor de signal commun comme le 2n3904 peut gérer 75mA sans problème. Une résistance de base de 1 kΩ est utilisée entre la base du transistor et la broche MCU.

Remarque, le schéma ci-dessous ne montre qu'une seule barre led, vous ajouteriez simplement le reste de la même manière. Câblez la cathode de la première LED à l'anode de la LED suivante, et une résistance par paire.

schématique

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

Passant
la source
-3

Vous devez utiliser la broche de l'Arduino pour contrôler un transistor qui active un relais et les contacts de relais allument toutes les LED en appliquant la masse. Si vous devez utiliser un transistor, alors oui, vous devez en trouver un qui peut gérer tout le courant. Même avec un relais, assurez-vous de vérifier les valeurs nominales du contact. Voir l'exemple de circuit ci-dessous. Selon le courant nominal et la résistance de bobine du relais que vous sélectionnez, vous pouvez ou non avoir besoin de R2.

entrez la description de l'image ici

Suirnder
la source
Un relais a un temps de commutation relativement élevé et une durée de vie mécanique limitée. Il pourrait être utile de demander à OP de confirmer qu'il ne souhaite pas commuter les LED très rapidement ou trop souvent.
Anindo Ghosh du
Merci. Je pense qu'un relais serait trop lent pour mon application. J'ai ajouté un commentaire à mon message d'origine.
Adam
Il n'y a absolument aucun intérêt à utiliser un relais alors que tant de transistors sont disponibles qui peuvent commuter de très gros courants! Mis à part la vitesse lente et la taille énorme des relais, les solutions électriques survivent presque toujours et surpassent les solutions mécaniques.
Kurt E. Clothier
Bien que les relais ne soient pas la meilleure option, ils sont une option viable (vitesse nonobstant). +1 pour compenser les votes négatifs.
Passant du
C'est ce que je voulais dire: ce n'est pas la meilleure option, mais je ne voterais pas contre ... Si une sorte de contrôle pulsé est utilisé, un relais aura une durée de vie très courte s'il peut gérer la vitesse du pouls.
Kurt E. Clothier