Verwenden eines Mikrocontrollers zum Einschalten des LED-Streifens

Ich habe 60 LEDs, die in einem LED -Streifen geliefert wurden . Ein Meter Länge des LED-Streifens erfordert Folgendes:

  • 400 Milliampere
  • 12 Volt

Ich möchte diese LEDs mit einem Mikrocontroller steuern. Ich denke an die Verwendung eines TIP120 und eines HimbeerPi.

Ein RaspberryPi-GPIO-Pin kann kontinuierlich 50 Milliampere ausgeben. (Update: Das stimmt nicht, siehe unten)


Ich bin ein Anfänger und bin mir nicht sicher, ob ich das richtig mache. Alle meine Berechnungen basieren auf Dingen, die ich in diesem Blog gelesen habe .


Mathematik

Basisstrom:

Der TIP120 hat einen Kollektorstrom von lc = 250 * lb, also benötige ich einen Basisstrom von 1,6 mA.

(1,6 mA * 250 = 400)

Der Raspberry Pi sollte keine Probleme mit dem Basisstrom haben

Basiswiderstand:

Ich brauche einen Widerstand, der niedrig genug ist, um sicherzustellen, dass die TIP120-Basis gesättigt bleibt, aber weniger als 50 mA bleibt, um den HimbeerPi nicht zu überlasten.

Laut dem von mir erwähnten Blog finde ich den Basiswiderstand, indem ich den Vbe (sat) nachschlage. Siehe Abbildung 2.

wobei Vbe(sat) auf der x-Achse 400 beträgt, beträgt der Kollektorstrom auf der y-Achse etwa 1,3.

Geben Sie hier die Bildbeschreibung ein

Wenn der RaspberryPi 3,3 Volt ausgibt, dann gibt es einen Spannungsabfall von 2 Volt
(3,3 - 1,3)

Also brauche ich nach meiner Berechnung einen Widerstand zwischen 4 und 40 Ohm R = V / I
2 / (0,05 A) = 40 Ohm
2 / (0,50 A) = 4 Ohm
(Update: Falsch, siehe unten in der Frage)

Ich betrachte mich immer noch als Amateur und bin etwas überfordert.

  • Sehen diese Berechnungen richtig aus?
  • Wird TIP120 funktionieren? (weitere Vorschläge willkommen)
  • Gibt es noch andere Überlegungen, die ich für meinen Schaltplan berücksichtigen sollte?

Geben Sie hier die Bildbeschreibung ein

Aktualisieren

Wie in den Antworten erwähnt, habe ich die Milliampere-Angaben um den Faktor 10 getippt. Ich hätte sagen sollen:
2 / (0,005 A) = 400 Ohm
2 / (0,050 A) = 40 Ohm

Aktualisierung 2

Es scheint, dass der maximale Strom, den ein Pin auf einem Raspberry Pi liefern kann, unklar ist. Sicherheitshalber gehe ich von 8 mA aus.

https://raspberrypi.stackexchange.com/questions/9298/what-is-the-maximum-current-the-gpio-pins-can-output

https://raspberrypi.stackexchange.com/questions/1130/what-is-the-nominal-gpio-pin-output-current

Aktualisierung 3

Ada Fruit hat einen großartigen Blogartikel darüber geschrieben, wie man einen LED-Streifen mit einem Mikrocontroller steuert. Sie empfiehlt einen STP16NF06 oder einen TIP120

https://learn.adafruit.com/rgb-led-strips/usage

Ich glaube nicht, dass die GPIO-Pins 50 mA liefern können. Ich denke, der +3,3-V-Stromschienenstift kann 50 mA liefern. Ich denke, jeder GPIO kann nur ein paar Milliampere liefern. Ich würde anstelle eines BJT einen Logikpegel-MOSFET verwenden. Dann brauchen Sie sich keine Gedanken über Dauerstrom zu machen. IRLB8721 ist eine gute Wahl für viele Anwendungen; Ich denke, diese Verwendung würde qualifizieren.
@JonWatte Danke für den Hinweis, ich werde den maximalen Strom noch einmal überprüfen, bevor ich weiter gehe.
@JonWatte Leistungsberechnungen im Design des RPi ergaben, dass alle GPIO gleichzeitig eingeschaltet sind, jeweils 3 mA, insgesamt 50 mA. Sie können jederzeit weniger einschalten und den Strom erhöhen. Darüber hinaus haben sie zusätzliche 50 mA direkt von der 3,3-V-Schiene berechnet, wenn alle Peripheriegeräte verwendet werden (wie HDMI, Ethernet und SD-Karte, die alle von der 3,3-V-Schiene gezogen werden). Die 3,3-V-PINS, die direkt mit der 3,3-V-Schiene verbunden sind, und der 3,3-V-GPIO vom BCM-SOC sind also unterschiedlich.
+1 für Anfänger, die ihre eigenen Recherchen durchführen und fast den ganzen Weg dorthin kommen, bevor sie eine Frage stellen.
@Passerby Ich denke, Sie werden die Treiberstufe des GPIO-Pins verbrennen, wenn Sie versuchen, 50 mA von einem von ihnen zu beziehen und den Rest im Leerlauf zu halten.
@ JonWatte Der bmc2835 kann mehr treiben, als der Pin eingestellt ist, aber wenn Sie dies tun, fällt die Spannung ab. Für diese Socs ist kein Datenblatt verfügbar (Broadcom ist af*****), aber sie haben ein registergesteuertes gpio mit variablen Treiberströmen. Das "Maximum" beträgt 16 mA mit nur einem maximalen Abfall von ~ 0,3 V von VCC. 50 mA würden dazu führen, dass es ziemlich niedrig abfällt, was im Wesentlichen den Treiber schützt. Natürlich ist es nicht empfehlenswert, 50 mA aus einem einzelnen GPIO zu ziehen.

