Forum: Mikrocontroller und Digitale Elektronik Störrischer LED-Cube


von Erik B. (adamantium23)


Angehängte Dateien:

Lesenswert?

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

von g457 (Gast)


Lesenswert?

> 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

von Peter O. (peter_o)


Lesenswert?

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??

von MaWin (Gast)


Lesenswert?

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.

von K. S. (the_yrr)


Lesenswert?

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.

von Erik B. (adamantium23)


Angehängte Dateien:

Lesenswert?

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

von Stefan F. (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.