Forum: Mikrocontroller und Digitale Elektronik 4x4 LED Matrix - Denk- oder Lötfehler?


von Mirko S. (mojo)


Angehängte Dateien:

Lesenswert?

Moin,

ich habe als Experiment mir eine 4x4 LED-Matrix gebastelt.

Getrieben wird die Matrix über einen msp430f2013, welcher seine 
Versorgungsspannung (VCC1) über den Programmieradapter bekommt. Die 
LED's bekommen ihren Strom von eimem externen Netzteil (VCC2). Die Masse 
ist von beiden verbunden.

Die Matrix läuft auch, kann alle Muster darstellen, die ich möchte.

Nun zu meinem Problem: Durch Zufall viel mir auf, dass die Matrix auch 
funktioniert, wenn das externe Netzteil ausgeschaltet ist, also VCC2=0V.

Nun zu meiner Frage: Habe ich bei meinem Aufbau (siehe Schaltplan) einen 
Denkfehler, oder habe ich irgendwo einen Kurzschluss?

Hoffe der Schaltplan ist verständlich, ich musste etwas improvisieren, 
da ich den msp430f2013 nicht in der Bibliothek und auch im Netz nicht 
gefunden habe.

Hoffe ihr könnt mir weiter helfen.

Mit freundlichen Grüßen
Mirko

von Philipp B. (philipp_burch)


Lesenswert?

Hallo Mirko,

du hast eher einen Denkfehler. Schau dir mal das Symbol der oberen 
Transistoren genau an: Der Pfeil in der B-E-Strecke stellt eine Diode 
dar. Dort ist auch wirklich eine vorhanden. Das heisst, dass deine 
Matrix bei fehlender VCC2 direkt aus dem Controller versorgt wird. Ist 
aber nicht besonders nett.

btw: Ein Bauteil in EAGLE zu erfassen ist weder kompliziert noch 
aufwändig und garantiert weniger fehleranfällig als deine Bastelei.

von mhh (Gast)


Lesenswert?

Mirko S. schrieb:
> Nun zu meinem Problem: Durch Zufall viel mir auf, dass die Matrix auch
> funktioniert, wenn das externe Netzteil ausgeschaltet ist, also VCC2=0V.

Dann fließt Strom über die BE-Diode des folgenden Transistors aus dem 
Port.

Brauchen Deine LEDs keine Vorwiderstände? Wenn doch - aua.

von oszi40 (Gast)


Lesenswert?

Mirko S. schrieb:
> funktioniert auch
> wenn das externe Netzteil ausgeschaltet ist, also VCC2=0V.

-Wie lange? Elko-Restladung vom Netzteil ?
-Spannung VCC2 wirklich gemessen oder nur geglaubt?

von MaWin (Gast)


Lesenswert?

> Die Matrix läuft auch,

Du solltest mal über strombegrenzende Widerstände nachdenken.

Und du weisst hoffentlich, daß in dieser Schaltung VCC2 nicht höher als 
VCC1 sein darf.

Aber VCC(beide) höher sein muß als: 0.4V (Spannungsabfall untere 
Transistoren) + 2.1...3.6V (Spannungsabfall LEDs) + 0.7V 
(Spannungsabfall obere Transistoren) + 0.4V (Spannungsabfall uC Ausgang) 
und + Spannungsabfall Widerstand der bei dir fehlt.

Siehe
http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.8.1

von Bernd R. (Firma: Promaxx.net) (bigwumpus)


Lesenswert?

Die fehlenden Vorwiderstände der LEDs werden durch die fehlenden 
Basis-Widerstände der Transistoren (alle npn??) kompensiert ;-)

von mhh (Gast)


Lesenswert?

Bernd Rüter schrieb:
> Die fehlenden Vorwiderstände der LEDs werden durch die fehlenden
> Basis-Widerstände der Transistoren (alle npn??) kompensiert ;-)

Daher der Begriff "Nullkompensation". Man lernt nie aus.  :)

von Ralf G. (old-school) Benutzerseite


Angehängte Dateien:

Lesenswert?

so kann  man es auch machen ...

von Mirko S. (mojo)


Lesenswert?

So, erstmal danke für die vielen Antworten.

Philipp Burch schrieb:
> Der Pfeil in der B-E-Strecke stellt eine Diode
> dar. Dort ist auch wirklich eine vorhanden. Das heisst, dass deine
> Matrix bei fehlender VCC2 direkt aus dem Controller versorgt wird. Ist
> aber nicht besonders nett.

