Christians Bastel-Laden

Aufbauanleitung für einen UeberPixel

Was ist ein UeberPixel?

Der UeberPixel ist ein LED-Matrix-Board mit vielen Optionen auf der Basis eines ATMEGA328 mit Arduino-Bootloader und MAX7219-LED-Treibern.
Er eignet sich für niedrig aufgelöste Anwendungen wir Retro-Spiele oder Anzeigetafeln.

Bausatz

Einen Bausatz findet man leicht über Google.

Wie funktioniert das?

Der MAX7219 ist ein LED-Matrix-Treiber für bis zu 8*8 LEDs. Er wird über ein serielles Protokoll angesprochen. Hier wurden 4 davon verbaut.

MAX7219-Datenblatt

UeberPixel: Einleitung

1. Einleitung

Der UeberPixel ist ein LED-Matrix-Board mit vielen Optionen auf der Basis eines ATMEGA328 mit Arduino-Bootloader und MAX7219-LED-Treibern.

Die Platine gibt es in schwarzer und weißer Ausführung, sie sind identisch.

Achtung! Manche Lötpunkte der Platine sind mit der Ground-Plane verbunden, einer großen Kupferfüllung, die alle GND-Punkte miteinander verbindet. Diese Füllung zieht die Hitze des Lötkolbens sehr schnell ab und daher brauchen die Lötpunkte deutlich mehr Hitze als die andern. Man erkennt sie daran, daß sie scheinbar das Lötzinn nicht annehmen wollen (und muß dann das Lötauge auf der Platine länger erhitzen). Wer genau hinsieht, erkennt diese Löche an dem sternförmigen Relief auf der Platine.

UeberPixel: Die LEDs

2. Die LEDs

2.1 Layout

Auf dem UeberPixel kann man entweder normale (zweibeinige) oder Superflux-LEDs verwenden. Bei den normalen LEDs gehört die Kathode nach oben, bei den Superflux-LEDs die abgeschrägte Ecke nach oben rechts.

UeberPixel: Konzentration
2.2 Konzentration

Die LEDs einzulöten kann eine ermüdende Arbeit sein. Aber gerade hier muß man hochkonzentriert bei der Sache bleiben. LEDs später wieder auszulöten ist schwierig und macht keinen Spaß.

UeberPixel: Sauber Stecken
2.3 Sauber Stecken

Die LEDs müssen plan an der Platine liegen, wenn sie angelötet werden, sonst strahlen sie später nicht im rechten Winkel zur Platine ab. Bei Superflux-LEDs ist das kein Problem.

UeberPixel: LEDs fixieren
2.4 LEDs fixieren

Da die Platine vom UeberPixel ziemlich groß ist, verhindert man mit etwas hitzebeständigem Klebeband das Herausfallen der Teile.

UeberPixel: Massenarbeit
2.5 Massenarbeit

Natürlich kann man auch mehrere LEDs abkleben und dann in einem Schwung anlöten.

UeberPixel: Fertige Matrix
2.6 Fertige Matrix

Die fertige LED-Matrix. Einen Großteil der Lötarbeit ahben wir hinter uns.

UeberPixel: Die Stromversorgung

3. Die Stromversorgung

3.1 Layout

Die Stromversorgung hat zwei getrennte Stränge für 5 Volt und 3,3 Volt.
C10, C11, C21 und C22 sind Elektrolyt-Kondensatoren mit 100 μF.
C9 und C23 sind Kondensatoren mit 100 nF.
U1 ist der Spannungsregler für 5 Volt (LM 2940 CT5).
U2 ist der Spannungsregler für 3,3 Volt (LM 2937 ET3,3).

UeberPixel: Optionale LEDs
3.2 Optionale LEDs

Optional kann man sich mit R1, R2 (je 1 k) und LED 5V bzw. LED 3.3V anzeigen lassen, ob Spannung anliegt. Mit den zwei Jumpern (J1, J2) kann man die LEDs bei Bedarf auch wieder abschalten.

UeberPixel: Jumper
3.3 Jumper

Mit den Jumpern enable 3.3V und enable 5V wird die Spannung auf den Bus geschaltet, der um die Platine herum läuft. Hier kann man die Stromversorgung abschalten, wenn man das Board z.B. über USB versorgt.

UeberPixel: Der Mikrocontroller

4. Der Mikrocontroller

4.1 Bestückung

Für den Mikrocontroller bestücken wir C20, C24 und C25 mit 100 nF.
R3 mit 10 k zieht die Reset-Leitung auf Vcc.
R12 und R13 mit je 4,7 k ziehen die I2C-Leitungen (SDA/SCL) auf Vcc.

UeberPixel: Schwingkreis
4.2 Schwingkreis

Für den Schwingkreis (XTAL1) kann man entweder einen 16 MHz-Resonator in die drei Löcher löten, oder zu einem 16 MHz-Quarz noch zwei 22 pF-Kondensatoren löten (C12 und C13).
Ein sechspoliger Pinheader für den FTDI-Stecker, ein taktiler Taster und die Fassung für den ATMEGA328 runden diesen Schritt ab.

UeberPixel: FTDI-Header
4.3 FTDI-Header

Zum Testen schließt man ein FTDI-Kabel an (schwarze Leitung nach rechts, beim USB-BUB Gnd nach rechts)...

UeberPixel: Testen
4.4 Testen

... und spielt probehalber mit der Arduino-IDE einen Sketch auf.

UeberPixel: LED-Treiber

5. Die LED-Treiber

5.1 Die Kondensatoren

C1, C2, C3 und C4 habe je 100 nF.
C5, C6, C7 und C8 sind Elektrolyt-Kondensatoren mit 10 μF.

UeberPixel: Die iSet-Widerstände
5.2 Die iSet-Widerstände

Die 4 Widerstände iSet berechnen sich aus dem Datenblatt für den MAX7219 und den verwendeten LEDs. Man kann dafür keine generellen Werte angeben.

UeberPixel: Die MAX7219
5.3 Die MAX7219

Vier Sockel für die MAX7219-Chips schließen diesen Schritt ab. Man beachte, daß die MAX7219 jeweils 180° gegeneinander verdreht sind.

UeberPixel: Die Taster

6. Die Taster

Die Widerstände bei den Tastern (R8-R11) werden mit je 10 k bestückt.
Über die Pinheadern links von den Tastern kann man die Taster aus einem Gehäuse führen.
Diese finden sich auf der linken Seite der Platine (links vom Monster) als S1-S4 wieder.

UeberPixel: Die Status-LEDs

7. Die Status-LEDs

Die Status-LEDs für die digitalen Ausgänge D10, D11 und D12 des ATMEGA328 werden mit einer grünen LED für D10, gelben LED für D11 und roten LED für D12 bestückt. Sie bekommen aufrecht stehend je einen 1 k-Widerstand. Über die Jumper bei den Bezeichnungen kann man die LEDs bei Bedarf ein- oder ausschalten.

Bei der Default-Firmware haben die LEDs die folgende Bedeutung: die grüne LED zeigt das SQW-Signal der Echtzeituhr an. Wenn sie im Sekundentakt blinkt, läuft die Echtzeituhr.
Die gelbe LED zeigt das Signal das DCF77-Empfängers an. Sie muß im Sekundentakt (aber mit kürzeren Anzeiten) blinken, dann ist das Signal gut. Flackert sie, ist das Signal gestört. Leuchtet sie durchgehend, ist kein Empfänger angeschlossen.
Die rote LED kann man verwenden, wie man möchte - sie hat in der Default-Firmware keine Bedeutung.

UeberPixel: Die Echtzeituhr

8. Die Echtzeituhr

8.1 Bestückung

Die Echtzeituhr benötigt den Uhrenquarz (XTAL2), welcher sauber mit dem Gehäuse auf die Groundplane gelötet sein muß.
C28 mit 100 nF ist ein Entstörkondensator, R14 mit 4,7 k zieht die SQW-Leitung nach Vcc.

Video Lötkurs Uhrenquarz

UeberPixel: Ladeschaltung
8.2 Ladeschaltung

Möchte man die Echtzeituhr puffern, also erreichen, daß die Zeit auch ohne Stromversorgung erhalten bleibt, hat man zwei Möglichkeiten.
Entweder man lötet eine Knopfzellenhalterung an BAT+ und BAT-.
Oder man verwendet einen Goldcap (Superkondensator), dann muß man sich um den Batteriewechsel (der ca. alle 9 Jahre anstehen würde) nicht mehr kümmern. Dazu kommt der Goldcap (0,47 mF, 5,5 V) nach GC+ und GC-; R27 wird mit 4,7 k bestückt; R28 mit 820 Ohm und D15-D18 mit 1N4148-Dioden.

UeberPixel: Testen
8.3 Testen

Mit dem entsprechenden Sketch sollte zum Testen die grüne LED im Sekundentackt der SQW-Leitung blinken.

UeberPixel: Der DCF77-Empfänger

9. Der DCF77-Empfänger

9.1 Achtung!

Achtung! Verwenden Sie auch für den Empfänger von Pollin die generische Anschlußleiste für DCF77-Empfänger.

UeberPixel: Empfängerauswahl und Anschluß
9.2 Empfängerauswahl und Anschluß

