Hallo, Ich habe eine 21x7 LED-Matrix mit drei 74HC595 8-Bit Shift-Registern für die Spalten gebaut. Momentan habe ich in meinem Prototypaufbau 1k Ohm Widerstände an den 7 Reihen, die von je einem Arduino-Pin (ATmega328P) angesteuert werden (Multiplexing). Die LEDs sind diffuse, blaue 5mm LEDs mit, ich glaube, 20mA und ca. 3V. Sollte ich da noch Transistoren einbauen oder die Widerstände von den Reihen entfernen und Widerstände an den 21 Spalten verbauen? Wenn ja, welche? Dankeschön. :)
Die Schaltung hat diverse Stolpersteine: 1) Eine LED kann jeweils nur während weniger als einem siebtel der Zeit leuchten. Reicht dies aus? 2) Es muss geprüft werden wie viel Zeit für das Laden der Schieberegister benötigt wird. 3) Der 74HC595 verträgt pro IC maximal 70mA => pro Pin etwa 8mA. Für einen grösseren Strom Transistorarray verwenden. 4) Pro Zeile können gleichzeitig 21 LED leuchten, prüfen ob der Port diesen Strom verträgt. 5) Die LED sollte man nicht parallel schalten. Pro Spalte einen Widerstand benutzen. 6) Die Umkehrung der Spaltenreihenfolge 21...17 ist nicht zu empfehlen. Das bringt nur unnötiges Kopfzerbrechen beim Programmieren. Vielleicht sind LED mit integriertem WS2812 eine Alternative.
@Harlekin 1) Ja, der Prototypaufbau funktioniert ja. Die Helligkeit ist auch recht gut. 5) Das mit den Widerständen hab ich mir schon gedacht und die sind auch schon längst gekauft. Wollte für den Prototypen auf dem Breadboard nicht 21 Widerstände verwenden. Auf der Platine werde ich das dann machen. 6) Ups, das ist nur ein Fehler auf dem Schaltplan. Ist mir bis jetzt gar nicht aufgefallen. In Wirklichkeit hab ich das im Aufbau natürlich nicht umgekehrt. Die anderen Punkte werde ich später genau durchgehen, wenn ich wieder zu Hause bin. Vielen Dank für deine Antwort! :)
Harlekin schrieb: > Die Schaltung hat diverse Stolpersteine: > 1) Eine LED kann jeweils nur während weniger als einem siebtel der Zeit > leuchten. Reicht dies aus? > 2) Es muss geprüft werden wie viel Zeit für das Laden der > Schieberegister benötigt wird. > 3) Der 74HC595 verträgt pro IC maximal 70mA => pro Pin etwa 8mA. Für > einen grösseren Strom Transistorarray verwenden. > 4) Pro Zeile können gleichzeitig 21 LED leuchten, prüfen ob der Port > diesen Strom verträgt. > 5) Die LED sollte man nicht parallel schalten. Pro Spalte einen > Widerstand benutzen. > 6) Die Umkehrung der Spaltenreihenfolge 21...17 ist nicht zu empfehlen. > Das bringt nur unnötiges Kopfzerbrechen beim Programmieren. > > Vielleicht sind LED mit integriertem WS2812 eine Alternative. Diesen Ausführungen kann man sich nur anschließen. Ich kann mir nicht vorstellen das die Leds gleich hell leuchten, ohne zusätzliche Treiber. Ist die Verwendung der Schieberegister ein Muss bzw. eine Vorgabe? Sonst würde ich 3 Stück MAX7219 vorschlagen. Die würden eine 24*8 Matrix ergeben. Zusätzliche Treiber bzw. Vorwiderstände für die Leds wären nicht notwendig. Ein weiterer Vorteil wäre das weniger Ports am uC belegt werden. Max G. schrieb: > Sollte ich da noch Transistoren einbauen oder die Widerstände von den > Reihen entfernen und Widerstände an den 21 Spalten verbauen? Wenn ja, > welche? Anstelle des 74HC595 kannst du dessen „großen“ Bruder TPIC6B595 nehmen. Der verträgt deutlich mehr Strom, die Ausgänge schalten allerdings gegen GND. http://www.ti.com/lit/ds/symlink/tpic6b595.pdf Anodentreiber z.B. UDN2981
:
Bearbeitet durch User
Max G. schrieb: > Sollte ich da noch Transistoren einbauen Bestimmt nicht. Max G. schrieb: > der Prototypaufbau funktioniert ja. Die Helligkeit ist auch recht gut Ich meine, hallo, eine LED bekommt bei dir (5V-3.2V)/1000/7/21 = 0.012mA ab und leuchtet mit 0.06% ihrer Datenblatt Helligkeit, da kannst du doch super zufrieden sein. Wer so ein Display aufbauen könnte und Grundkenntnisse der Elektronik verstanden hätte würde erstens nicht 1k Widerstände in die 7 Leitungen machen, weil damit eine LED nur 1:21 der Zeit an sein kann, sondern die Widerstände in die 21 Leitungen, dann reicht schon ein 1:7 Multiplex. Und er würde ausrechnen: 20mA 1/7 der Zeit macht 140mA Pulsstrom für die Helligkeit laut Datenblatt, man beachte deren zulässigen Pulsstrom, oft nur 100mA. 21 LEDs mit 140mA macht 2.94A Strom über die 7 Leitungen, was auch der Gesamtstromaufname vom Netzteil entspricht. Man wählt dann selbstverständlich MOSFETs für 3A und Treiber wie ULN2003 für die 21 Leitungen und bekäme ein Display was nicht nur im dunklen Zimmer sondern auch bei Tageslicht draussen ablesbar wäre. Dabei dreht sich die Polarität der LEDs um, also P-Kanal LogicLevelMOSFETs und ermöglicht auch Konstantstromtreiber wie TB62715 Grundlagen gibts hier http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.8.1 Man kann natürlich auch alle Grundlagen ignorieren und das Rad erneut als Spirale erfinden.
Jörg R. schrieb: > Max G. schrieb: >> Sollte ich da noch Transistoren einbauen oder die Widerstände von den >> Reihen entfernen und Widerstände an den 21 Spalten verbauen? Wenn ja, >> welche? > > Anstelle des 74HC595 kannst du dessen „großen“ Bruder TPIC6B595 nehmen. > Der verträgt deutlich mehr Strom, die Ausgänge schalten allerdings gegen > GND. Wenn es SMD sein darf, das wäre dieser IC vielleicht interessant: http://www.ti.com/lit/ds/symlink/tlc59282.pdf Da reicht ein Widerstand aus, um den Strom für 16 LED zu setzen und die Ansteuerung ist die gleiche, wie beim 75HC595
Er lädt die Daten für eine koplette Zeile und gibt diese dann über den PIN "LED1" frei und lässt die n bissl an. Dann macht er die oberste Zeile wieder aus und lädt die 24Bits für die Zeile draunter. Die 595er halten ja den letzten Zustand. Jetzt wird die obere Zeile abgeschaltet, die Daten in die Latches der 595er übernommen und die Zeile "LED2" eingeschaltet. Wenn ich dieses Spiel mach so bis zur untersten Zeile durchspiel, komme ich auf einen Multiplextakt von 1/7tel, nicht auf 1/24tel. Das ginge doch noch. Problematischer sieht es tatsächlich aus, wenn mal alle LEDs in einer Zeile leuchten sollen. Dann fliesst (begrenzt durch den gemeinsamen 1K) natürlich immernoch nur ein Strom von ca 2mA. Dieser aber mehr oder weniger gleichmässig durch alle LEDs. Erstens sicher total duster, zweitens "hängen" alle 24 LEDs an einem Vorwiderstnd parallel. Aber gut - wurde schon gesagt. Was noch nicht gesagt wurde: bitte an den 595er auch die Pinbeschriftung (wenigstens ansatzweise) drannschreiben UND die obligatorischen 100nF Abblockkondensatoren nicht vergessen. Vorwiderstände 33-47R in die Ausgänge der 595er und an die Anschlüsse links (LED1-LED7) einen npn Bipolar-Transistor (Kollektor an den Anschluss, Emitter an Masse, basis über 2K2 an den Portpin, welcher jetzt den LED1-7 treibt. der 595er überlebt das sicher, auch wenn mal alle 8LEDs gleichzeitig an sein sollten. Aber: Abblockkondesnator nicht vergessen Wichtig scheint mir auch, auf die Phasenlage von Takt und Datensignal hinzuweisen. Oft funktionieren diese Schieberegisterkonstruktionen auf dem falschen Phasentakt nur, weil die Datenhaltezeit ausnahmsweise passt, hier mal ruhig den SPI-Mode prüfen, sonst wundert man sich, wenn das bei längeren Leitungen geht, bei kurzen nicht und vice versa.
... die oberste Zeile kann natürlich an bleiben, bis die Daten für die Zeile darunter komplett eingeschoben sind. Nur für den Zeitpunkt der Datenübernahme sollten man mal kurz alles aus machen, sonst gibt es lustige Geisterbildeffekte. Und ja: man kann auch mit der untersten Zeile anfangen. Obe einem die Kombinatorik so zusagt, hängt vom Handling der Software ab (Schattenspeicher usw) 7x24 oder 27x7 muss jeder selbst wissen, wie er die Daten (Schriftfont zB) im Flash ablegt und diese zur Anzeige bringen will.
MaWin schrieb: > Ich meine, hallo, eine LED bekommt bei dir (5V-3.2V)/1000/7/21 = 0.012mA > ab und leuchtet mit 0.06% ihrer Datenblatt Helligkeit, da kannst du doch > super zufrieden sein. > > Wer so ein Display aufbauen könnte und Grundkenntnisse der Elektronik > verstanden hätte würde erstens nicht 1k Widerstände in die 7 Leitungen > machen, weil damit eine LED nur 1:21 der Zeit an sein kann, sondern die > Widerstände in die 21 Leitungen, dann reicht schon ein 1:7 Multiplex. Also wenn du nicht höflicher antworten kannst, dann vielleicht lieber gar nicht? 1. Die LEDs leuchten hell genug. 2. Was haben die Widerstände mit dem Multiplexing zu tun? Ich wollte im fertigen Aufbau ja kleinere Widerstände an den Spalten verbauen, aber ich wollte im PROTOTYP-AUFBAU nicht 21 Widerstände auf mein Breadboard machen und kleinere als 1kO, von denen ich mindestens 7 Stück habe, hatte ich nicht. Sonst ein Dankeschön an alle. Werde alles nochmal durchgehen, wenn ich wieder zu Hause bin und den Aufbau dann vielleicht verändern. Funktionieren tut meine Matrix aber schon. Ich wollte ja nur wissen, ob der Aufbau vllt irgendwie schädlich für den ATmega328P oder sonst irgendwie ineffizienz sein könnte.
@ Max G. (max2002) >1. Die LEDs leuchten hell genug. Weil es superhelle LEDs sind, Glück gehabt. >2. Was haben die Widerstände mit dem Multiplexing zu tun? Sie begrenzen den Strom für die LEDs. Wenn man die in die falsche Seite einbaut, vermindert sich der LED-Strom deutlich. >fertigen Aufbau ja kleinere Widerstände an den Spalten verbauen, aber >ich wollte im PROTOTYP-AUFBAU nicht 21 Widerstände auf mein Breadboard >machen Das kann aber auch mal schief gehen, wenn man seinen Prototypenaufbau aus Faulheit nicht so aufbaut, wie man es später machen will. >Funktionieren tut meine Matrix aber schon. Ich wollte ja nur wissen, ob >der Aufbau vllt irgendwie schädlich für den ATmega328P oder sonst >irgendwie ineffizienz sein könnte. Ist er, weil sich 21 LEDs einen Vorwiderstand teilen. Und weil dein AVR nicht viel mehr als 40mA Pro Ausgang liefern kann. Ist aber bei 1k Vorwiderstand auch egal, da fließen so oder so nur wenig mehr als 3 mA Pulsstrom.
Harlekin schrieb: > 6) Die Umkehrung der Spaltenreihenfolge 21...17 ist nicht zu empfehlen. > Das bringt nur unnötiges Kopfzerbrechen beim Programmieren. Hallo, Ich habe ganz andere Meinung: wenn dadurch PCB einfacher wird, lohnt es sich, die Ports anders anzuordnen, als von Port vorgegeben ist. Ein paar Zeilen auf C bedeutet viel weniger Aufwand, als zwischen zwei 2,54 mm Raster mehrere Leitungen zu führen. Ich mache das immer so: zuerst Platte, dann Programm. Alternative Funktionen von Pins sollten natürlich beachtet werden, ansonsten so wie das für die Platte besser ist. Viele Grüße,
Max G. schrieb: > Also wenn du nicht höflicher antworten kannst, dann vielleicht lieber > gar nicht? Also, wenn man nur die Waldorf-Antwort "Max-Kevin, das hast du aber schön gemacht, du bist der Beste" hören will, warum fragst du dann überhaupt ? Max G. schrieb: > Was haben die Widerstände mit dem Multiplexing zu tun? Wenn man wie du trotz mehrmaligem Daraufhinweisen mehrerer Leute einfach nicht begreifen will, wie Widerstandsanordnung und Multiplexing zusammenhängt, und keinesfalls versucht irgendwelche vorgemachten Berechnungen die nicht über Grundschulmathematik gehen nachzuvollziehen, dann sollte man sich vielleicht ein anderes Hobby suchen, wie wäre es mit Tanzkursen wenn dir an vorgeblicher Höflichkeit so viel mehr liegt, als an Inhalten ?
:
Bearbeitet durch User
Jörg R. schrieb: > Anstelle des 74HC595 kannst du dessen „großen“ Bruder TPIC6B595 nehmen. > Der verträgt deutlich mehr Strom, die Ausgänge schalten allerdings gegen > GND. > > http://www.ti.com/lit/ds/symlink/tpic6b595.pdf > > Anodentreiber z.B. UDN2981 Als Anodentreiber könnte man die Reihe MCP14 nehmen. Die sind zwar als Treiber für MOSFET gedacht, können aber auch als Treiber für LED dienen. Vorteil bleibt unter anderem: die können als Pegelwandler arbeiten und bis 18 Volt kommutieren - das kann nützlich sein, wenn für jeden Punkt viele LEDs seriell geschaltet werden, besonders blau oder UV. Ansonsten hätte ich auch lieber MAX7219 nehmen: die entlasten Kontroller. Einmal 8 Worte aufschreiben - und vergessen. Viele Grüße,
:
Bearbeitet durch User
Michael B. schrieb: > Max G. schrieb: >> Was haben die Widerstände mit dem Multiplexing zu tun? > > Wenn man wie du trotz mehrmaligem Daraufhinweisen mehrerer Leute einfach > nicht begreifen will, wie Widerstandsanordnung und Multiplexing > zusammenhängt, und keinesfalls versucht irgendwelche vorgemachten > Berechnungen die nicht über Grundschulmathematik gehen nachzuvollziehen, > dann sollte man sich vielleicht ein anderes Hobby suchen, wie wäre es > mit Tanzkursen wenn dir an vorgeblicher Höflichkeit so viel mehr liegt, > als an Inhalten ? Willst du mir sagen, dass ich total verblödet bin? Widerstände begrenzen den Strom. Beim Multiplexing schalte ich durch die 7 Zeilen durch. Die Widerstände beeinflussen mein Multiplexing doch nicht. Sie begrenzen nur den Strom, aber sonst nichts. Gut, ist vllt nicht gut, dass ich auf dem Breadboard die Widerstände in die Reihen mache, aber wenn du meine Antworten gelesen hättest, wüsstest du, dass ich im fertigen Aufbau kleinere Widerstände in die Spalten machen werde. Den zweiten Teil der Antwort hättest du dir aber echt sparen können. Ich lerne noch, also nehme doch bisschen Rücksicht darauf, dass ich nun auch nicht alles weiß, sonst hätte ich ja nicht gefragt...
Maxim B. schrieb: > Ich habe ganz andere Meinung: > wenn dadurch PCB einfacher wird, lohnt es sich, die Ports anders > anzuordnen, als von Port vorgegeben ist. Ein paar Zeilen auf C bedeutet > viel weniger Aufwand, als zwischen zwei 2,54 mm Raster mehrere Leitungen > zu führen. Im Hobbybereich ist das vollkommen in Ordnung. Hingegen im industriellen Umfeld würde ich mir solche Tricks zweimal überlegen. Wenn man bei jeder PCB-Version die Bitreihenfolge ändert, dann freuen sich die Programmierer weniger. Die Softwarepflege wird erschwert. Ein Firmwareupdate funktioniert nur bei einer bestimmten Hardware. Softwaretests werden aufwendiger.
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.