so ich nochmal.
Ich habe mir die Sache mit den Atmegas als Slaves nochmal durch den Kopf gehen lassen.
Arduino muss nicht unbedingt sein und ist in diesem Fall auch nicht unbedingt einfacher. Es gibt soviele schöne Webserver, die ich auch verwenden könnet.
Die Schaltung mit den Slaves und dem Master habe ich angehängt.
es funktioniert wie folgt:
Der Atmega32 empfängt über SPI die Pakete, die über den ENC28J60 und das Netzwerk angekommen sind.
Empfangen wird dann so was wie 0 0 0 255 255 255.
Das bedeutet. Led in Spalte 0, Zeile 0 und Reihe 0 hat Rotwert 255 Grünwert 255 und Blauwert 255.
Der Atmega32 ermittelt nun welcher Slave für 0 0 0 zuständig ist und schickt Zeilen und Spalteninformation für die 2D Matrizen sowie die Farben an diesen.
Die Atmega48 erhalten zur Synchronisation mit dem Master das Taktsignal über den Taktausgang des Atmega32.
Der Atmega 32 kümmert sich selbst um die Umschaltung der Ebenen.
Immer wenn eine Ebene umgeschaltet wird wird über den PC2 des Masters ein Interrupt auf den Slaves ausgelöst. Diese schalten dann die Zeile ihrer 2D Matrix um.
Um das Stromproblem der Atmegas zu lösen habe ich für die Ebenen n Channel Fets gewählt und für die Anoden PNP Transistoren.
Jeder Atmega muss dabei dann 12 Software PWM Signale generieren wenn ein 4x4x4 Würfel verwendet wird.
Mit den Atmega48 Pins komme ich auf eine maximale Anzahl von 6x6 Leds pro Ebene. Bei 100mA Impulsstrom kommt man mit 10mA Referenzstrom auf eine maximale Größe von 10x6x6!
Das sollte dicke reichen. Will man mehr kann man die Würfel ja kaskadieren. Mit 4en kommt man dann auf 10x12x12.
Ist die Lösung, die ich erarbeitet habe so gut?
Folgendes steht noch offen?
1.) Sind die BC327 als PNP dafür geeignet? Kann ich diese direkt am Portpin schalten? Ist die Ansteuerung richtig?
2.) Wie groß muss ich die Vorwiderstände für die einzelnen Farben bei einer 4x4x4 Matrix wählen.
3.) Sind die IRLU120N geeignet Als Fets für die Ebenenanschaltung?
Ist der Pulldown Widerstand mit 1k Ohm richtig gewählt?
Sind die Fets richtig angeschlossen, oder ist da irgendwo noch ein Fehler?
Lesezeichen