Das heißt also dass auf jeden Fall an VCC2 Spannung anliegen muss, 
richtig? Oder habe ich eine falsche Verdrahtung


mhh schrieb:
> Brauchen Deine LEDs keine Vorwiderstände? Wenn doch - aua.

Begrenze den Strom + Spannung über Labornetzteil. Ich gebe zu, dass es 
keine gute Lösung ist... Soll auch geändert werden.



oszi40 schrieb:
> -Wie lange? Elko-Restladung vom Netzteil ?
> -Spannung VCC2 wirklich gemessen oder nur geglaubt?
Wirklich gemessen, sogar nachdem das Netzteil nicht mehr mit der Matrix 
verbunden war.



Bernd Rüter schrieb:
> Die fehlenden Vorwiderstände der LEDs werden durch die fehlenden
> Basis-Widerstände der Transistoren (alle npn??) kompensiert ;-)
Sind alle npn. Was meinst du genau mit den Basiswiderständen?

von mhh (Gast)


Lesenswert?

Mirko S. schrieb:
> Was meinst du genau mit den Basiswiderständen?

Der Transistor spielt Kurzschluss für den Port auf ein 0,7V Niveau. 
Deshalb muss ein Widerstand vor die Basis zur Strombegrenzung.

von Mirko S. (mojo)


Lesenswert?

mhh schrieb:
> Der Transistor spielt Kurzschluss für den Port auf ein 0,7V Niveau.
> Deshalb muss ein Widerstand vor die Basis zur Strombegrenzung.

Und was für Werte sind da angebracht?

von mhh (Gast)


Lesenswert?

10 kOhm werden gern genommen.

von MaWin (Gast)


Lesenswert?

> so kann  man es auch machen ...

die ULM heissen allerdings ULN und wenn man TPIC6B595 stattdessen nehmen 
würde, könnte man sich die 595 sparen. Bei einem Darlington dessen 
Bezeichnung ich nicht lesen kann könnte man aber auch direkt aus dem 
75HC595 versorgen.

> 10 kOhm werden gern genommen.

Viel zu viel, rechne mal nach.

Es müssen (bei 20mA LEDs) 320mA geschaltet werden, bei Sättigung der 
Transistoren sollte 1/10 bis 1/20 des Strom in die Basis fliessen, also 
16 bis 32mA, die meisten Ports schaffen eh nur 20mA, mach 220 Ohm.

von Mirko S. (mojo)


Lesenswert?

Super :) werde das hier gleich mal umlöten, und mir noch einmal ein paar 
Gedanken richtung Strom, Verlust und Co. machen. Eine Frage hab ich aber 
leider noch:

MaWin schrieb:
> Und du weisst hoffentlich, daß in dieser Schaltung VCC2 nicht höher als
> VCC1 sein darf.

Ehrlich gesagt war mir das nicht bewusst. Mag mir das einer erläutern?

von mhh (Gast)


Lesenswert?

MaWin schrieb:
> Viel zu viel, rechne mal nach.

Ja stimmt, Matrix nicht beachtet.

von MaWin (Gast)


Lesenswert?

> Mag mir das einer erläutern?

Du verwendst in deiner Schaltung Emitterfolger

        VCC2
         |
Port ---|< NPN
         |E
        LEDs

Das Port kann eine Spannung von 0 Volt und von VCC1 Volt liefern.

Am Emitter, den LEDs, kommt immer diese Spannung -0.7V an, weil der 
Transistor ab 0.7V Spannung zwischen Basis und Emitter leitend ist.

Egal ob die Spannung VCC2 = VCC1 ist oder (beispielsweise) 3 Volt höher, 
es kommen nicht mehr als VCC1-0.7V an die LEDs.

Kaputt gehen die Transistoren nicht gleich (erst bei Überschreitung der 
80V des BC546) aber die LEDs sehen nicht mehr Spannung.

Ist VCC2 kleiner als VCC1 (oder offen) fliesst der Strom direkt aus den 
Ausgängen des ICs, die Transistoren haben keine verstärkende Wirkung, 
bei 20mA pro port ist ungefähr Shcluss, die LEDs sind nicht mehr 
ausreichnd hell (deine LED wurde dadurch vermutlich vor dem Ableben 
gerettet, mit angeschlossenen VCC2 und wirksamen Transistoren hätte es 
die LEDs wohl mangels Strombegrenzung durch Vorwiderstände zerfetzt).

