Ich bin zwar gerade mitten in einem anderen Projekt, jedoch möchte ich, solange ich noch in der Schule bin, die hervorragenden Möglichkeiten der Leiterplattenherstellung hier nutzen.
Aus diesem Grund wollte ich bereits jetzt mit der Planung anfangen, um hier schonmal die Platine fertigen zu können.
Die Idee:
Meine Idee ist es, LED Dotmatrix Module (5x7) wie dieses hier in einer 3x4 Matrix anzuordnen um so eine Matrix mit 20x21 LEDs zu erhalten. (siehe Skizze)
Dieses Display wollte ich dazu nutzen, um darauf den Spieleklassiker Pong zu spielen. Dazu möchte ich neben ein paar Tastern für alternative Einsatzzwecke an jeder Seite ein Schiebepotentiometer anzubringen, durch welches man die Balken im Spiel herumschieben kann!
Momentan bin ich allerding am überlegen, wie ich die Matrizen ansteuern werde. Eine möglichkeit wäre es natürlich, sowohl alle Zeilen, als auch Spalten mit jeweils einem Ausgang eines Microcontroller zu beschalten und die Reihen durch Transistoren nacheinander einzuschalten (also von oben nach unten duchscannen), aber dafür wäre der Aufwand an benötigten Pins (21+20 = 41) doch relativ hoch.
Eine Alternative wäre ein Schieberegister, wie es hier verwendet wird. Davon hab ich leider atm noch garkeine Ahnung und weiß nicht, wie ich es machen sollte, dass er die kompletten 21 zeilen (oder 20 spalten) durchscannt.
Ich bin offen für eure Ideen und Vorschläge. Vorallem für die Hardware (also Ansteuerung der Displays) wäre es interessant ein paar eurer Meinungen zu hören.
Ein Schieberegister ist ne tolle Sache, baue damit auch gerade, nur kann ich dir hier leider keinen Tip geben, da meine Matrix 24x12 anders arbeitet
Wegen dem Schiebepoti, da könnte man n Encoderband von nem Flachbettscanner nehmen und nen kleinen Schlitten mit ner Lichtschranke, den man dann hin und her schiebt \/
Beispiele bzw. ne Menge Material bei www.google.de unter "led matrix" bzw. durch Klick auf die Bilder:
Bin leider erst als es scho fast fertig war draufgekommen, dass ich eigentlich die Reihen an den Microcontroller hängen wollte.
Also die 28 Reihen mit Vorwiderstand an den Atmega32 und die 20 Zeilen an Transistor-Arrays, welche von Schieberegistern geschaltet werden.
Sollte dann also so funktionieren:
1) durch den Atmega wird eine 1 in das erste Schieberegister geschoben
2) der erste Ausgang des Schieberegisters wird high und schaltet den ersten Tansistor -> Reihe 1 wird durch Transistor auf Masse gezogen
3) durch aktivieren der Ausgänge am Atmega wird ein Muster an die erste Reihe angelegt -> die entsprechenden LEDs leuchten
4) durch eine low-high flanke am clock des schieberegisters wird die 1 weitergeschoben und die nächste Reihe (2) wird aktiviert
5) wieder wird ein muster angelegt, usw.
Kann das so funktionieren, oder hab ich da irgendwas übersehen?
Was die Ströme angeht: Bei 5V Betriebsspannung und Vorwiderständen von 390Ohm pro Zeile (zwischen Atmega und Matrizen) fließt ein Strom von 12,8mA pro LED.
Sind also alle LEDs in einer Reihe aktiviert (28) kommt man auf 356mA.
Der Atmega schafft laut Datenblatt max. 400mA für alle Outputs zusammen, sollte sich also knapp ausgehen.
Und das Transistorarray schafft ebenfalls 500mA, das müsste soweit auch passen.
Achja, ich hätt fast vergessen, dass mir auch noch ne alternative einfiel, die ich aber bisher noch nicht gezeichnet hab (werd ich dann gleich machen)
Anstatt die Zeilen direkt über den Atmega anzusteuern könnte ich noch nen 4-to-16 Decoder verwenden. Damit brauch ich statt 28 Ausgängen nurmehr 8 Ausgänge anstatt 28 und könnte mir die Schieberegister sparen.
Der Atmega32 hat 32 gener I/O-Pins, dann bräucht ich 8 davon für die 28 Zeilen und mir bleiben noch locker 20 übrig um die Transistorarrays direkt über den controller zu steuern (die brauchen, soweit ich das verstanden hab, keine zusätzliche peripherie wie widerstände)
Dann gehn noch 2 Pins für die Potis drauf und die letzten zwei kann ich noch für Taster verwenden.
Oder ich mach das mit den Reihen doch auch mit Schieberegistern (oder auch den Demultiplexern) und hab noch ausreichend Pins für Status-LEDs und weitere Steuertaster, Piepser und sonstwas zur Verfügung.
Hab heut endlich mal bisschen was testen können.
Und zwar hab ich mal das Transistor-Array und die Schieberegister ausprobiert, was wunderbar funktioniert hat.
ich hatte zwar ein PIC ICD2 zur Verfügung (eigentlich sogar etwa 15 ^^), aber die hatten alle keine Steckkontakte für Strippen und ich wollte nicht extra löten, also hab ichs einfach per Hand simuliert.
Hier mal ein paar Bilder des Versuchsaufbaus: Bild hier
Auf dem Bild sieht man leider nur einen Ausgang des Schieberegisters verbunden, weshalb nur die oberste Zeile leuchtet (hab alle Reihen über Widerstand an +5V). Es hat super funktioniert eine "1" reinzuschieben, aber da ich das Clocksignal nur durch händisches verbinden eines Kabels simulieren konnte, was natürlich ordentlich prellt, hat er immer gleich von Q0-Q7 ne 1 reingeschoben und wenn ich die Datenleitung wieder auf GND gelegt hab natürlich gleich alle wieder rausgeschoben
Naja, ich hoffe, dass nächste Woche mein SnugBoard endlich bestückt ist, dann kann ich das mal richtig testen.
Hab grad per PN ne Anfrage bekommen, ob ich nicht vielleicht die Eagle Library von der Dotmatrix hätte. Da vielleicht auch noch andere daran interessiert sind, dacht ich, ich lad sie einfach hier im Thread hoch.
Lesezeichen