Mein Bausatz für eine 8x7 Dot Matrix

2016 habe ich fabrikneue 1x7 Flip-Dot Streifen erwerben können. Bis heute lagen diese ungenutzt in der Schublade. Jetzt 2019 habe ich dazu passende Treiberplatinen entwickelt und gebaut. Dieses DIY Projekt stelle ich hier vor. Solange der Vorrat reicht, kann man bei mir solche Bausätze beziehen.

Die meisten europäischen Flip-Dot-Module sind aus vielen 1x7 Dot großen Streifen zusammengesetzt. Treiberbausteine und Schieberegister sind hingegen meist 4 oder 8 Bit breit. Um meine Ansteuerplatinen möglichst optimal auslegen zu können, habe ich 8 solcher 1x7-Dot Streifen je Modul zusammengefasst. Pro Modul benötigt man eine Trägerplatine für die Dot-Streifen und eine Leistungsplatine. Diese Module können an allen 4 Seiten beliebig aneinander gereiht werden. Die Steuerimpulse werden seriell von einem Modul zum nächsten durchgeschleift.

8x7-Dot Modul im Eigenbau. Links: Trägerplatine. Rechts: Leistungsplatine

8x7-Dot Modul im Eigenbau. Links: Trägerplatine. Rechts: Leistungsplatine

Auf jeder Trägerplatte befinden sich 8x7 = 56 Doppeldioden. Die Leistungsplatinen sind aus je 23 Bauteilen aufgebaut. Beim Bestücken hat meine selbstgebauter Pick & Place Maschine gute Dienste geleistet!

Pick & Place Maschine bei der Bestückung der 8x7-Dot Leistungsplatinen

Pick & Place Maschine bei der Bestückung der 8x7-Dot Leistungsplatinen

Montage der Flip-Dot-Module

Einmal auf die Platine aufgelötete Flip-Dot-Streifen sind nur sehr schwer zerstörungsfrei von einer Platine zu entfernen, da z.B. die Metallstiftchen nicht besonders fest im Kunststoff befestigt sind! Daher prüfe ich vor dem Verbau eines Streifens alle Dots mit einer 3 Volt Batterie. Bei dieser geringen Spannung flippen die Dots zwar schon, man kann die dünnen Drähtchen der Spule damit aber noch nicht durchbrennen.

Alle Dots müssen vor dem Verlöten auf Funktion geprüft werden.

Alle Dots müssen vor dem Verlöten auf Funktion geprüft werden.

Zur Sicherstellung eines gleichmäßigen Erscheinungsbilds der Dot-Fläche habe ich einen Abstandshalter aus 3 mm MDF gelasert. Für mich hat es sich bewährt, mit dem Bestücken in der Mitte zu beginnen. Man verlötet pro Streifen immer nur 2 Stifte mit der Platine, und zwar immer die ganz äußeren. Diese Lötpunkte kann man bei Bedarf später leicht noch einmal lösen, um die Position des Streifen zu korregieren. Achtung! Die Dotsreifen können in zwei Weisen verbaut werde. Elektrisch ist das nicht relevant - für ein schönes Gesamtbild sollte man aber schon immer alle Streifen in der gleichen Orientierung verlöten.

Zur Sicherstellung eines gleichmäßigen Erscheinungsbilds der Dot-Fläche sollte man sich einen Abstandshalter aus dicker Pappe oder Holz schneiden/lasern.

Zur Sicherstellung eines gleichmäßigen Erscheinungsbilds der Dot-Fläche sollte man sich einen Abstandshalter aus dicker Pappe oder Holz schneiden/lasern.

Passt alles, sind die restlichen Stifte der Dot-Streifen zu verlöten. Ich gehe dabei zeilenweise vor und fixiere immer nur einen Stift pro Streifen. Anschließend prüfe ich jeweils die korrekte Ausrichtung des ganzen Moduls - sicher ist sicher...

Beim Verlöten der restlichen Pins sollte man zwischendurch lieber einmal mehr schauen, ob noch alles gerade sitzt!

Beim Verlöten der restlichen Pins sollte man zwischendurch lieber einmal mehr schauen, ob noch alles gerade sitzt!

Stromversorgung und Ansteuerung

