Hallo,
ich baue (immer noch) eine 8x8 LED-Matrix komplett selber^^
habe jetzt alles verlötet, einen funktionierenden Code und ich habe
schon so einiges Anzeigen lassen.
Jetzt gibt es aber ein kleines störendes Problemchen. Ich habe alles
soweit verlötet und es sitzt eig alles ganz fest(LEDs etc natürlich aber
auch der Arduino^^). Wenn ich etwas anzeigen lasse, klappt alles ganz
normal. Wenn ich meine Matrix aber in ein( scheinbar) doofe Richtung
mehr oder weniger stark Bewege kommt etwas sehr Komisches :S
Alle LEDs der Matrix leuchten^^. Das einzige was hilft ist Strom raus
und wieder rein^^ Danach klappt es ganz normal
Ich habe das Problem aber auch ganz selten schon zu Beginn.
Was löst das aus und wie kann ich es abschaffen? Ich finde echt keinen
Fehler in meiner Schaltung :S
Freue mich über jeder Antwort :)
Freezad0 schrieb:> Wenn ich meine Matrix aber in ein( scheinbar) doofe Richtung> mehr oder weniger stark Bewege kommt etwas sehr Komisches :S>> Alle LEDs der Matrix leuchten
Dann ist es vermutlich ein "elektromechanisches" Problem.
Sprich:
- Schlechte Lötverbindung
- Irgendwo entsteht durch die Bewegung ein Kurzschluss
Poste mal Bilder von deinem Aufbau ++ Schaltplan.
es ist nicht perfekt, aber ich bin was Löten und so ein größeres Projekt
anbelangt noch nicht soooo lange dabei^^ gibt es da nichts falsches zu
sehen? oder was wäre am wahrscheinlichsten?
Freezad0 schrieb:> oder was wäre am wahrscheinlichsten?
Eine EMV/ESD-Einkopplung die deinen uC aus dem Takt bringt...
Die "Blockkondensatoren" können ihren Dienst auch nicht so richtig
verrichten: die sind ja eeeeeewig weit weg vom IC-Anschluss.
Auf dem uC läuft ein Programm, wenn der Fehler passiert, oder?
Das hier ist auch verdächtig:
1
Register Display Test (Adresse: 0Fh):
2
Mit diesem Register kann ein Selbsttest des MAX7219 erfolgen,
3
d.h. alle Segmente leuchten mit der maximalen Helligkeit.
4
Dazu muss nur das Bit D0 (im Register 0Fh) gesetzt werden.
5
(siehe Tabelle 3.7).
Kann es sein, dass du den Din auf Vcc biegst? Dann würde der Takt allein
ausreichen, um auf der Adresse F das Bit 0 zu setzen...
Was könnte denn solche Störungen auslösen? (EMV)
Hmmm also die Kondensatoren sind schon sehr weit weg, da hast du recht^^
Ich werde sie mal weiter "ranholen".
Also ich habe ein Programm am Laufen ja.
Lothar Miller schrieb:> Das hier ist auch verdächtig:>
1
> Register Display Test (Adresse: 0Fh):
2
> Mit diesem Register kann ein Selbsttest des MAX7219 erfolgen,
3
> d.h. alle Segmente leuchten mit der maximalen Helligkeit.
4
> Dazu muss nur das Bit D0 (im Register 0Fh) gesetzt werden.
5
> (siehe Tabelle 3.7).
6
>
Wie soll ich das jetzt anstellen? habe mal gegooglet aber nichts
gefunden, was soll das genau sein?
Lothar Miller schrieb:> Kann es sein, dass du den Din auf Vcc biegst? Dann würde der Takt allein> ausreichen, um auf der Adresse F das Bit 0 zu setzen...
Entschuldige aber ich weiß leider nicht so ganz was du damit meinst. Wie
soll ich denn den DIN auf meinen Vcc biegen?^^
Schonmal vielen dank für bisherige Hilfe :)
Freezad0 schrieb:> Wie soll ich denn den DIN auf meinen Vcc biegen?^^
Mit einem Kurzschluss?
> habe mal gegooglet aber nichts gefunden, was soll das genau sein?
Ein Ausschnitt aus dem Datenblatt.
> Wie soll ich das jetzt anstellen?
Wenn du den DIN Pin mit Vcc verbindest und einen Takt anlegst kommt der
Lampentest heraus. Gut für die Produktion, weil nur eine Taktquelle
nötig ist...
Also einen Kurzschluss gibt es nicht.
Der Lampentest war efolgreich.
Jetzt kann es doch nur noch das Problem mit den Kondensatoren sein oder
mein Max7219 hat den Geist aufgegeben. Inzwischen zeigt es auch nur noch
dieses "Problem" an(alle LEDs an).
Ich kann auf deinen Fotos beim besten Willen nicht erkennen womit Pin 1
(DIN) des MAX7219 verbunden ist. Dafür scheint aber Pin 12 (LOAD)
doppelt mit deinem Arduino verbunden zu sein (1x über einen Widerstand
auf die blaue Strippe und 1x direkt auf die gelbe Strippe).
Freezad0 schrieb:> Der Lampentest war efolgreich.
Ich glaube, du hast nicht verstanden, was ich gemeint habe:
Wenn durch einen Fehler der DIN-Pin nur noch high erkennt, dann kommt
zufällig der "Lampentest" heraus. Bei diesem Fehler /leuchten alle
Lampen/. Kommt dir das bekannt vor?
> Inzwischen zeigt es auch nur noch dieses "Problem" an(alle LEDs an).
Und welchen Pegel hast du am DIN-Pin? Hast du Zugriff auf ein Oszi?
Also es hat hier zwischendurch schon nochmal etwas angezeigt(sketch)-->
pin 1 klappt noch. ich habe noch ein problem gehabt. das max7219 hatte
wackler auf dem aufsatz. ich löte es gerade nochmal direkt drauf. danach
dürfte es zumindest dort keine wackler geben(die womöglich das problem
isnd :S)
Das tut mir leid Gerald :( Ich dachte dort finde ich niemanden der mir
auf (die SChnelle. (ich stehe nebenbei noch etwas unter zeitdruck).
Nochmals Entschuldige :(
Ok, schon vergeben ;-)
Hättest dort, der Fairnis halber, vielleicht einen Link setzen können,
damit nicht jedes Forum für sich losgelöst nach Lösungen sucht, die
woanders schon gefunden wurden. Die Bilder, die dort nicht verlinkt
sind, bestätigen eigentlich nur noch meinen Verdacht.
Es KANN (muß aber nicht zwingend) auch mit moderat längeren Kabeln
funktionieren.
Ich arbeite z.B. an einem Projekt, wo ich die 8x8 Matrix nicht in 2
Dimensionen, sondern linear als Balkenanzeige (also 64 LEDs als Band)
betreibe - und das mit 3 MAXen kaskadiert! Ist mit 5mm LEDs fast 1m groß
:-)))
Der Kern, also die 3x 7219 arbeiten stabil. Das ganze wird ein
pseudoanaloges Thermometer. Neben die "Kapillare" bastele ich noch ca.
500 Rechteck LEDs als Skalenstriche und 7 Segmentanzeigen als
Beschriftung. Diese "Strafarbeit" hatte ich mir einfacher vorgestellt.
Deshalb mache ich immer mal wieder Pausen :-)
Gruß Gerald
Interessantes Projekt Gerald :)
Ich wollte mitteilen das die Matrix jetzt stabil läuft :)
Ich habe das Max7219 direkt auf die Platine gelötet, sodass keine
Wackler enstehen können. Die Kondensatoren habe ich dort gelassen wo sie
sind(klappt auch so^^). Nachdem ich soweit war, hat es dann aber immer
noch nicht geklappt :S Danach habe ich nochmal an den
Anschlussstellen(wo jumperkabel reinkommen) etwas rumgewerkelt und
danach hat es endlich funktioniert :)
Ich danke euch allen für eure Hilfe und Unterstützung und auch das
teilweise erneute Erklären von Dingen die ich nicht so ganz verstanden
habe :)
MfG Freezado :)
Freezad0 schrieb:> Ich habe das Max7219 direkt auf die Platine gelötet, sodass keine Wackler> enstehen können.
Normalerweise ist eine Fassung kein Problem. Du musst wohl eher an
deinen Lötkünsten arbeiten. Aber keine Sorge, das wird schon noch...
;-)
Und dann natürlich: Datenblätter nicht nur lesen, sondern versuchen zu
verstehen, was da drin steht.
Kenne das Prob auch! Irgendwo hier im Forum ist dazu sogar noch ein
Beitrag welcher mehrere Jahre alt ist, find ihn aber nicht mehr. Es sind
die Kondensatoren an der Speisung des MAX. Zu gross geht nicht, zu klein
geht nicht, frag mich aber bitte nicht mehr wie gross er denn sein muss.
Ebenso musst Du die Matrix nach dem Einschalten manuell "ausschalten",
sprich dem 7219 mitteilen er soll alle ausschalten.
Ist es auch so, dass wenn die Matrix richtig läuft und Du nur ganz kurz
einen Stromunterbruch machst, er ebenfalls im Lampentest hängen bleibt
und alles an ist?
Gruss Grü
Grü schrieb:> Es sind die Kondensatoren an der Speisung des MAX. Zu gross geht nicht,> zu klein geht nicht
Das halte ich für ein Ammenmärchen. Wenn einem der Grund und die
Wirkungsweise von Entkopplungkondensatoren klar sind, dann versteht er
auch, warum ich mir da so sicher bin.
Und das Datenblatt sagt:
"To minimize power-supply ripple due to the peak digit driver currents,
connect a 10μF electrolytic and a 0.1μF ceramic capacitor between
V+ and GND as close to the device as possible."
Und "as close as possible" bedeutet nicht: mach den Kondensator direkt
neben das IC und fahre dann mit den Anschlüssen dreimal im Kreis.
Sondern es bedeutet einfach: verbinde diese Kondensatoren mit möglichst
kurzen (und breiten) Leiterbahnen mit den zugehörigen GND und Vcc
Anschlüssen.
Nachtrag:
> Zu gross geht nicht,
Das kann sein, wenn durch zu große Kapazität in der Versorgung und ein
schwaches Netzteit die Anstiegszeit der Versorgungsspannung zu lang
wird, und der MAX so nicht sauber aus dem Reset kommt.