BlinkenNums

From BlinkenArea Wiki
Revision as of 00:01, 13 June 2010 by ArneRossius (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
zur Projektübersicht
English Version of this Page
Blinkennums-01.jpg
Jahr 2004
Anzahl Pixel 160 (10x4x4)
Graustufen / Farben 2
Leuchtmittel LED Display
Leistungsaufnahme 5V/1A
Kontaktperson Arne Rossius
Projekt-Website

Einleitung

Eigentlich wollte ich ja als erstes BlinkenProject etwas bauen, das BlinkenLights-ähnlich ist, aber bei mir lagen unglaublich viele LED-Anzeigen aus Pollin-Sortimenten herum, so dass ich mich entschloss, erst einmal diese Anzeigen zu verbauen. BlinkenNums besteht aus 16 Siebensegmentanzeigen mit je 1,5 Stellen (das bedeutet eine gewöhnliche Siebensegmentstelle mit einer Eins und einem Minuszeichen davor), die von 20 Schieberegistern des Typs 74HC164 angesteuert werden (10 Segmente je Anzeige, die DPs und Pluszeichen sind nicht beschaltet). Angesteuert werden kann BlinkenNums von allem, was mindestens 5 freie CMOS-kompatible Ausgänge hat, z.B. ein ATTiny oder auch der Parallelport eines PCs (dann ist aber unter Umständen, wie bei mir, noch ein Schmitt-Trigger für die Clock-Leitung nötig).


Beschreibung

BlinkenNums besteht aus einer Matrix von 4x4 Siebensegmentanzeigen, jede der Anzeigen kann Zahlen von -19 bis +19 anzeigen.


Schaltung

Aufbau

Die Schaltung enthält fast nur 74HC164 Schieberegister und Widerstände. Da jede Anzeige 10 Segmente hat (Minus, 2 linke Ziffer, 7 rechte Ziffer), sind für jede Zeile 5 Schieberegister nötig. Folglich werden für die Matrix aus 4x4 Anzeigen 20 ICs benötigt. Der Datenanschluss jeder Zeile ist seperat mit dem Parallelport verbunden, die Clock-Leitungen führen jedoch alle an den selben Pin. Die Ansteuerung von bis zu 2 BlinkenNums erfolgt über den Parallelport oder einen Microcontroller.

Im Schaltplan ist nur die Schaltung für eine Zeile gezeigt, die anderen Zeilen sind genauso aufgebaut. Die Anzeigen aus einer 0.5- und einer 1-stelligen zusammengesetzt, deswegen stimmen die Pinnummern nicht mit dem Original überein. Die Vorwiderstände der Anzeigen dürfen nicht zu klein gewählt werden, weil die ICs maximal mit 50mA Gesamtlast belastet werden dürfen (kann je nach Hersteller schwanken). Bei 8 Ausgängen dürfen das also maximal 6.25mA je Segment gezogen werden, ich habe deshalb Widerstände mit 560 Ohm verwendet, dann stellt sich ein Strom von ca. 5.25mA je Segment ein.

Zusammenfügen

Die vier Einzelschaltungen werden verbunden, indem die Clock-Leitungen sowie die Betriebsspannungsleitungen (Plus und Masse) von den einzelnen Schaltungen verbunden werden. Die Datenleitungen werden nicht verbunden! Für die Clockleitungen genügt es, nur einen Schmitt-Trigger (das ist der Teil mit den beiden Transistoren) zu verwenden und die Clock-Leitungen der ICs direkt miteinander zu verbinden. Je nachdem, wo das BlinkenNums angeschlossen wird und wie lang das Kabel dorthin ist, kann der Schmitt-Trigger in einigen Fällen auch ganz weggelassen werden. Räumlich sind die 4 Schaltungen übereinander angeordnet, so dass jede Einzelschaltung eine Zeile mit 4 Anzeigen bildet.

Anschluss an den PC

Die Schaltung kann problemlos an den Parallelport eines PCs angeschlossen werden. In diesem Falle sollte man unbedingt den Schmitt-Trigger verwenden, ohne hat es bei mir an keinem der PCs, mit denen ich es ausprobiert habe, funktiioniert. Die Belegung am Parallelport sieht so aus:

Parallelport Pin-Nr. BlinkenNums-Anschluss
1 Clock
2 Daten, Zeile 1
3 Daten, Zeile 2
4 Daten, Zeile 3
5 Daten, Zeile 4
18...25 Masse (GND)

Wie man sieht, sind die Datenausgänge D4-D7 (Pins 6-9) noch frei, es können also 2 BlinkenNums bzw. ein Doppel-BlinkenNums an einen Parallelport angeschlossen werden (entsprechende Software vorrausgesetzt).


Aufbau-Tagebuch und Fotos

2004-07-15

Ein Freund von mir ist zu Besuch für ein paar Tage hier, und wir beschließen, das Projekt mal in Angriff zu nehmen. Also schnell die fehlenden Teile (Schieberegister, Widerstände, IC-Fassungen, viel Kabel) für 2 BlinkenNums bei Reichelt bestellen und ungeduldig auf die Lieferung warten ;-)

2004-07-16

Während des Wartens entsteht schon mal der Name "BlinkenNums"

2004-07-17

Vor 2 Tagen bestellt und schon sind die Teile da (super, Reichelt!). Endlich kann es losgehen. Zunächst haben wir die Anzeigen und die IC-Fassungen auf je 2 Platinen gelötet, anschließend wurden - sozusagen in Fließbandarbeit - die Widerstände abgeknickt, in die Platinen gesteckt, die Drähte abgeschnitten und dann verlötet. Abends war dann gerade noch genug Zeit für die Spannungsversorgung der ICs.

Bn01.jpg
Die Unterseite mit den Spannungsversorgungsdrähten
Bn02.jpg
Die Platine von oben

2004-07-18

Leider muss mein Freund schon wieder nach Hause, also werde ich von nun an alleine weiter machen müssen

2004-07-19

Vorläufig mache ich erst mal nur eines der Geräte fertig. Heute habe ich nur die Verbindungen von Data und Clock der Schieberegister gelötet, sowie die Spannungsversorgungsleitungen fertig verbunden. Außerdem habe ich erste Fotos gemacht.

Bn03.jpg
Das Teilelager ;-)
Bn04.jpg
Die Unterseite der Platine mit den neuen Kabeln für Clock und Daten der Schieberegister

2004-07-21

Heute ging es an's Kabel löten. Die Hälfte hatte ich abends fertig, die andere ist bisher nur am Display angelötet.

Bn05.jpg
Ich beim Kabelschneiden (man kann sich keine wesentlich langweiligere Tätigkeit vorstellen!)
Bn06.jpg
Alle Kabel einseitig angelötet. Na, hat noch jemand den Überblick? ;-)
Bn07.jpg
Die erste Zeile im Probelauf.
Bn08.jpg
Die ersten beiden Zeilen sind fertig verkabelt.

2004-07-22