Siehe den gegebenen Link für verschiedene Arten von Mutiplexanzeigen und 
deren Rahmenbedingungen.

von Mirko S. (mojo)


Lesenswert?

@MaWin:

Vielen Dank für diese Ausführung, da wird mir einiges klar.

Einmal noch Nachgefragt: Also dient ein Transistor nicht dazu eine 
Spannung zu verstärken, sondern einen Strom?

von MaWin (Gast)


Lesenswert?

> Also dient ein Transistor nicht dazu eine
> Spannung zu verstärken, sondern einen Strom?

Ganz klares JA bei bipolaren Transistoren.

Sie verstärken den Strom.

Will man mit ihnen was mit Spannungen machen,
muss man Spannung in Strom bzw. Strom in
Spannung per geschickt gewählten Widerständen
umsetzen.

Daraus ergeben sich die diversen Transistorgrundschaltungen.

Bei MOSFETs ist die Sache ein bischen anders,
da steuert eine Spannung einen Widerstand
(na ja, so ungefähr).

von Mirko S. (mojo)


Angehängte Dateien:

Lesenswert?

Gut das dieser Irrtum bei mir beseitigt wurde :)

Habe jetzt den Schaltplan ein bisschen geändert. Müsste jetzt meiner 
Meinung nach Stimmen. Bei der Stromberechnung ging ich von 20mA pro LED 
aus, und da ich eine 4x4 Matrix hab vom vierfachen Strom, also 80mA

von MaWin (Gast)


Lesenswert?

Passt, bis auf:

> von 20mA pro LED aus,
> und da ich eine 4x4 Matrix hab vom vierfachen Strom, also 80mA

4 x 4 sind immer noch 16, und 16 mal 20 sind immer noch 320mA,
die deine Spaltentransistoren schalten können müssen, was über
dem zulässigen Peak-Strom des BC546 liegt. Nimm BC338 oder BC368.

Denn die 20mA pro LED müssen IM MITTEL fliessen, da jede aber nur
1/4 der Zeit an ist, ist der Strom im AN-Moment 4 mal so hoch,
also 80mA und davon gehen 4 auf denselben Transistor, also 320mA.

von bitte löschen (Gast)


Lesenswert?

Du betreibst jetzt mehrere LEDs parallel an einen Vorwiderstand, was 
grundsätzlich problematisch ist, weil auch LEDs sich erwärmen und einen 
negativen Temperaturkoeffizienten haben, was dazu führt, dass die LED, 
die zufällig ein bisschen besser leitet, weil sie einen Bruchteil wärmer 
ist, sich anteilig mehr Strom zieht als die andere, was wiederum dazu 
führt, dass sie sich mehr erwärmt usw.. Das ganze verstärkt sich selbst, 
bis eine der LEDs ganz kaputt geht, und die nächste dran ist.
Ich würde in den Spalten, also an den Kollectoren von Q5 bis Q8 
zusätzliche Widerstände einbauen, um die LEDs, die gleichzeitig an sind, 
voneinander zu entkoppeln. So wie es jetzt aussieht, dürfte immer nur 
eine LED gleichzeitig leuchten.

von bitte löschen (Gast)


Lesenswert?

Nachtrag:
Ist natürlich quatsch, was ich geschrieben habe, wenn Du die Matrix 
spaltenweise und nicht zeilenweise betreibst, also in jeder Zeile nur 
eine LED gleichzeitig angesteuert wird.

von Diode (Gast)


Lesenswert?

>> die ULM heissen allerdings ULN und wenn man TPIC6B595 stattdessen nehmen
>> würde, könnte man sich die 595 sparen. Bei einem Darlington dessen
>> Bezeichnung ich nicht lesen kann könnte man aber auch direkt aus dem
>> 75HC595 versorgen.


wird der 75HC595 ohne einen Treiber nicht schaffen !

der erste 75HC595 muss die Zeilen treiben und damit alle LEDs der 
aktiven Spalten, d.H.  ( x mal ) Spalten Strom

von MaWin (Gast)


Lesenswert?

> wird der 75HC595 ohne einen Treiber nicht schaffen !

