Forum: Mikrocontroller und Digitale Elektronik Led-Matrix Überlegung


von chris (Gast)


Angehängte Dateien:

Lesenswert?

Guten Abend Forum,

ich möchte zum Ende diesen Jahres eine Led-Matrix aufbauen bzw. in 
Angriff nehmen. Im Moment schwebt mir diese Richtung siehe Bild vor, für 
mich ist es erstmal nur mal was zu Blatt zu bringen und um Ideen zu 
sammeln.

Die Matrix-Ansteuerung auf dieser, wie auch auf anderen Webseiten habe 
ich mir auch schon angesehen aber ich möchte nix mit Schieberegistern 
bewerkstelligen sondern meine eigene Idee so verfeinern das es 
funktioniert.

IC 1/4 und die Matrix sollen jeweils ein eigenes Modul werden, die 
erweiterbar sein sollen. Die Matrix sind Fertigmodule von Kingbright, 
wenn jemand weiß ob es die auch als 2mA-Variante/LED gibt würde ich auf 
diese umsteigen wollen aber das Inet gibt irgendwie wenig her über 
solche lowcurrent Module ^^.


GEDACHTE Funktion:

1.
über IC 4/5.. laufen die Datenleitungen zu den Matrixen.
Mit LE (Latch Enable) oder OE (Output Enable) möchte ich die Helligkeit 
regulieren. Am Besten mit PWM? Was wäre optimaler?

2.
Mit IC 1/2.. sollen nur die Spalten gesteuert werden und mit den IC 3 
soll die Segment-Wahl statt finden. Ist das so möglich ?

    IC 3 ist nur ein Bsp es könnte auch 1/16 oder 1/32 Multiplexer
    eingesetzt werden, so das mehrere Zeilen evtl. dazu kommen könnten.
    Natürlich muss dann noch das ein oder andere erweitert/geändert 
werden.


Bitte nur konstruktive Anregungen, Kommentare die absolut nicht passen 
werden stumpf ignoriert.

von holger (Gast)


Lesenswert?

>Die Matrix-Ansteuerung auf dieser, wie auch auf anderen Webseiten habe
>ich mir auch schon angesehen aber ich möchte nix mit Schieberegistern
>bewerkstelligen sondern meine eigene Idee so verfeinern das es
>funktioniert.

Dann bau es auf. Nichts hat einen besseren Lerneffekt
als eine Schaltung die nicht funktioniert;)

von Alexander V. (avogra)


Lesenswert?

Hallo Chris,

Vom Prinzip her sollte das erstmal funktionieren, aber: :-P

Du hast ja geschrieben, dass die Matrix erweiterbar sein soll. Ich sehe 
da das Problem, dass du insgesamt von allen Segmenten immer nur eine 
Spalte gleichzeitig einschalten kannst. Das heißt, je mehr Segemente du 
benutzt, umso kürzer kann eine Spalte pro Zyklus leuchten. Bei 10 
Segmenten z.B. nur noch 1/50. Das ist dann schon sehr wenig.

Ich interpretier das ganze mal als Prinzip-Skizze, ansonsten fehlen 
Vorwiderstände, um den Strom durch die LEDs zu begrenzen. Dabei musst du 
neben dem, was die LEDs verkraften, auch auf den maximalen Strom pro Pin 
am AtMega aufpassen. Zusätzlich auf den maximalen Gesamtstrom des Atmega 
(-> VCC-Pins und GND-Pins) sowie den der Logik-Bausteine.
Kleine Anmerkung: Ich hab hier einige Billigst-China-Segmente 8x8/3mm, 
bei denen reichen mir auch 20mA mit 8-fach Multiplexing locker, um im 
Zimmer gut was zu erkennen. Entspricht also im Mittel 2,5mA pro LED. 
Allerdings gehe ich schon da nicht mehr direkt vom µC auf die Matrix, 
sondern benutze PNP-Transistoren oder Mosfets, auch wenns sich grad noch 
ohne ausgehen würde.

Und dann noch: warum ausgerechnet 74LSxxx-Serie?

Soviel mal auf die Schnelle,

Gruß, Alex

/edit:
Mist, jetzt hab ich grad einigen Käse geschrieben^^ Muss ichs mir doch 
nochmal genauer anschauen

von Alexander V. (avogra)


Lesenswert?

Ich wollt grad den Ablauf bei der Ansteuerung nachvollziehen, aber ganz 
so eindeutig ist das nicht.

