Batterie 9 volts connectée à un transistor contrôlant les LED avec Arduino

8

J'essaie d'ajouter une configuration d'éclairage LED personnalisée à mon ordinateur de bureau. Dans cette configuration, je veux que de petits ensembles de LED puissent être allumés séparément des autres ensembles. C'est pour que je puisse allumer différents sets à différents moments pour faire un "light show".

J'utilise les broches d'E / S numériques d' un Arduino pour contrôler un transistor (BC547B) qui fournira l'alimentation d'une batterie de 9 volts aux LED. Les LED sont évaluées à 1,9 V et j'ai plusieurs jeux de 5 LED (5 * 1,9 = 9,5 - pas besoin de résistance ... n'est-ce pas?) Connectés en série et ces "jeux multiples" doivent être connectés en parallèle.

Cependant, en raison d'un simple manque de transistors, je suis temporairement (jusqu'à ce que j'obtienne plus de transistors) connectant 2 jeux de 5 LED par transistor. Confus? Permettez-moi de mettre cela ensemble dans un schéma utilisant seulement 1 transistor (dans la version finale, il y en aura plus):

schématique

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

Donc, fondamentalement, le problème est que lorsque j'allume la broche 5 de mon Arduino, les LED ne s'allument pas. Pourquoi est-ce? . Je fais peut-être quelque chose de mal ici, mais si je le suis, je ne peux pas le comprendre.

Voici le code temporaire de l'Arduino que j'utilise, juste au cas où quelqu'un voudrait le voir:

void setup() {
    pinMode(5, OUTPUT);
}

void loop() {
    digitalWrite(5, HIGH);
    delay(1000);
    digitalWrite(5, LOW);
    delay(1000);
}

Tout ce qu'il fait est d'activer la broche 5, d'attendre une seconde, de l'éteindre, d'attendre une seconde et de répéter.

Merci d'avance.

Excuses PS pour le titre maladroit.

ÉDITER:

Je dois également noter que je suis très nouveau dans ce genre de choses. Je fais cela pour une sorte de projet d'apprentissage (et donc mon ordinateur peut avoir l'air cool).

RobertR
la source
Je reprends mon drapeau. Cela nécessite une réponse plus approfondie. Aussi, +1 pour avoir posé une question claire avec un bon schéma, du code, une bonne grammaire et une explication approfondie!
uint128_t
Vous avez trop de leds en série pour votre 9V. Essayez 3. N'utilisez pas votre suiveur car il n'y aura pas assez de volts du micro pour le piloter. Utilisez un collecteur ouvert et faites un puits de courant approprié pour les cordes de la série.
Autistic

Réponses:

13

Tout d'abord, l'ensemble "5 * 1.9V = 9.5V -> pas besoin de résistance" ne fonctionnera pas. La tension directe n'est pas exacte, pas plus que votre 9V. Voici une explication de la raison pour laquelle la tension directe == tension d'alimentation est un problème . De plus, il y aura une baisse de tension à travers votre transistor.

Votre circuit a de nombreux problèmes.

  1. Pour activer le transistor, l'Arduino devrait produire 5 * 1.9V + ~ 0.7V = ~ 10.2V. Les broches Arduino fournissent une sortie de 5 V, donc c'est un non dès le départ. Si vous mettez l'émetteur à la terre et connectez les LED au collecteur, cela est beaucoup plus susceptible de fonctionner.

  2. Votre transistor a besoin d'une résistance de base pour limiter le courant qui le traverse. Vous risquez d'endommager votre Arduino et votre transistor. Lors de la saturation du transistor (c'est ce que vous voulez faire pour qu'il agisse comme un interrupteur), la base sera à ~ 0,7V. Sans résistance de base, la broche Arduino conduit à 5 V et beaucoup de courant circule dans la base, brûlant le pauvre Arduino. Par conséquent, une résistance de base est requise; sa valeur dépend de la quantité de courant que vous voulez à travers les LED et du gain de courant du transistor. Sans faire le calcul, quelque chose entre 220Ω et 1kΩ est probablement bon.

  3. Les LED ou les brins de LED en parallèle nécessitent des résistances individuelles. Il existe de nombreuses réponses sur ce site qui peuvent expliquer pourquoi plus en détail; Fondamentalement, la tension directe nette entre les différents brins de LED diffère, provoquant un déséquilibre de courant. Mathématiquement, , où est votre tension d'alimentation, est le nombre de LED dans un brin série et sont la tension directe de la LED et le courant direct souhaité, respectivement.VsnVfIf=RVsnVf,If

  4. Lorsque vous obtenez cela, votre batterie 9V ne sera probablement pas adéquate (les batteries 9V ont très peu de capacité et une faible capacité de courant). Une verrue murale 9V ou similaire serait beaucoup plus appropriée. De plus, ce transistor n'est conçu que pour un courant de collecteur maximal de 100 mA. Quelques brins de LED dépasseront cela et votre transistor sera grillé. Un transistor plus gros, ou mieux encore, un joli MOSFET costaud, vous permettront de commuter en toute sécurité de nombreuses LED. Pour un seul brin, ou peut-être deux, ce transistor est très bien. Si vous utilisez une alimentation PC 12V, c'est très bien, assurez-vous simplement de calculer vos résistances de limitation de courant avec 12V au lieu de 9V.

Donc, utilisez quatre LED en série et une résistance de limitation de courant appropriée, changez les connexions du transistor et ajoutez une résistance de base. Cela devrait au moins vous aider à démarrer.

uint128_t
la source
OK merci! Quelques questions cependant. Tout d'abord, pour le point 2, où cette résistance doit-elle aller? Sur la broche de base du transistor? De plus, pour le point 3, dites-vous que j'ai besoin d'une résistance devant chaque brin de LED? Et oui, la batterie 9v était temporaire; J'ai oublié de mentionner cela. Je prévois simplement de me connecter à un connecteur molex 12v sur l'alimentation de mon ordinateur.
RobertR
1
Oui, la résistance de base va entre la base et l'ATmega. Et oui, vous avez besoin d'une résistance en série avec chaque brin de LED pour limiter le courant. Je vais développer ma réponse pour couvrir certaines de vos questions.
uint128_t
1
par rapport au point 4: si les LED doivent clignoter avec un cycle de service assez faible, un gros condensateur électrolytique en parallèle avec la batterie pourrait aider. Assurez-vous simplement d'en obtenir une nominale de 15 V ou plus (c'est-à-dire trop spécifiée).
Chris H
Ok donc encore une question: quelle serait la résistance de la résistance mentionnée au point 3? En utilisant la loi d'Ohms via l'équation que vous avez fournie, ce serait (9 - 9,5) / 0,04 = -12,5 . La valeur de 0,04 est utilisée pour le courant direct car chaque LED est évaluée à 20 mA et j'ai 2 brins en parallèle, donc le courant direct global est de 40 mA ou 0,04 A.
RobertR
1
Oui, c'est pourquoi vous ne devriez pas utiliser 5 LED en série. Comme je l'ai dit plus tôt, vous devriez avoir une résistance séparée pour chaque brin, donc si vous utilisiez 4 LED en série avec une résistance, le calcul serait (9V-4 * 1.9V) / 20mA = 70Ω.
uint128_t