Sieben mal 5x7 LED Matrizen an µC betreiben

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 19 10 2024  12:18:33      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte

Gehe zu Seite ( 1 | 2 Nächste Seite )      


Autor
Sieben mal 5x7 LED Matrizen an µC betreiben
Suche nach: led (32542)

    







BID = 495118

stepp64

Gesprächig


Avatar auf
fremdem Server !
Hochladen oder
per Mail an Admin

Beiträge: 162
 

  


Hallo,

ich möchte gerne sieben von der im Bild dargestellten LED-Matrix an einen µC anschließen. Meine Idee wäre, für jede Matrix ein Schieberegister zu planen, welches immer nur eine Zeile ansteuert. Die Spalten würde ich alle parallel schalten (also immer die 1. Spalte der 1. Matrix mit der 1. Spalte der 2. Matrix usw.).

Das Programm soll nun eine logische Null durch die Schieberegister schieben und im richtigen Moment jeweils die entsprechenden fünf Spalten einschalten. Wäre ja der klassische Multiplexbetrieb.

Nun die Frage: Welche Frequenz müsste ich vorsehen, damit es nicht flimmert? Bei einer Wiederholungsrate von 25Hz und 35 Zeilen kommt man ja auf ca. 1kHz. Wie hoch sollte man den Impulsstrom berechnen, damit man die LED Punkte noch hell genug sieht ohne das die LEDs abrauchen? Wäre eine Notabschaltung vorzusehen, damit bei einem Ausfall der Taktung die LEDs nicht durchbrennen? Wie könnte eine solche Notabschaltungsschaltung aussehen? Hätte jemand einen Link, wo schon mal solche Schaltungen gebaut wurden? Danke schon mal für eure Mühe.

Gruß
Sven




[ Diese Nachricht wurde geändert von: stepp64 am 27 Jan 2008 20:21 ]

BID = 495133

Racingsascha

Schreibmaschine



Beiträge: 2247
Wohnort: Gundelsheim
ICQ Status  

 

  

Ich würde alle 1.Zeilen an einen Portpin anschliessen, alle 2. Zeilen an den nächsten usw, der 8. macht den Takt für die Schieberegister. Damit kannste alle Zeichen in einem "Rutsch" durchlaufen lassen. Aber wie du das dann genau machst bleibt dir überlassen


Zitat :
Wie hoch sollte man den Impulsstrom berechnen, damit man die LED Punkte noch hell genug sieht ohne das die LEDs abrauchen

Das kommt auf die LEDn an. Der Pulsstrom sollte im Datenblatt stehen. Allerdings würde ich mich erst langsam rantasten, denn mehr Strom bringt ab einem bestimmten Wert keine zusätzliche Helligkeit mehr. Hab hier eine 4x4x4 Matrix aus roten Standard-LEDn laufen, der Pulsstrom beträgt etwa 30mA. Mehr wäre zwar möglich, bringt aber keinen sichtbaren Helligkeitszuwachs.


Zitat :
Wäre eine Notabschaltung vorzusehen, damit bei einem Ausfall der Taktung die LEDs nicht durchbrennen? Wie könnte eine solche Notabschaltungsschaltung aussehen?
Mit dem Watchdog im ansteuernden µC.

_________________
Fnord ist die Quelle aller Nullbits in deinem Computer.
Fnord ist die Angst, die Erleichterung, und ist die Angst.
Fnord schläft nie.

[ Diese Nachricht wurde geändert von: Racingsascha am 27 Jan 2008 20:57 ]

BID = 495140

Benedikt

Inventar

Beiträge: 6241


Zitat :
Racingsascha hat am 27 Jan 2008 20:54 geschrieben :

Hab hier eine 4x4x4 Matrix aus roten Standard-LEDn laufen, der Pulsstrom beträgt etwa 30mA. Mehr wäre zwar möglich, bringt aber keinen sichtbaren Helligkeitszuwachs.

Ja, das ist das Problem bei den superroten (oder wie die heißen). Alle anderen LEDs sind weitestgehened linear. Bis 100mA sollten es keine Probleme sein. Bei 1/8 Mux würde ich etwa 40mA wählen, das sollte unter normalen Lichtbedingungen reichen.

BID = 495159

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach


Zitat :
Bei einer Wiederholungsrate von 25Hz
Das ist viel zu langsam. Auch bei 50Hz sieht mans noch flimmern.
Am besten gehst du über 100Hz und selbst da kann es bei schnellen Kopfbewegungen noch zu irritierenden Strobokoperscheinungen kommen.
Dein µC muss also schon etwas tun fürs Geld.


Zitat :
Wie hoch sollte man den Impulsstrom berechnen, damit man die LED Punkte noch hell genug sieht ohne das die LEDs abrauchen?
Das steht im Datenblatt des Displays.


Zitat :
Wie könnte eine solche Notabschaltungsschaltung aussehen?
Bau dir mit einem Monoflop einen Missing Pulse Detector.

_________________
Haftungsausschluß:



Bei obigem Beitrag handelt es sich um meine private Meinung.



Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.



Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !

BID = 495175

stepp64

Gesprächig


Avatar auf
fremdem Server !
Hochladen oder
per Mail an Admin

Beiträge: 162

Ich glaub ich hab es verstanden. Nur noch mal zur Sicherheit. Im Datenblatt steht:

Peak Forward Current = 150mA
1/10 Duty Cycle, 0.1ms Pulse Width

Ich versteh das so: Wenn ich 150mA auf die LEDs gebe, dann darf ich das nur maximal 100µs lang machen. Danach muss ich eine Pause von 1ms Länge abwarten, bevor ich wieder 100µs lang 150mA auf die LED geben darf. Ist das so richtig verstanden? Ich werde natürlich erst mal nur 30-40mA drauf geben. Wie lang darf denn dann der Impuls sein? Das geht aus dem Datenblatt nicht hervor.

Das mit dem Pulsedetektor muss ich mir mal noch durchdenken. Da hab ich im Moment keine rechte Idee. Vor allem, wie ich den Strom dann schnell genug abschalte. Irgendwo hatte ich so eine Schaltung auch schon mal entdeckt. Leider weiß ich nicht mehr wo.

Ciao
Sven

BID = 495180

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach


Zitat :
Danach muss ich eine Pause von 1ms Länge abwarten,
Du brauchst nur 0,9ms zu warten, denn die 10% beziehen sich auf die Periodendauer.

BID = 495208

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

Moin,

bin auch grad (mal wieder) an einem Displaykontroller am Werkeln. Habe mir dafür ein Programm geschrieben, mit dem ich (mehr oder weniger spaßeshalber) komfortabel zu Testzwecken die Taktung des Spaltentreibers wählen Kann.

Sogesehen hat mein Kontroller 5 Spalten und 16 Zeilen, die 16 Zeilen werden später per Schieberegister und Pegelwandler angesteuert.

Wollt eigentlich nur sagen, dass es etwa ab 1kHz erträglich wird, also ab da erkennt man kaum noch ein Flackern.

Edit:
Das Programm überträgt die Daten direkt per USB zum AVR, das Programm ist geschrieben für Linux.




_________________


[ Diese Nachricht wurde geändert von: DonComi am 27 Jan 2008 22:55 ]

BID = 497549

stepp64

Gesprächig


Avatar auf
fremdem Server !
Hochladen oder
per Mail an Admin

Beiträge: 162

Das heißt also, deine 16 Zeilen, entsprächen meinen 35 Spalten. Von den Spalten ist immer nur eine aktiv (Schieberegister). Meine Überlegungen gehen nun in die Richtung, ob die LEDs dann überhaupt noch hell genug sind. Das entspricht ja einem Taktverhältnis von 1:35. Bekommt man da überhaupt noch genug Helligkeit hin? Oder sollte ich lieber gleich ein Taktverhältnis von 1:9 bis 1:12 einplanen?

Gruß
Sven

BID = 497583

BjörnB

Stammposter

Beiträge: 242
Wohnort: Dortmund

Hallo,

bleib am besten bei Deinem ursprünglichen Vorhaben, für jedes Segment ein Schieberegister zu verwenden. Mit den Schieberegistern steuerst Du die sieben Zeilen eines Segments an (in der Abbildung die Anschlüsse R1 bis R7). Da dies die Kathoden der LEDs sind, geht das recht einfach etwa mit den ULN2004 als Treibern (7-fach Transistorarray, Vorwiderstände für die LEDs nicht vergessen).

Für die Zeilen der einzelnen Segmente benötigst Du nun in Summe 7x7=49 Ausgänge der Schieberegister. Da Schieberegister üblicherweise acht Bit breit sind, musst Du 7 Stück nehmen und hast damit 7x8=56 Ausgänge. Der serielle Ausgang des ersten Schieberegisters wird dabei mit dem Eingang des zweiten verbunden usw.

Desweiteren verbindest Du gleiche Spalten der einzelnen Segmente miteinander, also C1 aller Segmente miteinander, C2 usw. Die Spalten werden nun mit fünf Transistoren gegen Ub geschaltet. Da Deine Schieberegister noch 7 Ausgänge übrig haben, bietet es sich an, mit 5 von diesen direkt die Spaltentransistoren anzusteuern.