Antworten (2)

Sie haben es fast geschafft, aber ein paar Dinge:

Die Berechnung des Basiswiderstands ist nicht korrekt - denken Sie daran, dass Sie nach Ihren Berechnungen nur 1,6 mA benötigen (der Kollektorstrom ist separat).
Wenn man sich das Datenblatt ansieht, beträgt die minimale Verstärkung 1000 und die maximale Basis-Emitter-Spannung 2,5 V, was bedeutet, dass wir die Berechnungen anpassen müssen, 1,6 mA reichen für den Basisstrom (es ist immer gut, extra für einen Schalter als Verstärkung zu haben fällt bei Sättigung ab), aber wir müssen 2,5 V anstelle von 1,3 V für den schlimmsten Fall verwenden (es ist besser, die Worst-Case-/Maximalwerte für das Design zu verwenden, obwohl es den Anschein hat, dass die zusätzliche Vbe bei diesem Strom unwahrscheinlich ist, also irgendwo zwischen den beiden folgenden Zahlen sollte in Ordnung sein):

So:

(3,3 V - 2,5 V) / 1,4 mA = 570 Ω

oder

(3,3 V - 1,5 V) / 1,4 mA = ~1,2 kΩ

Dies sollte in Ordnung funktionieren, ist aber nicht der effizienteste Weg, Dinge zu tun - die Transistorverlustleistung beträgt mindestens 0,4 A * Vce (sat), was ungefähr 0,4 A * 0,75 V = 0,3 W entspricht, plus mindestens Ihren R-Pi-Bedarf ein paar mA oder so, um es zu fahren.
Ein moderner MOSFET mit Logikpegel kann viel kleiner sein, mit (fast) keinem Strom betrieben werden und fast keine Verlustleistung aufweisen. Hier ist ein Beispielteil, der FDC637BNZ , zufällig aus Tausenden bei Farnell ausgewählt:

Geben Sie hier die Bildbeschreibung ein

0,5 A sind 500 Milliampere ... Sie werden Ihren Pi sprengen. 0,05 sind 50 Milliampere. Das ist die Obergrenze. Dafür muss man nicht gehen. Sie brauchen nur 1,6 mA, wie Sie sagten. Polieren Sie es also ein wenig auf, sagen Sie schöne, gleichmäßige 5 mA. 3,3 - 1,3 = 2 V muss der Widerstand abfallen. 2 V / 0,005 A (5 mA) = 400 Ω. Runden Sie auf die nächstgrößere Größe 470Ω auf, Sie erhalten ~ 4mA an der Basis.

Abgesehen von diesem Rechenfehler funktioniert der TIP120 dafür gut, obwohl er für die 400 mA, die der LED-Streifen benötigt, wirklich übertrieben ist. Es ist ein Darlington-Paar für die Hochstromvervielfachung. Ein gewöhnlicher einzelner BJT-Transistor wie der PN2222 (1 Ampere in einem Standard-To-92-Gehäuse) wäre mehr als genug. Oder Sie könnten den Streifen in zwei oder drei Teile aufteilen und ein paar 2n3904 (100 ~ 200 mA) verwenden und die verschiedenen Abschnitte unterschiedlich flashen (Natürlich benötigen Sie eine gleiche Anzahl von GPIOs, es sei denn, Sie möchten sie alle von einem einzigen GPIO aus ansteuern, was dies tun würde funktionieren auch. Paralleltransistoren mit jeweils eigenen Basiswiderständen, die kleinere Abschnitte des LED-Streifens ansteuern, wären eine gute Möglichkeit, mit kleineren Transistoren umzugehen, wenn Sie keine größeren bekommen können.)

Und dein Schaltplan ist gut genug für ein Mockup. Ein einfarbiger LED-Streifen ist keine sehr komplexe Schaltung, mit der man arbeiten kann, daher gibt es keine Möglichkeit, ihn zu verbessern, außer die richtigen Teile anstelle von generischen Platzhaltern zu verwenden.

Danke, dass du das aufgefangen hast. Ich habe die Berechnungen eingegeben. Ich habe die Frage mit den richtigen Informationen aktualisiert.
Nachteil eines Darlington-Paares ist die relativ hohe V(CE,sat), die nur Energie im Transistor verbraucht. Ein normaler BJT wird mit diesem Aspekt viel besser abschneiden. Wie @Passerby feststellt, brauchen Sie kein Biest wie TIP120, das für fast das 20-fache dessen ausgelegt ist, was Sie brauchen.