Da die DCF77-Empfänger der verschiedenen Anbieter variieren, gibt es viele Optionen rund um den Empfänger. Ich habe hier einen von Pollin genommen. Links vom Empfänger kann man sowohl 5 Volt wie auch 3,3 Volt abgreifen (und mit 100 nF-Kondensatoren entstören).
Außerdem kann man einen Transistorschaltung zur Verstärkung aufbauen.
Am Ende muß das Signal links von der Transistor-Schaltung auf D9 landen!

UeberPixel: Testen
9.3 Testen

Mit dem entsprechenden Sketch sollte zum Testen die gelbe LED im Sekundentackt des Empfangs blinken (die meisten Empfänger benötigen eine Weile bis sie sich eingeregelt haben).

UeberPixel: Der lichtabhängige Widerstand

10. Der lichtabhängige Widerstand

10.1 Spannungsteiler

Der LDR bildet mit R26 (ca. 10 k) einen Spannungsteiler und kann mit dem Jumper enable LDR ein- oder ausgeschaltet werden.

UeberPixel: Pinheader
10.2 Pinheader

Da er normalerweise im Gehäuse sitzt, kann man auf LDR einen Pinheader löten.

11. Testbetrieb

Zum Testen kann man unter den oben genannten Links die Firmware herunterladen und Aufspielen. Dazu muß in der Datei Configuration.h die Zeile
#define LED_DRIVER_DEFAULT
auskommentiert und die Zeile
// #define LED_DRIVER_UEBERPIXEL
einkommentiert werden. Mit den Tasten S4 (Mode), S3 (H+) und S2 (M+) kann die Uhr dann bedient werden.

Wie geht es weiter?

Im Diskussionsforum findet man in der Galerie Beispielanwendungen für den UeberPixel. Dort wird einem auch geholfen, wenn man bei dem Aufbau oder der Inbetriebnahme Probleme hat.

Bezugsquellen für diverse gefräste Gehäuse finden sich dort auch, ebenso Hinweise über den Bezug der Frontplatte.

zum Diskussionsforum

Es gibt auch eine Anleitung, wie man eine Infrarot-Fernbedienung an die Platine anschließen kann.

zur Anleitung

Stückliste

Name Art Quelle
Stromversorgung
Hohlstecker; 2,1 mm Reichelt
C10, C11, C21, C22 Elektrolytkondensator; 100 μF Reichelt
C9, C23 Kondensator; 100 nF Reichelt
R1, R2 Widerstand; 1 kOhm Reichelt
LED 3.3V, LED 5V LED; rot; 5 mm Reichelt
U1 Spannungsregler; 5V Reichelt
U2 Spannungsregler; 3,3V Reichelt
Taster
R8-R11 Widerstand; 10 kOhm Reichelt
S1-S4 Kurzhubtaster Reichelt
Status-LEDs
Widerstand; 1 kOhm Reichelt
D12 LED; rot; 5 mm Reichelt
D11 LED; gelb; 5 mm Reichelt
D10 LED; grün; 5 mm Reichelt
LDR
LDR Lichtabhängiger Widerstand; 10 kOhm Reichelt
R26 Widerstand; 10 kOhm Reichelt
Echtzeituhr
XTAL2 Uhrenquarz; 32,768 kHz; 12,5 pF Reichelt
Echtzeituhr; DS1307 Reichelt
C28 Kondensator; 100 nF Reichelt
R14, R27 Widerstand; 4,7 kOhm Reichelt
R28 Widerstand; 820 Ohm Reichelt
D15-D18 Diode 1N4148 Reichelt
GC Gold-Cap; 47.000 μF; 5,5 V Reichelt
Mikrocontroller
Mikrocontroller; ATMEGA328-PU
C20, C24, C25 Kondensator; 100 nF Reichelt
XTAL1 Resonator; 16 MHz
R12, R13 Widerstand; 4,7 kOhm Reichelt
R3 Widerstand; 10 kOhm Reichelt
RESET Kurzhubtaster Reichelt
LED-Treiber
MAX7219 Reichelt
C1-C4 Kondensator; 100 nF Reichelt
C5-C8 Elektrolytkondensator; 10 μF Reichelt
Beispiel-LEDs
Cree 5 mm
Warnung!
Dieser Widerstand ist nur für die oben genannten LEDs gültig. Für andere LEDs muß er anhand der Datenblätter für die LEDs und des MAX7219 neu berechnet werden!
iSet Widerstand; 23,7 kOhm Reichelt
Optionale Bauteile
Stiftleisten Reichelt
Buchsenleisten Reichelt
Kurzschlußbrücken Reichelt
DCF77-Empfänger Pollin
Programmierung des Mikrocontrollers
USB-BUB II Jee-Labs