Fertig! Nachdem ich alle Kabel angelötet und ein kleines Testprogramm in Visual Basic geschrieben hatte, gibg zunächst mal gar nichts :-(. Es wurde nur wirres Zeug angezeigt. Nach einigen Stunden unermüdlichen Programmierens und Lötens sowie eines Tests mit händischer Ansteuerung (4 normale und ein prellfreie Taster) stellte ich fest, dass scheinbar die Flankensteilheit des Parallelports nicht ausreicht.

Bn09.jpg
Gar nicht so einfach, gleichzeitig die Platine auf der richtigen Höhe zu halten, die anderen Kabel davon abzuhalten, immer genau dahin zu fallen, wo ich eigentlich gerade löten wollte, und dabei auch noch zu löten ...
Bn10.jpg
Endlich sind alle Kabel fertig verlötet und gebündelt
Bn11.jpg
Das Ergebnis des ersten Tests (einklich™ sollen das Zahlen sein!)

Einen Schmitt-Trigger später wurde schon mal bei jedem Versuch das gleiche angezeigt, aber immer noch nicht das richtige. Eine zweite Untersuchung mit Tastern ergab dann, dass ich die Segmente in der falschen Reihenfolge an die ICs gelötet hatte. Glücklicherweise ließ sich das einfach beheben, indem ich die Reigenfolge der Schieberegister umkehrte (gar nicht so einfach, in so einem Kabelwust noch mit dem Lötkolben bis an die richtige Stelle zu kommen).

Bn12.jpg
Der Schmitt-Trigger am Stecker für den Parallelport (wie ich mich kenne, wird dieser experimentelle Aufbau auch erstmal so bestehen bleiben ;-))
Bn13.jpg
Das fertige BlinkenNums: alles funktioniert so, wie es soll.

Nun sind zwar die Anzeigen verkehrtherum anzusteuern, aber das kann ich in der Software schneller umprogrammieren als 160 Kabel umzulöten ;-).

2004-11-26

Nachdem ich seit ein paar Tagen auch Mitglied der BlinkenArea bin, habe ich endlich auch die Zeit (und Lust!) gefunden, am zweiten BlinkenNums weiterzuarbeiten. Nachdem ich erstmal den Tisch aufräumen musste (da lagen immer noch die abgeschnittenen Drähte vom ersten BlinkenNums und viele viele andere Teile) und dann auch noch die Druckerpatrone meinte, lieber auslaufen zu wollen als den Schaltplan auszudrucken, habe ich es heute nur geschafft, die Kabel zu schneiden und Betriebsspannungs-, Daten- und Clockanschlüsse sowie die erste Zeile zu verkabeln. Außerdem habe ich mit einem BlinkenNums-Steuerprogramm angefangen, welches auch unter DOS läuft und auch Buchstaben darstellen kann.

Bn14.jpg
Ein paar Kabel und die bereits vor 4 Monaten bestückten BlinkenNums-Platinen.

2004-11-27

Nach dem Aufstehen gleich weitergelötet und nebenbei die /dev/radio-Sendung über blinkende Objekte gehört. Das fertiggestellte BlinkenNums angeschlossen und bei der Gelegenheit den Stecker des ersten BlinkenNums um einen Anschluss für das zweite erweitert (SUB-D 9). Beim ersten Test funktionierte erstaunlich viel, nur ein paar Zeichen in der dritten Zeile machten Ärger. Die Probleme, die ich abwechselnd bei der Verkabelung, den ICs, den langen Kabeln und der Software suchte, waren dann auch irgendwann gelöst, als ich einen weiteren Schmitt-Trigger nur für das neue BlinkenNums eingebaut habe, allerdings benahm sich jetzt die vierte Zeile eigenartig. Um es kurz zu machen: einer der Clear-Anschlüsse hing in der Luft und war demnach mal High, mal Low, und die dazugehörige Zeile tat, was sie wollte. Als alles funktionierte, noch ein wenig am Programm gefeilt und festgestellt, dass ein P1/133 mit QB 7.1 viel schneller ist als ein P3/500 mit QBasic 1.1.

Bn15.jpg
Kabel löten. Die neuen Kabel von Reichelt haben irgendwie eine andere Konsistenz (sie sind weicher), was zwar verhindert, dass man sie noch durch die Löcher in den Platinen stecken kann, aber dafür bleiben sie auch öfter da, wo man sie gerne hätte, so dass die Kabelfernhaltungsklemme diesmal nur selten zum Einsatz kam.
Bn16.jpg
Die fertigen BlinkenNums übereinander. Hier kann man auch ablesen, wo das BlinkenNums demnächst zu besichtigen sein wird: auf dem 21C3, dem 21. Chaos Communication Congress.