n0body
05.01.2007, 15:23
Ich bin für mein aktuelles Projekt (https://www.roboternetz.de/phpBB2/posting.php?mode=editpost&p=239785), einem Display aus LED Punktmatrizen, auf der Suche nach einer Ansteuerung mit möglichst geringem Schaltungsaufwand.
Da die Pinbelegung bei den Kingbright Dotmatrizen irgendwie relativ unpraktisch ist, um mehrere davon miteinander zu verbinden, hab ich schonmal ein relativ großes Problem mit dem Layout für diese ansich, für welches ich bisher keine Lösung gefunden hab.
http://img170.imageshack.us/img170/3494/schaltungha4.th.jpg (http://img170.imageshack.us/my.php?image=schaltungha4.jpg) http://img99.imageshack.us/img99/4971/layoutmj7.th.jpg (http://img99.imageshack.us/my.php?image=layoutmj7.jpg)
Für die Ansteuerung ansich hab ich mir schon etwas mehr Gedanken verschwendet und bisher diese Möglichekeiten erdacht.
Möglichkeit 1:
Bin leider erst als es scho fast fertig gezeichnet war draufgekommen, dass ich eigentlich die Reihen an den Microcontroller hängen wollte. (is aber für die grundsätzliche Überlegung egal)
http://img80.imageshack.us/img80/4479/matrixup5.th.jpg (http://img80.imageshack.us/my.php?image=matrixup5.jpg)
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.
Möglichkeit 2:
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.
Ich wäre euch sehr für jeglichen Anmerkungen zur Realisierbarkeit und Richtigkeit meiner Überlegungen sehr dankbar ^^
Da die Pinbelegung bei den Kingbright Dotmatrizen irgendwie relativ unpraktisch ist, um mehrere davon miteinander zu verbinden, hab ich schonmal ein relativ großes Problem mit dem Layout für diese ansich, für welches ich bisher keine Lösung gefunden hab.
http://img170.imageshack.us/img170/3494/schaltungha4.th.jpg (http://img170.imageshack.us/my.php?image=schaltungha4.jpg) http://img99.imageshack.us/img99/4971/layoutmj7.th.jpg (http://img99.imageshack.us/my.php?image=layoutmj7.jpg)
Für die Ansteuerung ansich hab ich mir schon etwas mehr Gedanken verschwendet und bisher diese Möglichekeiten erdacht.
Möglichkeit 1:
Bin leider erst als es scho fast fertig gezeichnet war draufgekommen, dass ich eigentlich die Reihen an den Microcontroller hängen wollte. (is aber für die grundsätzliche Überlegung egal)
http://img80.imageshack.us/img80/4479/matrixup5.th.jpg (http://img80.imageshack.us/my.php?image=matrixup5.jpg)
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.
Möglichkeit 2:
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.
Ich wäre euch sehr für jeglichen Anmerkungen zur Realisierbarkeit und Richtigkeit meiner Überlegungen sehr dankbar ^^