projekte:hex_trainer

Dies ist eine alte Version des Dokuments!


HEX-BIN-Trainer

Ein Teilprojekt im Dunstkreis der Ausstellung zur 2wickl2014.

„Binary Kitchen lehrt hexadezimale und binäre Zahlendarstellung“. Auf einer 7-Segmentanzeige wird ein zufällig gewürfeltes HEX Zeichen angezeigt. Die Nutzer müssen nun diese Zahl in Binärdarstellung eingeben. Fürs Zwickl geschah dies über vier Fussschalter. Bei richtigem Bit-Muster wird für eine gewisse Zeit eine Aktion ausgelöst (Jubelbox) sowie zeitgleich eine neue Zufallshexzahl ermittelt.

Eine einfache Umsetzungsmöglichkeit wäre, die Anzeige und die nötigen Eingabeschalter einfach an einen kleinen uC zu hängen und die primitive Funktionalität mit ein paar Zeilen Code abzubilden. Das wäre Stand der Technik ist aber langweilig.
Daher wurde die 2. Lösung gewählt.

Viel Lustiger ist es, die nötige Schaltung diskret, naja schon mit IC's, aber eben mit althergebrachten Logikschaltkreisen, aufzubauen. Ausserdem war es mal wieder interessant etwas in diesem Modus zu machen: Lochraster mit Einigen gelöteten Leiterbahnen, der Rest mit Kupferlackdraht „geroutet“.

Schaltungsbeschreibung

Zwei der vier NAND Gatter eines 74HC00 bilden einen standard C-MOS RC-Oszillator mit ca. 40 kHz. Über einen der NAND-Eingänge kann er aktiviert bzw. ausgeschaltet werden. Dieser Takt speist einen 4040 11-Bit Binärzähler, dessen niederwertigste vier Bit die „Zufallszahl“ bilden. 7-Segment Treiber, die den vollen Hex-Zeichensatz darstellen, sind schwer zu bekommen. Als Alternative wurde der Dekoder über ein altes 2732 EPROM realisiert, bei dem nur die ersten 16 Byte im Speicher mit Daten belegt sind. Jedes dar Datenbits aus dem EPROM schaltet masseseitig über einen BS170 MOS-FET ein Segment, bzw. den Dezimalpunkt, der Anzeige. Nachdem die Einzelsegmente aus vier in Serie geschalteten LEDs bestehen, werden diese an der gemeinsamen Anode direkt aus 12V versorgt. Bipolartransistoren (unbekannten Typs) in jedem Zweig bilden eine Art diskretem Stromspiegel mit starker Gegenkopplung. Damit kann die Helligkeit aller Segmente gemeinsam über einen Refernzstrom einigestellt werden. Parallel zum Anzeigedekoder liegt die Zufallzahl an einem 4585 vier Bit Vergleicher an.

Anzeige

Mit einem HEX fähigem 7-Segment-Treiber sollte aus dem 4-bit „Soll-Wert“ direkt die Anzeige angesteuert werden. Aber an HEX fähigen Treibern habe ich nur den 4311 oder 4368 gefunden, die aber bei den einschlägigen Versandhändlern nicht erhältlich sind.
Daher benutze ich hier eine Fallbacklösung. Die Warheitstabelle des Segmentdekoders wird einfach in ein EPROM programmiert. Die 8 Datenbits passen wunderbar zu den 7 Segmenten + Dezimalpunkt (der aber nicht benutzt wird :-)). Die Datenleitungen des EPROMS steuern über weitere Transistorteiber die Segmente des Displays.

7segment Decoderprogrammierung für das EPROM

Segmentpositionen

a
f b
g
e c
d dp

Warheitstabelle für die Segmentausgänge, nur die untersten 4 Adressbits sind benutzt, der Rest ist 0.

Addr
hex
D7D6D5D4D3D2D1D0Byte
hex
abcdefgdp
011111100FC
10110000060
211011010DA
311110010F2
40110011066
510110110B6
610111110BE
711100000E0
811111110FE
911110110F6
A11101110EE
B001111103E
C100111009C
D011110107A
E100111109E
F100011108E

Ein kleiner Bitfehler hatte sich noch eingeschlichen, das F war ein P. Ist oben in der Tabelle und auch in den EPROMS korrigiert.
Ich hatte noch drei „kleine“, fast schon historische, EPROMS rumliegen, die ich mit den Dekoderdaten gefüttert habe. Ein 2716 (2kByte) und zwei 2732 mit ganzen 4kByte Kapazität.
So alte EPROMS programmiert man natürlich stilecht mit legacy Hardware :-).

Auswertung

Vier Bit Vergleicher, was sonst.
4585 (Vergleicher)
Auslösetaste mit Mindestbetätigungsdauer über RC und Smidttrigger. Der Ausgang des Vergleichers muss also für eine bestimmte Zeit stabil ein „richtig“ ausgeben.

Aktuator

Liegt lange genug ein korrektes Vergleicherergebnis an, soll mit einem (retriggerbaren) Monoflop (74..123 liegt rum) für eine bestimmte Zeit der „Aktionsausgang“ aktiv werden. Gleichzeitig wird der Oszillator im Zufallsgenerator wieder freigegeben, so dass am Ende der Aktionsphase eine neue HEX-Kodezahl für die nächste Runde ansteht.

Da es sich um ein Einzelstück handeln wird, mache ich das auf Lochraster. Nicht weil ich den Aufwand einer „richtigen“ Platine scheue, sondern aus Spaß und nostalgischen Anwandlungen. Und weil ich für alles andere sowiso zu spät dran bin …

  • projekte/hex_trainer.1413741489.txt.gz
  • Zuletzt geändert: 2014/10/19 17:58
  • von 82.113.99.217