8x8 LED-Matrix Schulprojekt

Gast #3840890
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
#3840922
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
#3840942
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
#3840971
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.
Gast #3841133
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!
#3841146
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.
(Firma: Vescomp) #3841160
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.
#3841196
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.
(Firma: Vescomp) #3841207
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...
Gast #3841244
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
#3841441
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren