Hilfe bei LED-Matrix Beschaltung

Gast #1267371
Lesenswert?

Hallo!

Ich möchte eine 8*8 Led Matrix bauen und mit einem ATmega8 ansteuern, 
ohne Schieberegister, direkt von den Ports aus.
Die LEDs haben eine Forward Voltage von 2.1 Volt, einen Peak Forward 
Current von 150mA und brauchen 20mA um mit 11mcd zu leuchten.
So viel ist mir klar: Da ich 8:1 multiplexe, muss ich mit höheren 
Strömen arbeiten, um eine gute Helligkeit der LEDs zu bekommen. Diese 
hohen Ströme kann der MC nicht schalten, darum brauche ich Transistoren.

Ich hab mal eine erste Version mit 2*2 Leds nach dem Artikel 
"LED-Matrix" hier auf der HP aufgezeichnet.
Am PortB sind die Splaten, am PortC die Reihen.

Stimmt der generelle Aufbau?
Reicht der eine Vorwiderstand R3 aus, oder braucht jeder Transistor 
seinen eigenen?
R1,R2,R4,R5 sind die Basiswiderstände.
Wie groß müssen die Basiswiderstände sein und welchen Transistortyp soll 
ich nehmen. Passt die BC-Baureihe, welches Ic muss er haben?
Haben die Transistoren bzw. ihre Basiswiderstände einen Einfluss auf die 
Wahl des LED-Vorwiderstands?

Ich hab zwar schon im Forum die Such-Funktion benutzt, aber nichts 
gefuden, was mir bei meinem konkreten Aufbau weiterhilft.
Also seid bitte nicht böse, dass ich das Theme zum tausendetsen Mal hier 
im Forum anfange.

Ich hoffe, ihr könnt mir helfen.
Vielen Dank!
Angehängte Dateien:
#1267385
Lesenswert?

Für Q5 und Q6 würde ich lieber PNP Typen nehmen.
( Low Side schalten: Also von einer Schaltung nach GND durchschalten: 
NPN
  High Side schalten: Also von Vcc zur Schaltung: PNP )

> Reicht der eine Vorwiderstand R3 aus, oder braucht jeder Transistor
> seinen eigenen?

Der Widerstand begrenzt den Strom, der durch die LED läuft. Wenn jetzt 
LED5 und LED6 gleichzeitig eingeschaltet sind, bestimmt der eine 
Widerstand den Strom, der durch beide LED läuft -> Leds leuchten 
dunkler, als wie wenn nur eine LED eingeschaltet wäre. Daher braucht 
jede LED-Spalte (oder LED-Zeile, je nachdem was du multiplexst) einen 
eigenen Vorwiderstand.

> Transistortyp soll ich nehmen.

Einen dessen Ice gross genug ist. Für deinen Zwecke werden es wohl 
BC337, BC327 und Konsorten tun.

> Wie groß müssen die Basiswiderstände sein

Muss man ausrechnen.
Wieviel Strom soll maximal über die C-E Strecke laufen. Aus dem 
Datenblatt hF heraussuchen. Durchdividieren. Damit ist der Basisstrom 
bekannt. Daraus ergibt sich der Vorwiderstand. Den zur Sicherheit noch 
halbieren, damit der Transi nur ja in die Sättigung geht.
Wahrscheinlich wird 1K ausreichen ( ohne Rechnen, rein nur geschätzt :-)
#1267412
Lesenswert?

@  Stefan (Gast)

>Stimmt der generelle Aufbau?

Nein.

Q5, Q5 sind Emitterfolger, die kriegen sinnvollerweise keinen 
Basisvorwiderstand.
R3 ist vollkommen falsch platziert, da müssen für jede Zeile ein R an 
die Emitter von Q5, Q6.
Dann musst du aber spaltenweise multiplexen.

MFG
Falk
Gast #1267486
Lesenswert?

Erstmal danke für eure Antworten!

Jetzt bin ich aber etwas verwirrt.
Soll ich jetzt:
(1) Q5 und Q6 in Emitterschaltung als PNPs mit Last am Kollektor (so wie 
von Karl heinz Buchegger beschrieben)
oder als
(2) Emitterfolger als NPNs (Falk Brunner)
aufbauen

