www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 5x7 DotMatrix Displays richtig multiplexen


Autor: Lukas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen!
Ich habe hier einen kleinen Hirnverdreher :-)

Und zwar möchte ich 4 5x7DotMatrix Displays an einen AVR anschließen.
Jedes diser Displays braucht 12 Anschlüsse (5 um die zu beleuchtende 
Spalte auszuwählen, 7 für die Zeile). Ist ja logisch ;-)

Weil der AVR aber nicht 4 x 12 = 48 Anschlüsse hat, habe ich mir 
überlegt alle Displays parallel zu schalten. Dann zeigen natürlich auch 
erstmal alle die selben Daten an... die Schaltung dazu habe ich mal oben 
angehängt (jaja, ich weiß: das ist nicht standardkonform, aber ist auch 
nur ne schnelle PaintBrush-Skizze) ;-)

Mein Problem ist nun das folgende:
Mit 4 weiteren Pins vom AVR möchte ich steuern, welches Display die 
gerade anliegenden Daten anzeigt (also multiplexen). So dass 
schlussendlich jedes Display etwas anderes darstellen kann.
Aber wie mach ich das am sinnvollsten???

Die einzige Lösung die mir einfällt wäre 20 weitere Transistoren 
einzubauen, nämlich vor alle Spalten-Eingänge an den Displays. Und die 
könnten dann jeweils in 5er Gruppen mit einem Pin vom AVR gesteuert 
werden.
Das ist natürlich enorm (löt-)aufwendig. Geht das nicht einfacher???

Vielen Dank für eure Ideen!!!

Autor: Lukas (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Irgendwie klappt das mit dem Anhang nicht... neuer Versuch :-)

Autor: Unwissender (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
würde mich auch interessieren, wie es einfacher geht.
Mein 490Dot-Matrixdisplay ist auch ein wenig aufwendig...
VG vom Unwissenden

Autor: Jack Braun (jackbraun)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Mit 4 weiteren Pins vom AVR möchte ich steuern, welches Display die
>gerade anliegenden Daten anzeigt (also multiplexen).

Da drängt sich sofort die Frage auf: Was soll das bringen?

Autor: Unwissender (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
aufwändig nachtürlich mit ä
sorry

Autor: maddin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
deine matritzen sind, wenn ich das richtig sehe alle parallel geschaltet 
- wie willst du da einen punkt erreichen, wenn du leitungen beschaltest, 
dann leuchten immer 4 punkte....

vielleicht noch etwas ausgehender mit dem multiplexing/charlieplexing 
von led matritzen nachdenken...

maddin

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
maddin wrote:
> vielleicht noch etwas ausgehender mit dem multiplexing/charlieplexing
> von led matritzen nachdenken...


Um das Nachdenken zu Beschleunigen:

LED-Matrix

Sinnvoll wär ein 1:7 Multiplexing über die Zeilen, und jede Menge 
Schiebe-Register über die Spalten.

Wenn Du die einzelnen Displays auch noch nacheinander schaltest, würde 
jede leuchtende LED nur noch für ein achtunzwanzigstel der Zeit Strom 
kriegen, wär also recht dunkel...

/Ernst

Autor: Danielzik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Lukas,

das kannst du wie folgt lösen:

Die 5 Leitungen für die Spalten, schließt du nicht direkt an alle 4 
Anzeigen, sondern schaltest davor 3 x 74138 3zu8 Decoder/Demultiplexer.

Mit diesen Decodern (74138) schaltetst du immer nur einen Ausgang.
Somit musst du um ein komplettes Bild darzustellen, 20 mal eine Adresse 
und die zugehörigen 7 Reihen anzeigen.

Für die Spalten Anschaltung brauchst du 3 Bits (A, B, C)
und 3 Freigabe Bits für je einen 74138.
Macht zusammen 6 Bits.

Viel Spaß beim bauen

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Max7219

Autor: Lukas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank an die letzten drei Poster :-)

Allerdings bin ich mir nicht ganz sicher, ob es nicht doch einfacher und 
billiger wäre der Schaltung einen zusätzlichen ATMega16 zu spendieren, 
der nur für die Displaysteuerung zuständig ist...
eieiei, ist das schwierig ^^

Autor: Lukas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andererseits: so ein AVR-Pin lieferst ja fast keinen Strom. Ich vermute 
mal diese 74138 können da was mehr vertragen?

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Statt einzelner Transistoren kann du auch Darlington-Arrays benutzen. 
Ein bisschen weniger Lötarbeit und viel weniger gefriemel.

Dann würde ich die Spalten direkt über 20 (4 * 5) Pins am Atmega16 
ansteuern/versorgen.
Die 7 reihen der Displays alle parallel schließen und über 7 pins am 
Atmega so die jeweilige Reihe auswählen die von angesteuert werden soll. 
(Darlington array und evtl. noch den demultiplexer dazwischen)

Die Vorwiderstände für die LED-Displays sollten an den 20 Spalten-pins 
sein. Das sind zwar 20 Widerstände aber so ist garantiert dass pro 
Widerstand immer nur eine LED in serie liegt.

Weitere Vorteile der Schaltung sind
- ein aktiver Pixel auf dem Display ist immerhin 1/7 der Zeit wirklich 
an
- jeder Ausgangspin am uC wird durch nur eine LED belastet der ganze uC 
durch höchstens 20 auf einmal
- nur 7 Transistoren!!!

Für das ganze müssen natürlich die Reihen deiner Displays die Kathoden 
der LEDs sein.

Ich hab das so für ein 8x8 Display gelöst und es geht prima. 
Vorwiederstände sind bei mir 100 Ohm, der Demultiplexer ist der 74HC238, 
das Darlington array ist ULN2803.

Autor: Lukas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Doh! Schon wieder bei Reichelt bestellen... :-(  Man sollte mal 
Bestellgemeinschaften bilden...

Danke für deine Tips, das hört sich alles sehr gut an!

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, noch was kleines zum hinzufügen..
Ich hab mal das Datenblatt vom ATmega16 angeschaut.
Da steht drin dass alle Ausgangspins zusammen nicht mehr als 200mA 
liefern sollten (bei PDIP bauform). Und auch noch ein paar andere 
Limitierungen, was das angeht. (Seite 294)
Naja.. bei 20 pins macht das 10 mA pro LED, was von der helligkeit her, 
gerade so ok ist. Bei mir sind es bei den 100 Ohm Vorwiderstand 15mA pro 
LED.

Ich würde das aber einfach mal ignorieren und checken ob der uC nicht zu 
warm wird. Die Pixel sind ja normalweise auch nicht alle gleichzeitig 
an. Allerdings hab ich keine Erfahrung ob das dann die Lebensdauer von 
dem uC beeinflusst. Vielleicht kann hier jemand anderes weiterhelfen.

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Lukas

>ngs bin ich mir nicht ganz sicher, ob es nicht doch einfacher und
>billiger wäre der Schaltung einen zusätzlichen ATMega16 zu spendieren,
>der nur für die Displaysteuerung zuständig ist...

Nein, ist es nicht. Ausserdem langeweilt der sich dann zu Tode. Für 
deine vier 5x7 Matritzen brauchst du 7 + 4*5 = 27 Pins. Wie bereits von 
anderen geschrieben musst du sinnvoillerweise ein 7:1 MUX bauen, welche 
20 Bit (4x5) pro Zeile ansteuert. wenn dir die 20 Pins zu viel sind, 
nimm drei 74HC595, und mach eine Porterweiterung per SPI, dann brauchst 
du nur 7 + 3 Pins, wobei dann allerdings der Controller ein wenig mehr 
zu tun hat. Sollte aber nciht ins Gewicht fallen.

http://www.mikrocontroller.net/articles/Porterweit...

>eieiei, ist das schwierig ^^

Nöö, immer wieder das Gleiche.

Und bevor ich es vergesse. Ja, du musst noch Leistungstreiber einsetzen, 
normale Digital-ICs können die Ströme nicht schalten.

MfG
Falk


Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.