Einen schönen guten Tag erstmal an alle, Ich habe mir in meiner Freizeit eine LED Matrix mit 16x7 LED aufgebaut mit einem AVR Mega8-P und als Schieberegister einen 74HCT154N. Die Verbindungen zu den LED's gehen über ein Kabel zu einer anderen Platine. Das Projekt ist fertig aufgeaut, nur mein Problem ist jetzt die Programmierung. Ich habe schon zahlreiche Seiten durchgestöbert, nur richtige Informationen oder ein Beispielprogramm leider nicht. Und desshalb meine Frage: Könnte sich bitte jemand diese Schaltung ansehen und mir vielleicht ein kleines Beispielprog. schreiben fürs BASCOM-AVR Studio mit ein paar Komentaren das ich dies selbstständig weiterführen kann. Oder vielleicht nen Link das ich mich dannach auskenne. Bitte Danke schon mal im Vorraus. mfg Planteu
sorry, Bascom AVR, und ich versuchs mal in C. Ich habe jetzt gerade dieSchaltung an Spannung gelegt, die Spannung für den Mega8 beim Sockel stimmt 5,25V, nur das einzige Problem, wenn ich die LED's anschließe leuchten schon ein paar, ich glaub fast das das Kabel damit zu tun hat, den wenn ich am Kabel ziehe oder sonstige Bewegungen mache verändern sich die LED's die leuchten. Und ich habe jezt leider nicht die Möglichkeit den 74HCT154N durch was andres auszutauschen. Ich hoffe Ihr könnt mir weiterhelfen mfg Planteu
>>Und ich habe jezt leider nicht die Möglichkeit den 74HCT154N durch was >>andres auszutauschen. Das kann auch über die Ansteuerung (Software) gelöst werden. Dabei musst du Spalten anstelle von Zeilen multiplexen. PS: Nimm 5V nicht 5,25V
> Das Projekt ist fertig aufgeaut Das ist nicht gut... Denn damit wirst Du sehr unterschiedliche Pixel-Helligkeiten erreichen. Das Problem ist Folgendes: Du hast 7 Zeilentreiber mit Transistoren, die Du gleichzeitig in verschiedenen Kombinationen schalten kannst. In den Zeilenleitungen sind keine Strombegrenzungswiderstände. Du hast 16 Spaltenleitungen ohne Treibertransistoren, aber mit Strombegrenzungswiderständen, von denen aufgrund des 4-zu-16-Decoders immer nur eine Spalte aktiv sein kann. Erstens kann der Spaltendecoder den Strom für bis zu 7 LEDs nicht aufbringen, zweitens bewirkt der Strombegrenzungswiderstand eine unterschiedliche Helligkeit, je nachdem, wieviele LEDs per Zeilentreiber eingeschaltet sind. Bei unterschiedlichen LEDs (Streuung der Flussspannungswerte) kann es sogar passieren, dass man einzelne LEDs nicht sieht. Aufgrund der untauglichen Hardware ist es sinnfrei, Programmvorschläge zu machen. Umbauvorschlag: Setze in die 7 Zeilenleitungen nur Strombegrenzungswiderstände (Transistoren rausnehmen) und statte die Spaltenleitungen mit 16 Treibertransistoren (z.B. 2 Stück ULN2803) aus. Im Programm machst Du dann Multiplexing. Du rufst also in regelmäßigen Zeitabständen (am besten per Timer synchronisiert, ist besser als WAIT xyz) eine Routine auf, die eine 0 in den Zeilenport schreibt, dann den Spaltenzähler erhöht, dann das (zur Spalte gehörende) neue Bitmuster an den Zeilenport ausgibt und dann zur Tagesordnung zurückkehrt, um andere triviale Aufgaben zu erledigen, wie z.B. das Bereitstellen der Anzeige-Bitmuster aus einem ASCII-Text und einem Zeichensatz (auch als Laufschrift machbar). ...
ja das mit die 5,25V und den schon leuchtenden LED'S ist schon geklärt. Mein Projektpartner hat die Transistoren falschrum reingelötet, jezt hab ich nur noch das Problem mit der Programierung. Kann mir bitte jemand ein winziges Beispielprog. geben oder schreiben, nur zum testen, geradesoviel das ein paar LED's leuchten mehr nicht, auf den Rest komm ich dann wahrscheinlich von selbst, ich brauch ja nur einen Anfangspunkt. mfg
> Mein Projektpartner hat die Transistoren falschrum reingelötet, jezt hab > ich nur noch das Problem mit der Programierung. Falsch... Deine Schaltung ist zwar geeignet, einzelne LEDs leuchten zu lassen, aber ein ordentliches Multiplexing der Spalten oder Zeilen ist damit nicht möglich. Siehe meinen obigen Beitrag. ...
naja, danke auf jeden fall für die schnelle Hilfe, vielleicht bekomm ichs ja noch hin, und auch wenn nur einzelne LED's leuchten, ich wills nur mal zum Programmieren schaffen.
Christian Planteu wrote: > naja, danke auf jeden fall für die schnelle Hilfe, vielleicht bekomm > ichs ja noch hin, und auch wenn nur einzelne LED's leuchten, ich wills > nur mal zum Programmieren schaffen. Auch wenn es nicht wirklich Sinn macht, schalte Zeilenport und die verwendeten Bits des Spaltenports auf Ausgang (Einsen in die DDR-Register), lege die Nummer der Spalte, die ausgewählt werden soll, an den Spaltenport (PORT-Register) und das Bitmuster, welche LEDs der Spalte leuchten sollen, an den Zeilenport (PORT-Register). Da ich im Browser den Text (und damit die Pinbezeichnungen) Deines Schaltplanes nicht lesen kann, aber keine Lust habe, mir jedes PNG-Bild herunterzuladen und mir die Platte zuzumüllen, kann ich jetzt keine genaueren Angaben zu den Portregisternamen machen. Achja, schalte nicht zuviele LEDs einer Spalte auf einmal ein... Und beginne das nächste Projekt mit einer besseren Planung... ;-) ...
> (z.B. 2 Stück ULN2803)
Das war natürlich Quatsch, ich hatte nicht bedacht, dass der Decoder
L-aktive Ausgänge hat. Also nehme ich alles zurück und behaupte das
Gegenteil... (oder auch nicht...)
...
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.