Die Stromversorgung und die serielle Modul-Ansteuerung erfolgt über eine 9-polige Stiftleiste. GND und die 12 Volt Flip-Spannung werden zur Sicherheit über 2 Stifte zugeführt. Die Dots flippen ab ca. 9 Volt. In kommerziellen Anwendungen werden sie mit 24 Volt betrieben, was auch mit dieser Platine möglich ist. 12 Volt genügen aber für die meisten Anwendungen. Zusätzlich wird eine 5 Volt Spannungsversorgung für die Logikbausteine benötigt. Achtung, diese Platine ist N I C H T mit einem Verpolungsschutz oder einer sonstigen Sicherung ausgerüstet - Eine Falschpolung wird dauerhafte Schäden auf der Platine anrichten.

9-poliger Stecker

9-poliger Stecker

Die verbleibenden 4 Kontakte übernehmen per Serial-in, Clock, RCK und Enable die serielle Datenübertragung. Diese ist in 5 Volt Technik ausgeführt und kann somit direkt von einem 5 Volt Arduino angesteuert werden. Möchte man mehrere Module in Reihe schalten, kann man alle nötigen Signale auf der gegenüberliegenden Platinenseite abgreifen. Dabei verbindet man dann Serial-out der 1. Platine mit Serial-in der folgenden Platine und so weiter.

Für einfache, langsame Anwendungen kann man die 12 Volt Flip-Spannung per Step-Up-Konverter aus den 5 Volt des Arduino bzw. der USB Leitung generieren - siehe Bild unten. Lässt man es aber so richtig flippen, schafft das entweder der USB Anschluss des Computers oder der 99 ct China Step up nicht mehr. Im Ergebniss werden dann nicht alle Dots vollständig umgeklappt - dann muss man die Geschwindigkeit drosseln oder eben doch ein externes Netzteil verwenden. Für den Anfang genügt aber so ein kleiner Step up völlig.

Achtung! unbedingt die Spannung am Poti auf 12 bis 24 Volt einregeln b e v o r man alles verdrahtet. Für gewöhlich sind diese von Haus aus auf die maximale Spannungserhöhung von z.B. 36 Volt eingestellt - das mag die Treiberplatine dann nicht unbedingt.

Und noch ein Hinweis: wenn man viel und schnell und dann auch noch mit hoher Spannung arbeitet, sollte man die Temperatur der Spulen und aller Bauteile im Auge behalten und ggf. alles abkühlen lassen bzw. die Flip-Rate verringern.

Steuerung per Arduino. Die nötigen 12 Volt Flip-Spannung werden aus den 5 Volt des Arduino per Step-Up erzeugt

Steuerung per Arduino. Die nötigen 12 Volt Flip-Spannung werden aus den 5 Volt des Arduino per Step-Up erzeugt

Programmierung

Zum Setzen oder Löschen eines Dots muss pro Modul nur ein Byte gesendet werden, aus dem auf der Treiberplatine der x und y Wert, sowie das Signal set oder reset dekodiert werden. Der Flipimpuls wird über den Enable-Pin an bzw. ausgeschaltet. Auf der Treiberplatine befindet sich ein Zeitglied, dass die Flip-Dauer bei Programmfehlern etc. hardwaretechnisch auf ein für die Spule noch erträgliches Maß reduziert. Schaltet man jedoch z.B. in einer Schleife ein und das selbe Dot immer wieder, kann diese Sicherung nicht wirksam werden und die Spulen könnten trotzdem Schaden nehmen! Dieses Problem kann jedoch softwaretechnisch umgangen werden!

Hier das grobe Kommunikationsgerüst. Gerne teile ich meine weiteren Programmideen mit Euch per Mail!

// ==================================================
// Feldwerte ergeben sich aus der Beschaltung des Flip Dot Moduls
// Dot Position x bzw y 1, 2, 3, 4, 5, 6, 7, 8
uint8_t bytex[] = { 0, 24, 20, 0, 28, 16, 12, 4, 8};
uint8_t bytey[] = { 0, 160, 0, 224, 32, 192, 128, 64};
#define BYTERESET 1
#define FLIPDAUER 500

// ==================================================
void dotSet(uint8_t x, uint8_t y){
digitalWrite(rclPin, LOW);
shiftOutFast(bytex[x]+bytey[y]);
digitalWrite(rclPin, HIGH);

digitalWrite(enablePin, HIGH);
delayMicroseconds(FLIPDAUER);
digitalWrite(enablePin, LOW);
}
// ==================================================
void dotReset(uint8_t x, uint8_t y){
digitalWrite(rclPin, LOW);
shiftOutFast(bytex[x]+bytey[y]+BYTERESET);
digitalWrite(rclPin, HIGH);

digitalWrite(enablePin, HIGH);
delayMicroseconds(FLIPDAUER);
digitalWrite(enablePin, LOW);
}
// ==================================================