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!
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 :-)
@ 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
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!
Wenn das simmt was du schreibst, dann hol dir neue LEDs. Was sind das für ineffiziente LEDs wenn die mit 20mA nur 11mcd bringen. Da hat jede neue LED mehr bei nur n paar mA.
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.
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.
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.
@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!
@ 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
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
@ Stefan (Gast) >Aber woher kommen die 0,1 Volt? C-E Sättigungsspannung der Spaltentransistoren. >Was ist jetzt für die Basiswiderstände besser: 1k oder 470? Ist egal. MFG Falk
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
@ Stefan (Gast) >verwende (ich möchte Pins beim ATmega8 sparen), ändert sich dann an den >Werten meiner Widerstände etwas? Nein. >Passen für die Schieberegister Abblockkondensatoren von 100nF? Ja. MFG Falk
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
@ 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
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
Wenn Du dich außerhalb des Datenblatt bewegen möchtest, musst Du wohl eigene Testreihen fahren.
Stefan schrieb:
> Das ist aber ganz schöne Verschwendung der MC-CPU Ressourcen.
Inwiefern?
Alle 0.1ms ein Interrupt, der zur nächsten Stelle weiterschaltet ist für
einen µC so gut wie gar nichts.
:
Wiederhergestellt durch User
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.)
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.)
@ 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
>Pi ml Daumen kann man bei kleinen normalen/ultrahellen LEDs mit 20mA
etwa den halben Pulsstrom anstetzen
den halben? du meinst den doppelten.
@ Vlad Tepesch (vlad_tepesch) >>Pi ml Daumen kann man bei kleinen normalen/ultrahellen LEDs mit 20mA >etwa den halben Pulsstrom anstetzen >den halben? du meinst den doppelten. Ich mein den halben von dem Wert, der für 0,1ms im Datenblatt steht. MFG Falk
ach so. wenn die LEDs keine teuren sind, würd ich mir mal mit nem Messgerät und nem Poti die Helligkeitsunterschiede zwischen 20,40 und 80mA anschauen. meine billigen grünen standardleds werden über 30mA scheinbar nicht mehr heller. weswegen ich sie in meiner Matrix auch nur mit 35A betreibe
> weswegen ich sie in meiner Matrix auch nur mit 35A betreibe
hihi, werden sie da nicht doch heller?
Mit 35 Ampère müsste man auch ein größeres Wohnzimmer schon recht gut beleuchten können. Nur eben nicht sehr lang ;-)
>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. :-)
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.