Würdest du uns (und evtl. auch für dich selbst?) Schritt für Schritt 
erklären, wann was wie angesteuert wird, und was dabei rauskommen soll? 
Ich hab zwar so ne Idee, aber das passt mit dem, was du eingezeichnet 
hast, nicht so ganz zusammen. Zumindest das PWM am LE der LS537 macht 
wenig Sinn, wenn dann am OE. Der LE ist ja sowieso elementar wichtig, 
damit die LS537 irgendwas ausgeben. Damit meine Vorstellung von der 
Ansteuerung auch nur im Ansatz funktionieren kann, müsste der jeweils 
einzeln vom AtMega angesteuert werden. Selbst dann ist die Ansteuerung 
in meinem Kopf relativ aufwändig. Bin mal gespannt :)

Gruß, Alex

von chris (Gast)


Lesenswert?

Guten Morgen

nur info bei mir ist 1Matrix = 1Zeichen =1 Segement


@Alexander v. Grafenstein
> Ich interpretier das ganze mal als Prinzip-Skizze, ansonsten fehlen
> Vorwiderstände, um den Strom durch die LEDs zu begrenzen.

Es ist nur eine Art Blockschaltbild um die Übersicht nicht noch weiter 
zu drücken deshalb habe ich Darauf verzichtet. Im Original werden 
Wiederstände verbaut sein sonst wird das ja eh nichts.


> Dabei musst du neben dem, was die LEDs verkraften, auch auf den maximalen > 
Strom pro Pin am AtMega aufpassen. Zusätzlich auf den maximalen
> Gesamtstrom > des Atmega (-> VCC-Pins und GND-Pins) sowie den der Logik-
> Bausteine.

Ich dachte ich könnte den DM74LS573 gleich als Treiber mit nutzen sonst 
schalte ich noch jeweils ein ULN 280X nach denn sollte das 
Treiberproblem gelöst sein.


> Und dann noch: warum ausgerechnet 74LSxxx-Serie?

Ich hatte viele IC durch geschaut bei Reichelt bin irgenwie bei LS stehn 
geblieben habe grade gesehen das es den auch als HCx-Verson gibt.


> Ich wollt grad den Ablauf bei der Ansteuerung nachvollziehen, aber ganz
> so eindeutig ist das nicht.

Start
Die Daten werden aufgelegt z.B. binär 0000001 (GELBER KREIS) nun
wird ein Register SPALTE incrementiert und Register SEGMENT wird 
gelöscht.
Beide Register werden ODER-Verknüpft und auf dem selben Port einmal als 
Lownibble (Spalte) und als Highnibble (Segment) ausgegeben.
Die Spaletendaten stehen an allen IC für die Spalte gleichzeitig an aber 
daddurch das der IC3 die Segmentwahl darstellt wird auch nur das erste 
Segment(die erste Matrix) die daten erhalten und es geht unten links die 
erste LED an und nun wird nur noch 4mal das Spaltenregister 
incrementiert siehe Start. Die DAten ändern sich ja auch je nachdem was 
auf der einzelnen Matrix dargestellt werden soll.

Hoffe konnt meine Vorstellung vom Ablauf halbwegs rüberbringen denn ich 
leider muss los aber es ist auf jeden fall net, dass einer noch so spät 
drüber geschaut hast.

von Alexander V. (avogra)


Lesenswert?

Ok, dann hab ich im Zuge meines zweiten Posts mal wieder deutlich 
komplizierter gedacht, als es tatsächlich ist :) Ich bin irgendwie auf 
den Trichter gekommen, du könntest versuchen, alle Segmente gleichzeitig 
leuchten zu lassen, also jeweils eine Spalte. Nur das Update der aktiven 
Spalte würde sequentiell passieren. Das hätte so eher gar nicht 
geklappt, aber nun gut ^^

Dann noch ein paar Denkanstöße / Kommentare:

- Schau dir nochmal genau an, was ein Latch macht. Ich glaube da hast du 
noch eine falsche Vorstellung, zumindest lese ich das indirekt aus der 
Information, dass du den LE-Eingang für PWM benutzen willst.

- Was passiert, wenn du die Daten für die zweite Spalte ausgibst? An den 
74xx138 ist ja immer noch die erste Spalte aktiviert. Die wird nach 
deiner Beschreibung erst kurz später umgeschaltet.

- chris schrieb:
>> Dabei musst du neben dem, was die LEDs verkraften, auch auf den maximalen >
> Strom pro Pin am AtMega aufpassen. Zusätzlich auf den maximalen
>> Gesamtstrom > des Atmega (-> VCC-Pins und GND-Pins) sowie den der Logik-
>> Bausteine.
>
> Ich dachte ich könnte den DM74LS573 gleich als Treiber mit nutzen sonst
> schalte ich noch jeweils ein ULN 280X nach denn sollte das
> Treiberproblem gelöst sein.

Ich hab nicht gesagt, dass das nicht so funktioniert. Nur, dass du da 
nachschauen solltest :) Die Latches hatte ich beim Schreiben komplett 
übersehn, alles was ich zum Atmega bzgl. Strom gesagt hab, gilt also 
stattdessen für die Latches. Aber um die Hauptproblemstelle zu finden 
(ich hatte es gestern auf die Schnelle selber verplant): Stell dir vor, 
in einer Spalte sind gerade alle LEDs an. Dann überleg mal, auf welcher 
Leitung wieviel Strom in/aus welchem Pin fließt und schau in den 
Datenblättern der ICs nach, wieviel die an diesen Pins schaffen und 
wieviel das IC insgesamt schafft.

- In dem Datenblatt der Segmente gibts mehrere Versionen, einmal mit 
Anoden an Spalten und Kathoden an Zeilen, einmal andersrum (+ die 
zweifarbige Version). Welche Version wolltest du verwenden?
Falls du irgendwo einen ULN280x verwenden willst, bedenke, wie der genau 
schalten kann.


Alexander v. Grafenstein schrieb:
> Du hast ja geschrieben, dass die Matrix erweiterbar sein soll. Ich sehe
> da das Problem, dass du insgesamt von allen Segmenten immer nur eine
> Spalte gleichzeitig einschalten kannst. Das heißt, je mehr Segemente du
> benutzt, umso kürzer kann eine Spalte pro Zyklus leuchten. Bei 10
> Segmenten z.B. nur noch 1/50. Das ist dann schon sehr wenig.

Nachdem ich die Idee im ursprünglichen Post doch fast richtig verstanden 
hatte, gilt das natürlich immer noch. Hier hätten Schieberegister für 
die Spalten den großen Vorteil, dass du dann zeilenweise ansteuern 
kannst und damit unabhängig von der Anzahl der Segmente immer 1/8 
Einschaltzeit hast. Aber vielleicht findest du ja auch eine andere 
Lösung.

Viel Spass beim Tüfteln :)

Gruß, Alex

von chris (Gast)


Lesenswert?

Hallo

Alexander v. Grafenstein schrieb

> - Schau dir nochmal genau an, was ein Latch macht. Ich glaube da hast du
> noch eine falsche Vorstellung, zumindest lese ich das indirekt aus der
> Information, dass du den LE-Eingang für PWM benutzen willst.

Das sit mir gestern Abend schon aufgefallen, das dass mit dem LE nichts 
wird weil es sonst noch andere Probleme geben wird, deshalb werde ich 
auf den OE die PWM legen.


> - Was passiert, wenn du die Daten für die zweite Spalte ausgibst? An den
> 74xx138 ist ja immer noch die erste Spalte aktiviert. Die wird nach
> deiner Beschreibung erst kurz später umgeschaltet.

mmh das könnt man doch mit dem OE gleich Schalten sollte die PWM auf L 
gehen könnte man doch die Zeit (solaneg LOW ist) nehmen um die nächsten 
Daten für die Spalte/Daten/Segment zu legen


> Dann überleg mal, auf welcher
> Leitung wieviel Strom in/aus welchem Pin fließt und schau in den
> Datenblättern der ICs nach, wieviel die an diesen Pins schaffen und
> wieviel das IC insgesamt schafft.

Mit einen PNP pro Spalte sollte es gehen.

Bedanke mich für die Anregungen und werde dem entsprechend
> Viel Spass beim Tüfteln :)
haben

von Turbo T. (turbotoni)


Lesenswert?

Bei so einer LED-Matrix wird immer eine komplette Spalte in 
Schieberegister übertragen, und wenn die Datenmuster für die Spalte 
komplett sind, wird diese Spalte kurz eingeschaltet. Danach wieder aus 
und dann die nächste Spalte in die schieberegister übertragen. Somit 
erreicht man ein 1 zu 8 Multiplexing, wodurch die LEDs mit dem ca. 8 
fachen Normalstrom durchflossen werden sollten, um die selbe Helligkeit 
zu ereichen, wie bei Dauerbetrieb.

Ein schönes Beispiel, mit Programm in Bascom , ist auf der Seite 
http://mcselec.com/index.php?option=com_content&task=view&id=225&Itemid=57
enthalten.

Du möchtest zwar nicht mit Schieberegistern arbeiten, aber dies ist der 
einfachere Weg.

MfG Turbotoni

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.