Hä?
15 x 8 Multiplex von 20mA nominal LEDs. Macht 160mA peak pro LED,
und 2.4A pro Zeilentransistor, der ein Darlington ist.
Keine Ahnung, welches Modell er da genommen hat,
das Bild ist zu klein um die Schrift zu erkennen,
aber ein BD676 "verbleiter Energie Darlington"
wäre angemessen. Der schaltet 2.4A.
Zu Sättigung braucht der erste Transi 1/10
Basisstrom und der zweite 1/10 davon, also 24mA.
Das schafft ein 74HC595. Es ist zu einer Zeit sowieso
nur ein Ausgang belastet, also auch kein Problem mit
Überschreitung von Ivss. Man braucht einen
Basisvorwiderstand von 220 Ohm.
Da der 74HC595 mit 5V versorgt wird, der Darlington
an 7.2V hängt, ergibt sich die Besonderheit, daß
auch im ausgeschalteten (595 liefert HI) Zustand
7.2 - 0.7 -0.7 -0.7 - 5v = 0.1V verbleiben die
durch den Spannungsteiler aus 220 Ohm und dem PullUp
auf unter 1.2V Ube gedrückt werden müssten. Dazu reicht
ein PullUp von 1k Ohm, dann schaltet des Darlington
sicher aus.

Ich sehe da nicht das Problem, warum man den ULN2803 nach
dem Zeilentreiber 75HC595 nicht weglassen könnte.

von Mirko S. (mojo)


Lesenswert?

MaWin schrieb:
> 4 x 4 sind immer noch 16, und 16 mal 20 sind immer noch 320mA

Es leuchten ja aber nicht alle 16 LED's gleichzeitig, sondern maximal 4 
Gleichzeitig.

An Q1-Q4 Lege ich das Muster an, und schalte mit Q5-Q8 jeweils die 
Spalte ein.

Also müsste durch die Transistoren Q1 bis Q4 maximal 20mA x 4(wegen nur 
ein viertel der Zeit an) = 80mA fließen und lediglich durch die 
Transistoren Q5-Q8 320mA oder?

von MaWin (Gast)


Lesenswert?

Natürlich geht's um Q5 bis Q8,

bei Q1 bis Q4 mit ihren 80mA wäre es schlimm,
wenn die 320mA schalten müssten, denn sie
haben den (hier unnötigen) 220 Ohm Basiswiderstand.
Selbst bei einer Emitterfolger-Stromverstärkung
von 100 würde das 3.2mA über 220 Ohm ziehen, also
0.7V Spannungsabfall bewirken, also nur 3.4V statt
4.1V für LED, 5 Ohm und Q5-Q8 Schalttransis,
was schon zu deutlichen Helligkeitseinbussen
führen würde.

Ich hab bei den Basiswiderständen vor Q1-Q4 nur
deswegen nicht gemeckert, weil sie bei 80mA noch
nicht störend auffallen.

von Ralf G. (old-school) Benutzerseite


Lesenswert?

@ MaWin

hatte Dich falsch verstanden ... ich dachte der 75HC595 sollte direkt 
die Zeile mit x Spalten treiben ...

die TPIC6B595 sind auf jeden Fall schwerer zu bekommen und 75HC595 + 
ULN2803 hatte ich nun mal liegen ...

Die Zeichnung(Schaltung) ist nur ein Auszug und hat eigentlich 64 (8x8) 
Spalten, deswegen auch der Leistungstransistor für die Zeilen ...

Bei dem Transistor handelt es sich um einen D45H8 (60V 8A)

das ganze wird von einem IOW56 angesteuert und funktioniert so wie es 
ist gut ...

http://greinert.dyndns.org/main/index.php?id=20091109hggw53kf775ms528gd5a5h27

Gruss Ralf

von Markus L. (lucky79)


Lesenswert?

Ralf G. schrieb:
> die TPIC6B595 sind auf jeden Fall schwerer zu bekommen und 75HC595 +
> ULN2803 hatte ich nun mal liegen ...
was ist da schwer zu bekommen?
RS hat die Dinger im SOIC und PDIP Format...
http://at.rs-online.com/web/search/searchBrowseAction.html?method=searchProducts&searchTerm=tpic6b595&x=0&y=0

von Ralf G. (old-school) Benutzerseite


Lesenswert?

wie gesagt ... ich hatte die 74HC595 und die ULN2803 liegen ... zum 
Zeitpunkt als die Schaltung entstanden ist, wusste ich gar nicht das es 
die TPIC6B595 gibt ... geschweige wo man die her bekommt ... und wenn 
man nach den TPIC6B595 googelt bekommt man hauptsächlich Datenblätter 
... aber keine Bezugsquellen ...  bei RS hatte ich nicht nach gesehen 
...

Gruss Ralf

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.