Ich sehe gerade, dass die zweite Variante auch hier: 
http://www.mikrocontroller.net/wikifiles/6/64/LED_Matrix_8x5.png 
beschrieben ist.

Warum ist (2) richtig? Ich multiplexe ja die Spalten. Kann ich dann 
überhaupt mein Muster an die Zeilen anlegen?
Was ist an (1) falsch?

Warum brauch ich einen Transistor mit Ic=1A. Ich will ja nur 150mA 
schalten. Würde da nicht einer mit Ic=0.2A (z.B: BC 547) reichen?

Danke!
Gast #1267513
Lesenswert?

Ich versuche, die Kosten möglichst gering zu halten.
Diese LEDs kosten 5 Cent pro Stück und leuchten bei 20mA trotzdem noch 
hell genug.
Low-current LEDs sind mir viel zu teuer, vor allem wenn ich 64 Stück 
davon brauche. Da nehme ich lieber ein paar Transistoren in Kauf.
#1267514
Lesenswert?

Stefan schrieb:
> Erstmal danke für eure Antworten!
>
> Jetzt bin ich aber etwas verwirrt.
> Soll ich jetzt:
> (1) Q5 und Q6 in Emitterschaltung als PNPs mit Last am Kollektor (so wie
> von Karl heinz Buchegger beschrieben)
> oder als
> (2) Emitterfolger als NPNs (Falk Brunner)
> aufbauen

Such dir was aus.

> Warum brauch ich einen Transistor mit Ic=1A. Ich will ja nur 150mA
> schalten. Würde da nicht einer mit Ic=0.2A (z.B: BC 547) reichen?

Würde er.
Aber einer der 1A kann, kostet auch nicht mehr.
Und nur weil er 1A abkann, heißt das ja nicht, dass du 1A fliessen 
lassen musst. Das bedeutet nur, dass er soviel aushält. Und da er mehr 
aushält, ist er auch ein klein wenig immuner gegen Durchbrennen.
#1267518
Lesenswert?

Stefan schrieb:
> Erstmal danke für eure Antworten!
>

> Warum ist (2) richtig? Ich multiplexe ja die Spalten.

Überleg dir einfach, durch welche LED und vor allem welchen Widerstand 
der Strom läuft, wenn du Spalte für Spalte durchgehst. Es ist immer nur 
1 Spalte eingeschaltet, d.h. der Strom geht immer genau durch 1 
Widerstand und 1 LED. Und das in jeder Zeile.

D.h. diese Schaltung ist für Spaltenmultiplex ausgelegt. Wnnn du die 
Zeilen multiplexen willst, dann musst du die Widerstände anders 
anordnen.
Gast #1267675
Lesenswert?

@Karl heinz Buchegger: Das mit den Widerständen ist mir schon klar.

Ich frage mich, warum es keinen Unterschied macht, ob ich
"Q5 und Q6 in Emitterschaltung als PNPs mit Last am Kollektor"
oder
"Q5 und Q6 als Emitterfolger als NPNs" verwende?

Ich hab jetzt im Anhang die Verion mit Emitterfolger drinnen.

Stimmt das alles so?

Jetzt brauche ich nur noch die Werte für R1 bis R8.
Wenn ich mit 5 Volt arbeite, die LEDs eine Durchlassspannung von 2.1 
Volt haben, sind dann Pulsströme von 136mA okay? Dann käme ich auf 22 
Ohm.
Der Widerstand müsste dann einer mit 0.5 W sein, richtig?

Wie wähle ich die Werte von R9 bis R16?
Vom BC337 gibt es den 16/25/40 mit Hfe (minimal) = 100/160/250
Muss ich den Hfe_max Wert auch beachten, der liegt nämlich bei 250 (beim 
16er)?
Wenn ich 150mA zwischen Collector und Emitter zulassen will, und mit 
Hfe=100 rechne, komme ich auf 2,8kOhm. Halbiert sind das 1,4. Würde da 
ein Widerstand von 1,2 KOhm passen?
Der Widerstand müsste nur einer mit 1/10 Watt sein, oder?