Die Programmlogik ist nun insgesamt recht überschaubar: Um alle ersten Spalten zu aktivieren, wird zunächst eine 1 gefolgt von vier 0 in die Schieberegister getaktet, danach folgen die 35 Bit für die ersten Spalten aller Segmente. Nach Übernahme der Daten in die Ausgangslatches der Schieberegister (durch ein Signal am entsprechenden Übernahmeeingang der Schieberegister) leuchten nun die ersten Spalten aller Segmente. Nun können die Daten für die zweite Spalte eingetaktet werden, die nach Ablauf von 1/5 der Multiplexdauer in die Latches geschrieben werden. Zum schnellen Eintakten der Daten bietet es sich an, die SPI-Schnittstelle des Mikrocontrollers zu verwenden.

Insgesamt hast Du so ein 1:5 Multiplexing, was ein gutes Verhältnis aus Aufwand und Helligkeit darstellt. Als Wiederholfrequenz würde ich mindestens 100 Hz wählen (Weiterschaltfrequenz der einzelnen Spalten ist dann 500 Hz), alles darunter flackert bisweilen recht unangenehm.

Für einen hartverdrahteten Schutz der LEDs bei Absturz des µC könnten die beiden übrigen Ausgänge des Schieberegisters verwendet werden. Hier könntest Du abwechselnd eine 0 und 1 eintakten und ein Monoflop anschließen. Erfolg für eine definierte Zeit kein Pegelwechsel, werden entsprechende Maßnahmen eingeleitet.

Das ist jetzt leider ein etwas längerer Test geworden, ich hoffe das Prinzip wurde so einigermaßen klar, wenn noch Fragen bestehen, kann ich mal in einer ruhigen Minute versuchen, das ganze in einer kleinen Grafik darzustellen.

Schöne Grüße,
Björn


BID = 497757

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

@Stepp64
Nein, ich habe auch ein Tastverhältnis von 1:6. 5 Spalten werden der Reihe nach selektiert und die Zeilen-Schieberegister werden mit den Daten geladen.
Die Spalten (Gitter bei mir) werden mit einem Dezmalzähler durchgerattert, wobei jeder 6. Impuls genutzt wird, um den µC zu synchronisieren, damit der auch die Daten synchron zum Spaltentakt ausgeben kann.
Ich habe mich dafür entschieden, da ich mit höheren Spannungen (ca. 18V) arbeite.

Machs aber so wie Björn das (übrigens hervorragend!) beschrieben hat .

Die Spaltenfrequenz beträgt bei mir ca. 1kHz, also wird jedes Segment mit ~166Hz getaktet. Das reicht. Mit 10kHz wird die Anzeige flimmerfrei, will aber auch nicht so viele Störungen erzeugen, immerhin schalte ich 18V-0V sehr schnell an- und aus.

_________________


[ Diese Nachricht wurde geändert von: DonComi am  5 Feb 2008 18:32 ]

BID = 497807

stepp64

Gesprächig


Avatar auf
fremdem Server !
Hochladen oder
per Mail an Admin

Beiträge: 162

@BjörnB

Danke. Ich denke ich werde es mal so versuchen, wie du es beschrieben hast. Das klingt recht plausibel. Hättest du noch einen Tipp, welchen Transistor ich für die Spalten nehmen sollte. Wenn alle LEDs einer Spalte leuchten und ich pro LED 50mA rechne, komme ich immerhin auf 2,5 A! Wäre ein pnp Transistor der richtige (E an Plus, C an die Anoden der LEDs)?

Gruß
Sven

BID = 498053

stepp64

Gesprächig


Avatar auf
fremdem Server !
Hochladen oder
per Mail an Admin

Beiträge: 162

So, ich hab das ganze mal aufgezeichnet. Erst mal nur für 3 Displays. Die anderen 4 würden genauso aufgebaut werden. Ich habe mich entschieden den Transistor immer an den 8en Ausgang des Schieberegisters zu hängen. Ich denke, dass das Softwaremäßig einfacher zu programmieren ist. Ich werde ja pro Spalte und Display im RAM ein Byte reservieren, wo der anzuzeigende Wert steht. Das Bit 8 ist dabei immer 0. Nun muss ich nur noch das entsprechende achte Bit setzen, je nachdem, welche Spalte gerade eingeschaltet werden soll.

Könnt Ihr mal bitte drüber schauen, ob das so klappen müsste? Als Transistor habe ich den TIP145 (Darlington, 10A, PNP) vorgesehen. Der sollte den Strom doch ohne Kühlkörper verkraften, oder (hab noch nie Darlington Leistungstransistoren verbaut)? Oder habt ihr einen besseren Typ?

Bei den Schieberegistern habe ich QS2 als Übertrag benutzt. Ist das richtig oder ist QS1 besser?

