Moin Leute, Vor einigen Tagen haben meine Nachbarin und ich uns an ein Arduinoprojekt gewagt: Ein LED-Cube, den sie vor einigen Jahren angefangen und bisher noch nicht beendet hat. Der Cube besitzt 125 LEDS, wir teilen sie in 25 Türme ein, deren LEDs in 5 Ebenen übereinander liegen. Die LEDs sind wie in einer LED-Matrix ausgeführt: jeder Turm hat eine gemeinsame Anode, jede Ebene eine gemeinsame Kathode. Als Microcontroller nutzen wir einen Elegoo Mega 2560 (Arduino-Klon). Da dessen IO-Pins einen max. Strom von nur 40 mA haben, werden die Kathoden nicht direkt an die IO-Pins, sondern über Transistoren an GND geführt (siehe Ersatzschaltplan). So weit so gut, doch es funktioniert nicht. Werden die Ausgänge für Turm 1 und Ebene 1 mit je 5V bestromt, leuchten in Turm 1 fast alle LEDs. Das gleiche gilt für alle 25 Türme. Wird eine Spannung an den Pin für den Turm X gelegt, gehen meistens alle LEDs an Turm X an, obwohl nur der Pin für Ebene Y beschaltet wird. Die korrekte LED leuchtet dabei stärker als die falschen, der Cube bemüht sich also wenigstens, es richtig zu machen. Unsere Vermutung ist, dass es einen Kollektor-Emitter-Strom durch die nicht beschalteten Transistoren gibt, d.h. dass diese nicht vernünftig trennen. Da wir beide nur begrenzte Erfahrung im Umgang mit ungehorsamen Transistoren haben sind unsere Fragen an euch nun: 1. Wie finden wir raus, ob es tatsächlich an den Transistoren liegt, ohne die Schaltung auseinander nehmen zu müssen? Es war schwierig genug, den ganzen Spaß zusammen zu löten. Einzelne Bauteile aus dem Kabelgewirr zu entfernen ist möglich, aber außerordentlich unangenehm. 2. Angenommen es liegt an den Transistoren: Was müssen wir unternehmen, um diese zum Funktionieren zu bewegen bzw. durch welche anderen Transistoren müssen wir sie ersetzen? Auf einem der Bilder sieht man deutlich das Shield des Arduinos, auf dem Widerstände und Transistoren verbaut sind. Inzwischen ist dieses im schwarzen Gehäuse und der Platz den man darüber sieht gibt es leider nicht mehr. Die Angaben der Widerstände erfolgen ohne Gewähr, bei den Transistoren handelt es sich um BD679
> Wie finden wir raus, ob es tatsächlich an den Transistoren liegt, > ohne die Schaltung auseinander nehmen zu müssen? Messen. Oder vorher den Code zeigen (oder selber nachschauen), Reihenfolge wäre auch ein guter Grund. HTH
Hallo, Der Basiswiderstand ist viel zu niedrig! Da würde ich eher 10k erwarten. Dafür sind die Vorwiderstände der LEDs ziemlich hoch. Vielleicht vertauscht??
Erik B. schrieb: > Da dessen IO-Pins einen max. Strom von nur 40 mA haben Bei 40mA gehen sie kaputt, liefern können sie nur 20mA und auch nicht alle gleichzeitig sondern 160mA in Summe. Erik B. schrieb: > Werden die Ausgänge für Turm 1 und Ebene 1 mit je 5V bestromt Was machst du mit den 24 anderen Ebenen und 4 anderen Turmanschlüssen ? Die müssen an GND, ebenso die Emitter der 4 anderen Transistoren. 2k2 bewirken (5V-3.6V-0.4V)/2200 = 0.45mA LED Strom, und das 1/5 der Zeit, deine LED leuchtet also so hell wie mit effektiv q00uA, 0.5% ihrer Nennhelligkeit bei 20mA. Dein Darlington-Transistor muss maximal 10mA schalten, bekommt aber über die 560 so viel Basisstrom dass er 4A schalten könnte. Ein schwaches Bild, man braucht normalerweise mehr Strom dafür, auch an den Ebenenausgängen. https://dse-faq.elektronik-kompendium.de/dse-faq.htm#F.8.1 Deine Schaltung wäre richtig, wenn ihr es auch so aufgebaut habt, aber die Darlingtons schalten langsam und verbrauchen zusammen mit weissen LEDs zu viel der 5V Spannung, es bleibt zu wenig Spannung übrig, um mit einem Vorwiderstand des Strom und damit die Helligkeit der LEDs ausreichend genau gegenüber Herstellungsschwankungen festzulegen.
MaWin schrieb: > 2k2 bewirken (5V-3.6V-0.4V)/2200 = 0.45mA LED Strom, und das 1/5 der > Zeit, hat ein Darlington nicht eher >0.7V Spannungsabfall? Das macht dann 5V - 3.6V - 0.7V /2200 = 0.3 mA oder weniger. wenn die Widerstände vertauscht sind, wären es mit 560 Ohm wenigstens 1.2mA. Darlington sind hier sowieso unnötig, jeder normale NPN macht es auch. Erik B. schrieb: > Wird eine Spannung an den Pin für den Turm X gelegt, gehen meistens alle > LEDs an Turm X an, obwohl nur der Pin für Ebene Y beschaltet wird. Die > korrekte LED leuchtet dabei stärker als die falschen, da müsste ein Fehler in der Verkabelung sein. Die Transistoren können mit offener Basis nicht leiten, insbesondere da sie Widerstände zum Emitter beinhalten. Zeig mal ein Bild von oben und unten von der Platine. Wie wird die Platine angesteuert, vom Arduino oder manuell mit Kabeln? beim arduino könnte ich mir vorstellen, dass der Pullup aktiv ist und du die Pins ausversehen zwischen aktiv high und pullup umschaltest. das würde das Phänomen erklären.
Vielen Dank für die Antworten! Ich habs jetzt nicht genau nachgerechnet, aber wenn ich mir die typischen Wertebereiche von LED- und Basiswiderständen angucke, kann es schon sein, dass da was vertauscht wurde. Die LEDs leuchten nicht unbedingt schwach, die LED-Vorwiderstände sind also zumindest nicht extrem zu hoch. Soweit mein Verständnis von Basiswiderständen reicht, sollte ein falsch dimensionierter Widerstand doch nur im durchschaltenden Zustand (UBE = 5V) einen Unterschied machen, nicht aber im sperrenden (UBE = 0V), oder? Der Cube wird vom Arduino angesteuert, ein kleines Testprogramm findet ihr im Anhang. Bei dem wirds übrigens interessant: Das Programm schaltet nur Ebene 3 an und nacheinander jeden der Türme. Da ist das klassische Fehlerbild vorhanden, es leuchten also die LED auf Ebne 3 und noch ein paar weitere im selben Turm schwach. Bei einem der Türme ist die LED für Ebene 3 defekt, da leuchten dann zwei andere LEDs aus dem selben Turm zusammen genommen so stark, wie die korrekte LED geleuchtet hätte. Ich hoffe, der Satz war nicht zu umständlich... Wenn man das ganze anders herum angeht und alle Türme anschaltet und dann nacheinander die Ebenen, gibts keine Probleme. Dann leuchten nur alle LEDs aus der Ebene, die grade angeschaltet wird und sonst keine. Das Bild der Platine folgt im Verlauf des Tages
Messe mal mit einem Oszilloskop die Spannung an den Basen der 5 Transistoren. Das sollte ziemlich schnell zum Fehler führen. Falls du kein Oszilloskop hast und Geld sparen musst, wird es wohl zur Not ein DSO-150 tun.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.