Danke an Neutrum für das Doppelvideo von seinem blauen und meinem weißen LED-Cube!
WIP 1: Platinenplanung
WIP 2: fertiger Aufbau
WIP 3: finale Platinen und Schaltpläne
CubeController
Danke an Neutrum für das Doppelvideo von seinem blauen und meinem weißen LED-Cube!
WIP 1: Platinenplanung
WIP 2: fertiger Aufbau
WIP 3: finale Platinen und Schaltpläne
CubeController
Die drei Platinen sind seit einiger Zeit komplett fertig und sollen nun hier abschließend dokumentiert werden.
BCM, eine Variante von PWM, ist eine sparsame Methode um viele LEDs gleichzeitig zu dimmen.
Um in Zukunft neue Projekte schnell mit BCM-Funktionalität auszurüsten, ohne den verwendeten Mikrocontroller damit belasten zu müssen (Pins, mindestens ein Timer, Programmspeicher, hinreichend hohe Frequenz), gibt es nun einen fertigen BCM-Baustein. Weiterlesen
Der LED-Würfel ist jetzt einsatzbereit, es fehlt nur noch ein passendes Gehäuse. Hier ist der eigentliche Aufbau zu sehen – nach vielen Stunden Arbeit sind die acht Ebenen aufeinander gelötet, die untersten Anoden wurden mit Schrumpfschlauch isoliert und durch eine Bodenplatte aus Alu geführt. Auf der Unterseite wurden sie dann unter passender Spannung verbogen (um die unterste Ebene wieder plan zu bekommen), verdrahtet und mit Heißkleber ganz fixiert und isoliert.
Während des Zusammenlötens wurden leider einige wenige LEDs durch die Hitze zerstört, bei etlichen anderen stellte sich hinterher heraus, dass sie auch in Sperrrichtung schwach durchlässig sind und daher zu unerwünschten Ghosting-Effekten führen (weil nicht leuchtende Anoden durch die Schieberegister auf Low gesetzt werden statt hochohmig zu werden). Weiterlesen
Dieser Kabeltester ist im Grunde nicht viel mehr als ein Lauflicht. Mit dem DIP-Schalter lässt sich einstellen, welche der 9 Pole eines Ethernetkabels getestet werden sollen (8 plus Schirm bei STP-Kabeln), typischerweise alle.
Ab und zu lassen sich AVR-Probleme doch nicht nur aus dem Code heraus oder anhand der “Symptome” genau erkennen. Da kann die USART-Schnittstelle hilfreich werden, damit man schnell mal ein paar Debugging-Ausgaben vom Code sehen kann.
Da die Beschaltung eines RS-232-Pegelwandlers immer gleich ist, ist sie jetzt in einer kompakten, Breadboard-kompatiblen Box verfügbar.
Diese Box enthält selbst fast keine Bauteile außer einer winzigen Platine:
Hauptgrund für das Ding war, dass der Diamex-ISP-Programmer ein viel zu kurzes Kabel hat. Davon abgesehen geht es mit den paar eingebauten Teilen schneller, Testschaltungen zusammenzustecken.
Die Box dient gleichzeitig zur Aufbewahrung der passenden Kabel und einer kleinen Steckplatine mit passenden Wannensteckern:
Dies wird die Steuerplatine. Der große Sockel fasst einen ATmega16 (oder 32), daneben ist ein 14,7456 MHz-Quarz verbaut. Der obere Sockel ist für einen MAX232 vorgesehen, der 3-polige PSS daneben für einen RS232-Anschluss (GND tx rx). (Die vier 2-poligen Buchsen sind für die Kondensatoren des MAX232 vorgesehen, die schwarz markierten Buchsen sind die Kathoden.)
Darunter gibt es einen 6-poligen ISP-Header, um das Programm ohne IC-Tausch ändern zu können, und einen Reset-Taster. Der 16-polige Header unten führt zu den beiden anderen Platinen.
Der LED-Cube soll einmal bis zu 3 LEDs und bis zu 3 Taster an seinem Gehäuse bekommen (Statusanzeige und Steuerung). Diese sind auch schon auf der Platine untergebracht (die LEDs können bei Bedarf durch Abziehen des gelben Jumpers deaktiviert werden), externe können über die beiden 4-poligen PSS angeschlossen werden (GND <T1 <T2 <T3, GND +L1 +L2 +L3).
Die offene Steckbrücke in der Nähe des Quarzes (“PU”) schaltet einen 10kΩ-PullUp für die G-Leitung der ICs auf den anderen Platinen ein.
Diese Platine speichert mit acht Schieberegistern (74HC595) den Inhalt einer kompletten Ebene des 8x8x8-Würfels. Von hier aus werden die 64 LEDs der untersten Ebene direkt angeschlossen (mit 8-poligen PSK), dafür sind auch 68Ω-Vorwiderstände verbaut. (Auch wieder ein gutes Stück über den Datenblatt-Angaben zum maximalen Ivcc der 595, aber der Versuchsaufbau dazu hat gehalten.)
Jeder 595 hat unter dem Sockel seinen eigenen 100nF-Abblockkondensator, außerdem gibt es unten auf der Platine noch jede Menge Kapazität, um Schwankungen auszugleichen (1000µF + 100µF + 10µF + 0,1µF).
Die beiden LEDs rechts unten dienen nur Diagnosezwecken und hängen an den gemeinsamen SCK- und RCK-Leitungen der 595. Bei Bedarf können sie beide durch Abziehen des “L”-Jumpers deaktiviert werden.
Der 6-polige Header daneben (“C-Z”) verbindet diese Platine mit dem Ebenenselektor:
Diese Platine sorgt dafür, dass jeweils nur eine Ebene des LED-Würfels leuchten kann. Dazu gibt es acht Transistoren (BD433, Vorwiderstand 120Ω) in Emitterschaltung, die von einem 3/8-Decoder (74HC238) angesteuert werden.
Die Platine hat auch noch einen zuschaltbaren 10kΩ-PullUp für die G-Leitung des Decoders. Damit soll verhindert werden, dass der Würfel wild flackert, wenn im Betrieb der “C-Z”-Konnektor abgezogen wird, da dann die drei Eingänge des Decoders in der Luft hängen – mit der G-Leitung auf H gehen automatisch alle acht Ausgänge des Decoders auf L, so dass die Ebenen-Transistoren alle dicht machen.
Der 8-polige PSK (“Z”) führt direkt zu den acht gemeinsamen Kathoden der Würfel-Ebenen.
Hier ist eine der acht Ebenen des Würfels zu sehen. Die Anoden stehen alle senkrecht nach unten. Es gibt eine gemeinsame Kathode, die gleichzeitig auch das “Gerüst” der Ebene bildet.
Die Ebenen werden demnächst alle aufeinandergelötet, sodass mit den 64 nach unten hin freien Anoden jeweils eine komplette Spalte adressiert wird, während mit den 8 nicht miteinander verbundenen Ebenenkathoden jeweils eine Ebene aktiviert wird.
Es handelt sich um weiße, diffuse 3mm-LEDs mit einer Durchlassspannung von 3,2 – 3,4V (~20mA).
Bei diesem Experimentiermodul ging es darum, immer einen ATtiny2313 zur Hand zu haben, mit dem schnell mal Testschaltungen auf einem Breadboard aufgebaut werden können, ohne immer die gleichen Teile einsetzen zu müssen: Stromversorgung, ISP-Header, Reset-Kondensator und -PullUp. Weiterlesen