Stimmt der LED-Vorwiderstand? Ich den auf 50mA/5V berechnet, wobei ich für die LED und den Transistor jeweils 2V abgezogen habe. Müsste doch richtig sein, oder?

So das wars erst mal. Wäre nett wenn einer mir mal mitteilt, ob der Plan so i.O. ist. Danke.

Sven




[ Diese Nachricht wurde geändert von: stepp64 am  6 Feb 2008 22:35 ]

BID = 498305

stepp64

Gesprächig


Avatar auf
fremdem Server !
Hochladen oder
per Mail an Admin

Beiträge: 162

Hab gerade gesehen, dass über den ULN ja auch noch mal 2V abfallen. Damit wären dass ja dann 6V. Da muss ich dann wohl die Spannung an den Transistoren auf 8-9 V erhöhen? Das sollte doch möglich sein oder?

Anbei mal noch der Entwurf meiner Lebensretterschaltung. Ist der auch in Ordnung?

Gruß
Sven



BID = 499098

BjörnB

Stammposter

Beiträge: 242
Wohnort: Dortmund

Hallo Sven,

das sieht doch schon mal alles sehr gut aus. Die Idee, die Spaltentransistoren an die 8. Ausgänge zu hängen ist aus programmiertechnischer Sicht gut. Ich denke, mit den Darlingtons sollte das klappen, aber ein kleiner Kühlkörper oder ein Blech schadet sicher nicht, da an ihnen auch ein gutes Volt abfällt. Wenn Du die Spannung an den Spaltentransistoren auf 9V erhöhen willst, dann funktioniert die direkte Ansteuerung aus den Schieberegistern jedoch nicht mehr, da deren Ausgänge über die BE-Strecke der Darlingtons dann die 9V abbekommen. Mit einer kleinen NPN-Transistorstufe zwischen Schieberegister und Darlington sollte sich das aber lösen lassen.

Den OE-Eingang der Schieberegister würde ich mit an den µC hängen und diesen erst freigeben, nachdem Du in alle Schieberegister Nullen eingetaktet hast. Ansonsten kann alles mögliche passieren, während der µC noch initialisiert oder programmiert wird. Pulldown-Widerstände an den übrigen Eingängen der Schieberegister wären vielleicht auch ganz gut, da die Ports eines µC nach dem Reset i.d.R. zunächst hochohmig sind und erst per Software als Ausgang definiert werden müssen.

Der Qs2 eilt dem Qs1 um einen halben Takt nach, das müsste aber hierbei soweit irrelevant sein. Statt den CD4094 kannst Du besser den 74HC4094 nehmen, der ist zwar nur für 5V-Betrieb gedacht, kann aber mehr Ausgangsstrom liefern.

Alternativ kannst Du Dir aber auch mal den 74HC595 anschauen. Praktischerweise liegen 7 der 8 Ausgänge der Reihe nach auf einer Seite des ICs, so dass das Layout zum ULN2004 einfacher wird.

Wenn ich das Datenblatt des 4538 richtig verstehe, dann bleibt der Ausgang Q solange high, wie der Eingang A regelmäßig durch H-Impulse retriggert wird, das sollte so also funktionieren.

Schöne Grüße,
Björn

BID = 499849

stepp64

Gesprächig


Avatar auf
fremdem Server !
Hochladen oder
per Mail an Admin

Beiträge: 162

Danke für die nützlichen Tipps. Das die 9V in die SR schlagen, hatte ich nicht beachtet. Das wäre sicher schief gegangen. Könnte man dann nicht gleich die Darlingtonstufe mit einem kleinem NPN und einem Leistungs PNP aufbauen? Die TIP145 sind ja nicht ganz preiswert. Oder könnte mir einer einen Link geben, wie man an dieser Stelle MOSFETS verbaut. Da hab ich leider keine Ahnung von, welcher Typ da der richtige wäre und wie man die anschliest.

Das der 74HC595 besser vom Dessign her ist, hatte ich auch schon bemerkt. Ich werde den dann wohl auch benutzen und die Spaltentransistoren am Ausgang0 der 74HC595 anschliesen. Damit kann ich dann alle Zeilen direkt mit den ULNs verbinden.

Die Beschaltung zum µC schaue ich mir auch noch mal an. Das mit dem OE-Eingang ist eine gute Idee.

Ciao
Sven


      Nächste Seite
Gehe zu Seite ( 1 | 2 Nächste Seite )
Zurück zur Seite 0 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 22 Beiträge im Durchschnitt pro Tag       heute wurden bisher 4 Beiträge verfasst
© x sparkkelsputz        Besucher : 182200090   Heute : 1901    Gestern : 4600    Online : 502        19.10.2024    12:18
9 Besucher in den letzten 60 Sekunden        alle 6.67 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0703458786011