Danke!
Angehängte Dateien:
#1267881
Lesenswert?

@  Stefan (Gast)

>Jetzt brauche ich nur noch die Werte für R1 bis R8.

Wenn ich mit 5 Volt arbeite, die LEDs eine Durchlassspannung von 2.1
Volt haben, sind dann Pulsströme von 136mA okay? Dann käme ich auf 22
Ohm.
Der Widerstand müsste dann einer mit 0.5 W sein, richtig?

Ich komme auf ~15 Ohm

R = U / I = (5-2,1-0,7-0,1) / 140mA = 15 Ohm

0,5W sind OK.

>Wie wähle ich die Werte von R9 bis R16?

Nimm 470 Ohm und gut.

>Vom BC337 gibt es den 16/25/40 mit Hfe (minimal) = 100/160/250
>Muss ich den Hfe_max Wert auch beachten, der liegt nämlich bei 250 (beim
>16er)?

Ist hier egal.

>Wenn ich 150mA zwischen Collector und Emitter zulassen will, und mit
>Hfe=100 rechne, komme ich auf 2,8kOhm. Halbiert sind das 1,4. Würde da
>ein Widerstand von 1,2 KOhm passen?

Geht auch, sollte man aber etwas mehr Reserve gönnen. 1K oder so.

>Der Widerstand müsste nur einer mit 1/10 Watt sein, oder?

Reicht.

MfG
Falk
Gast #1268007
Lesenswert?

Hallo!

Vielen Dank für eure Hilfe!

@Falk: R = U / I = (5-2,1-0,7-0,1) / 140mA = 15 Ohm
Ach so, die 0,7 Volt fallen ja noch zwischen Basis und Emitter ab, 
richtig?
Aber woher kommen die 0,1 Volt?

Was ist jetzt für die Basiswiderstände besser: 1k oder 470?

Viele Grüße,
Stefan
Gast #1325725
Lesenswert?

Hallo!

Wenn ich meine LEDs nicht über die 8 Spalten- bzw. Zeilenleitungen 
direkt an den MC anschließe, sondern dafür zwei 74HC595 Schieberegister 
verwende (ich möchte Pins beim ATmega8 sparen), ändert sich dann an den 
Werten meiner Widerstände etwas?

Eigentlich müsste alles beim Alten bleiben, oder übersehe ich etwas?

Passen für die Schieberegister Abblockkondensatoren von 100nF?

Viele Grüße,

Stefan
Gast #1327313
Lesenswert?

Ich möchte nur die Zeilen an ein Schieberegister anschließen.

Die Spalten werden ja gemultiplext. Sie liegen über eine 
Emitterschaltung (NPN) gegen GND. Wenn ich jetzt an den NPN-Transistor 
eine log. 1 anlege, dann aktiviere ich damit die Spalte, bei log. 0 ist 
die Spalte aus, ist das soweit ichtig?

Es soll ja immer nur eine Spalte aktiv sein. Könnte ich die Spalten über 
einen 74HCT238 ansteuern (um Portpins zu sparen)?

Bei diesem IC sind VCC und GND auf gegenüberliegenden Seiten des 
DIP-Gehäuses. Ist da ein Abblockkondensator sinnvoll? Wenn ja, 100nF?

Vielen Dank!

Stefan
#1327368
Lesenswert?

@  Stefan (Gast)

>die Spalte aus, ist das soweit ichtig?

Schaltplan!

>Es soll ja immer nur eine Spalte aktiv sein. Könnte ich die Spalten über
>einen 74HCT238 ansteuern (um Portpins zu sparen)?

Ja.

>Bei diesem IC sind VCC und GND auf gegenüberliegenden Seiten des
>DIP-Gehäuses. Ist da ein Abblockkondensator sinnvoll? Wenn ja, 100nF?

An einem Digital-IC ist eine Abblockkondensator IMMER NOTWENDIG! 100nF 
sind der Standardwert, der praktisch immer OK ist.

MFG
Falk
Gast #1334288
Lesenswert?

Ich hätte noch eine Frage:

Wie lange kann ich die einzelen LEDs eingesschaltet lassen? Zu denen, 
die ich verwende habe ich leider kein Datenblatt. In anderen 
Datenblätter habe ich aber sowas wie: "peak forward current: 130mA (1/10 
duty cycle, 0.1ms pulse width)" gelesen.
Das heißt, jede LED dürfte nur 0,1ms lang an sein und 0,7ms aus (ich 
multiplexe ja 8). Das wäre dann eine Frequenz von 1250Hz (1/0,0008).

Das ist aber ganz schöne Verschwendung der MC-CPU Ressourcen. Kann ich 
die Displayfrequenz auch kleiner machen, sodass jede LED dann halt 
länger als 0,1ms an ist, ohne dass sie druchbrennen?

MFG
Stefan
Gast #1334326
Lesenswert?

Du meinst wohl alle 0,1 ms.

Aber Du hast wahrscheinlich Recht. Ich muss halt meine Daten per SPI ins 
Schieberegister laden, aber bei 16MHz Systemtakt sollte das schon gehen.

Andere Frage: Ich verwende ein unstabilisiertes 300mA Netzteil. Kommt 
das überhapt mit meiner Schaltung klar? Ich hab ja 8 LEDs und durch jede 
(wenn alle an sind) fließt 140mA. (Ich verwende einen 7805 für meine 
Schaltung.)
#1334342
Lesenswert?

Stefan schrieb:
> Du meinst wohl alle 0,1 ms.
>
> Aber Du hast wahrscheinlich Recht. Ich muss halt meine Daten per SPI ins
> Schieberegister laden, aber bei 16MHz Systemtakt sollte das schon gehen.


16Mhz  sind 16000000 Instuktionen pro Sekunde.
Wieviele Takte benötigt man für den Anzeigewechsel im Mulitplex? Sagen 
wir einmal 20. Macht pro Sekunde 10000 * 20 Instruktionen = 200000

   16000000   .... 100%
     200000   .... x

x = 0.0125

Dein Multiplex verbraucht gerade mal 1 Hunderstel Prozent der 
Rechenzeit.

> Andere Frage: Ich verwende ein unstabilisiertes 300mA Netzteil. Kommt
> das überhapt mit meiner Schaltung klar? Ich hab ja 8 LEDs und durch jede
> (wenn alle an sind) fließt 140mA. (Ich verwende einen 7805 für meine
> Schaltung.)

Wenn alle 8 LED an sind, wollen sie 8 * 140mA = 1.12A  haben.
Wenn dein Netzteil nur 300mA liefern kann, hast du ein Problem


(Hast du schon ausprobiert, wie stark die Helligkeit einsackt, wenn du 
den Stromverbrauch reduzierst, auf, keine Ahnung, 30 oder 40mA. Kommt 
natürlich auf die Anwendung an, aber meistens benötigt man ja sowieso 
keine 7-Segment Anzeige, die einem den Sehpurpur von der Netzhaut 
brennt.)
#1334407
Lesenswert?

@  Karl heinz Buchegger (kbuchegg) (Moderator)

>Dein Multiplex verbraucht gerade mal 1 Hunderstel Prozent der
>Rechenzeit.

Niemand multiplext LEDs mit 10kHz, nur weil das als Standardmessug immer 
im Datenblatt steht.

Pi ml Daumen kann man bei kleinen normalen/ultrahellen LEDs mit 20mA 
etwa den halben Pulsstrom anstetzen und dann normal mit 1KHz oder so 
muxen.

Bei PowerLEDs ala Luxeon & Co ist das was anderes, die verkraften keine 
sonderlich hohen Pulsströme.

MfG
Falk
Gast #1334781
Lesenswert?

>Mit 35 Ampère müsste man auch ein größeres Wohnzimmer schon recht gut
>beleuchten können.

Eben nicht, wenn sie oberhalb 30mA nicht mehr heller werden, dann sind 
sie auch bei 30A nicht heller - oder?

Deine Aussage stimmt aber, wenn man auf LEDs verzichtet und z.B. einen 
entsprechenden Xenonscheinwerfer nimmt. :-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren