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.
Hier mal mein Schaltplan: http://tronixstuff.files.wordpress.com/2010/07/matrixschematic2.jpg im Anhang sind ein paar Bilder
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...
:
Bearbeitet durch Moderator
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...
:
Bearbeitet durch Moderator
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).
die gelbe strippe ist unterirdisch mit din verbunden. und die blaue stippe ist ja über den widerstand mit load verbunden
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?
:
Bearbeitet durch Moderator
Schönes Crosspostimg... http://forum.arduino.cc/index.php?topic=210986.0 Hätte ich mir dort die Tipparbeit sparen können. Oder zumindest etwas straffen können :-/
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.
:
Bearbeitet durch Moderator
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.