Forum: Mikrocontroller und Digitale Elektronik 8x8 LED-Matrix Schulprojekt


von hermanntoast (Gast)


Lesenswert?

Hallo zusammen,

ich muss in der Schule ein Projekt mit einer 8x8 LED-Matrix machen. Ich 
kenne mich mit Elektronik einiger maßen aus, hab aber von 
Mikrocontrollern keine Ahnung.

Hat von euch evtl. jemand einen Schaltplan, wie ich das ganze Aufbauen 
muss? Wir müssen das ganze in der Schule selbst auf eine Platine fräsen, 
ist eigentlich auch kein Problem. Aber ich weiß eben nicht wie ich die 
Schaltung verwirklichen kann.

Ich möchte das ganze gerne mit einem ATMega8 und einer fertigen 8x8 
LED-Matrix machen. Ist das eine gute Lösung oder hat jemand einen 
besseren Vorschlag?

Bin um jede Hilfe dankbar.

Viele Grüße

hermanntoast

von Heine (Gast)


Lesenswert?

bis jetzt hast du nur geschrieben das du eine 8x8 LED Matrix machen 
willst

nimm 8 Leds kleb is auf eine platte und nochmal ein Tape für den Atmega

v

von Uwe B. (derexponent)


Lesenswert?

hermanntoast schrieb:
> hab aber von
> Mikrocontrollern keine Ahnung.
>

warum willst du dann einen Mikrocontroller benutzen ?

würde eine Schaltung z.B. mit 8bit Schieberegistern nicht genügen

davon zwei Stück (einer steuert die Kathoden einer die Anoden der LEDs)
dazu noch einen Timer z.B. NE555

damit kann man schon lustige LED spielereien realisieren
(ganz ohne Prozessor)

Gruss Uwe

von Tho W. (tommyprog)


Lesenswert?

> Ich möchte das ganze gerne mit einem ATMega8 und einer fertigen 8x8
> LED-Matrix machen. Ist das eine gute Lösung oder hat jemand einen
> besseren Vorschlag?

Laut meiner Recherche wird das ziemlich viel Code, wo du auch (am 
besten) mit Arrays arbeiten solltest.
Wenn du für das Programmieren mind. 3 Monate (inkl. Einarbeitung) Zeit 
hast, würde ich das über den µC machen.

Ansonsten probier einfach die zuvorherige vorgeschlagene 
Hardwaresteuerung.
Weis auch nicht, ob dein Projekt eine Gewichtsbegrenzung haben soll 
(portabilität), sonst hätte ich auch eher die µC- Lösung vorgeschlagen.

Mfg,
tommyProg

von Peter D. (peda)


Lesenswert?

hermanntoast schrieb:
> ich muss in der Schule ein Projekt mit einer 8x8 LED-Matrix machen.

Erzähl mal genauer, dann kann man auch genauer helfen.

8*8 reicht gerade mal, um einen einzelnen Buchstaben darzustellen.
Als Treiber ist der MAX7219 geeignet.

: Bearbeitet durch User
von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Peter Dannegger schrieb:
> 8*8 reicht gerade mal, um einen einzelnen Buchstaben darzustellen.
> Als Treiber ist der MAX7219 geeignet.

 Wohl kaum.
 Keine Ahnung von uC und dann gleich mit SPI anfangen ?
 7-Segment auf ASCII umsetzen ?
 ULN2803, UDN2981, direkt ansteuern - einfach und billig.

von Karl H. (kbuchegg)


Lesenswert?

Tho Wes schrieb:
>> Ich möchte das ganze gerne mit einem ATMega8 und einer fertigen 8x8
>> LED-Matrix machen. Ist das eine gute Lösung oder hat jemand einen
>> besseren Vorschlag?
>
> Laut meiner Recherche wird das ziemlich viel Code

'viel Code' ist zwar eine schwammige Aussage, aber so kann man das nicht 
stehen lassen.
"Viel Code" geht anders. Hat man erst mal das Multiplexprinzip 
verstanden, dann ist das sogar ausgesprochen wenig Code, der eine Matrix 
antreibt.

von Karl H. (kbuchegg)


Lesenswert?

hermanntoast schrieb:

> Ich möchte das ganze gerne mit einem ATMega8 und einer fertigen 8x8
> LED-Matrix machen.

LED Matrix

die fertige Matrix nimmt dir ja nur das langweilige Löten der 64 LED in 
einem Gitter ab. Ansteuern musst du sie ja nach wie vor selbst.

von hermanntoast (Gast)


Lesenswert?

Hallo, schon mal danke für die viele Antworten. Mein ziel ist es auf der 
Matrix verschiedene Bilder oder Buchstaben oder so darzustellen. Das 
Programmieren ist dabei auch nicht das Problem. Damit kenn ich mich sehr 
gut aus.

Ich würde wirklich gerne einen andere elek. Schaltung in der Schule 
machen, aber die Themen wurden vorgeschrieben (auch mit 
Microcontroller!). Und wir haben auch bis Anfang/Mitte nächsten Jahres 
Zeit.

Als Controller benutze ich auch gerne den MAX7219. Ist mir relativ egal 
:)

Was ich jetzt aber noch bräuchte ist eine Zeichnung der Schaltung.

Bin immer noch für alle Tipps dankbar!

von Ulrich H. (lurchi)


Lesenswert?

Ein µC wie eine AVR Mega 8 ist schon in Ordnung, ein Mega88 wäre die 
modernere Version, wo man ggf. die Option für mehr Speicher hat. Einfach 
nur für die Darstellung reicht auch ein Mega48. Man hat auch genügend IO 
Pins, um ohne Schieberegister oder ähnliches auskommt.

Es gibt da noch 2 Fragen zur gewünschten Funktion:

1) Was sollte dargestellt werden, also wo sollten die Daten herkommen ?
   Das könnte ein fester Wert sein, oder etwa eine Eingabe per UART, 
oder   eine feste Zeichenfolge.

2) Wie hell muss es sein ? Danach richtet sich der nötige Strom. Wenn 
man es sich einfach macht, nimmt man etwa 10-20 mA für die Segmente: das 
können die Ausgänge des µC noch direkt treiben, und bei einem 
Programmfehler geht noch keine LED kaputt. Für die andere Seite der 
Matrix wird man wohl Treiber benötigen (sofern man über etwa 2,5 mA 
geht) - etwa ULN2803.

Die Schaltung ist relativ einfach: ggf. Spannungsregler, der µC mit 2 
mal 8 IO Leitungen + Vorwiderstände und das Treiber IC. Bei den IO 
Leitungen hat man ggf. die Wahl die Pins passend für eine einfaches 
Layout oder eine einfachere Programmierung zu wählen.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

hermanntoast schrieb:
> Was ich jetzt aber noch bräuchte ist eine Zeichnung der Schaltung.


                      ( ISR MatrixPointer )
                      Byt0  Byt2  Byt4  Byt6
                        |     |     |     |
                        |Byt1 |Byt3 |Byt5 |Byt7
                        |  |  |  |  |  |  |  |
             8xRled    \|/ | \|/ | \|/ | \|/ |
               _        \|/   \|/   \|/   \|/
    bit 7 ----|___|---  x  x  x  x  x  x  x  x
 U  bit 6 ----|___|---  x  x  x  x  x  x  x  x
 D  bit 5 ----|___|---  x  x  x  x  x  x  x  x
 N  bit 4 ----|___|---  x  x  x  x  x  x  x  x
 2  bit 3 ----|___|---  x  x  x  x  x  x  x  x
 9  bit 2 ----|___|---  x  x  x  x  x  x  x  x
 8  bit 1 ----|___|---  x  x  x  x  x  x  x  x
 1  bit 0 ----|___|---  x  x  x  x  x  x  x  x
                        |  |  |  |  |  |  |  |
                        |  |  |  |  |  |  |  |
                        |  |  |  |  |  |  |  |
  (ISR ColumnCnt)       |  |  |  |  |  |  |  |
    bit 0 ______________|  |  |  |  |  |  |  |
 U  bit 1 _________________|  |  |  |  |  |  |
 L  bit 2 ____________________|  |  |  |  |  |
 N  bit 3 _______________________|  |  |  |  |
 2  bit 4 __________________________|  |  |  |
 8  bit 5 _____________________________|  |  |
 0  bit 6 ________________________________|  |
 3  bit 7 ___________________________________|

Karl Heinz schrieb:
> "Viel Code" geht anders. Hat man erst mal das Multiplexprinzip
> verstanden, dann ist das sogar ausgesprochen wenig Code, der eine Matrix
> antreibt.

 Ja.
 Nur eine Tabelle brauchst du, falls du ASCII zeigen willst, aber 64
 ASCII und ein paar Sonderzeichen genugen vollkommen.
 64 Zch * 8Byt = 512 Bytes im Flash. Von ASCII-Code 0x20 abziehen,
 Zeichen > 96 als ein einziges Sonderzeichen anzeigen.

 Wenn du internen Oszillator benutzst, hast du 2 Ports mit
 jeweils 8 bit frei, namlich PortB und PortD.
 Multiplex frequenz sollte nicht kleiner als 75Hz sein,
 also 8 Columns x 75Hz = mit etwa 600Hz multiplexen.
 Timer1 auf Clear Timer on Compare Match einstellen, bei
 jedem Interrupt:
   a) Wert aus deinem ByteArray auf UDN2981 ausgeben,
      Matrix Pointer erhohen, falls Pointer > 7,
      wieder auf Null setzen.
   b) ColumnCnt rechts rotieren, Wert auf ULN2803 ausgeben.

von R. M. (rmax)


Lesenswert?

hermanntoast schrieb:

> [...] aber die Themen wurden vorgeschrieben [...]

Was ist denn das für eine Schule, die Themen vorschreibt und dann nicht 
wenigstens ansatzweise die Grundlagen vermittelt, die nötig sind, um sie 
zu bearbeiten?

von Dieter F. (Gast)


Lesenswert?

Und warum googlest Du nicht einfach mal?

http://bralug.de/wiki/8x8-LED-Matrix

von Ro V. (robyn)


Lesenswert?

Marc Vesely schrieb:
> ULN2803, UDN2981, direkt ansteuern - einfach und billig.
 Viel mehr Lötaufwand.

.. und was soll an der Max7219 Lösung teuer sein? Den gibt es komplett 
mit 8x8 Matrix und PCB für unter 2 Euro man kann davon auch problemlos 
mehrere Module aneinandereihen wenn man es möchte.
 und das bißchen Bitwackeln am Port ist auch nicht aufwändiger zu 
programmieren als eine Matrix anzusprechen.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Ro V. schrieb:
> .. und was soll an der Max7219 Lösung teuer sein? Den gibt es komplett
> mit 8x8 Matrix und PCB für unter 2 Euro man kann davon auch problemlos
> mehrere Module aneinandereihen wenn man es möchte.

 Ich hab nicht gesagt das es teuer ist, sondern aufwendiger. Und eine
 LED Matrix selbst zu programmieren ist sicher nützlicher als MAX7219
 zu benutzen, zumindest lernt man so wie multiplexen funktioniert.
 Es handelt sich hier um ein Schulprojekt...

von hermanntoast (Gast)


Lesenswert?

Hallo, vielen dank für die ganzen Antworten.

@lurchi:

zu Frage 1: Ich möchte gerne Lauftexte oder kleine Muster darstellen. Es 
wäre toll wenn das ganze über einen RS232 Stecker laufen würde. Ich 
finde das am einfachsten um den Controller mit dem PC zu verbinden. Oder 
liege ich da falsch?

zu Frage 2: Die LED's sollten gut zu sehen sein, aber nicht gleich 
kaputt gehen, darum tendiere ich wie du gesagt hast zu 10-20 mA.

@logarithmus

Schon mal ein guter Anfang. Danke

von Ulrich H. (lurchi)


Lesenswert?

Der Weg über RS232 wäre sicher möglich. Man müsste das aber bei der Wahl 
der Pins berücksichtigen, damit man die HW UART nutzten kann. Software 
UART zum Empfangen ginge im Prinzip auch, ist aber im Vergleich zur 
Matrix schon recht kompliziert. Da lieber die Ausgabe auf 3 Ports 
verteilen.

So etwas wie ein vorprogrammiertes Muster Ausgeben kann man immer noch 
machen - dafür braucht man keine extra HW.

von Reinhard S. (rsd)


Lesenswert?

Google mal nach dem Ping-Pong Spiel.

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.