Serielle Spielereien II

Im letzen Artikel habe ich beschrieben wie man die Pins einer Seriellen Schnittstelle anspricht. Viele haben sich gefragt: „Was soll ich mit lediglich 3 Pins anfangen?“ Mit den 3 Pins kann man bis 7 zählen, mit einen einfachen integrierten Schaltkreis (IC) schon bis 4095 – und man braucht nur 3 Pins um ihn zu steuern.

Wir benutzen einen 12 Stage Ripple-Bin Counter (HCF 4040 BEY) im DIP Gehäuse für ~0,33€. Mit diesen bauen wir eine halbe binäre Uhr. Halb weil wir nur 1 Einheit anzeigen können, also Stunden, Minuten oder Sekunden. Um daraus eine vollständige Binäre Uhr zu machen bräuchten wir ein paar mehr ICs, um die Übersichtlichkeit zu wahren beschränken wir uns auf eine Sekundenanzeige.

Der Aufbau – Schaltplan

Schauen wir uns zuerst die Pin-Belegung des Counters an:

Pinbelegung HCF4040BEY

Der Counter funktioniert wie folgt: Wenn er Strom hat (VDD+/VSS-) und einen Impuls auf Pin 10 bekommt zählt er +1. Die Zahlen werden Binär mit den Pins Q1-Q12 ausgegeben. Bei der Zahl 5 wären Q1 und Q3 an, die restlichen aus. Mit Pin 11 kann man ihn zurücksetzen.

Nun verbinden wir den IC mit der Seriellen Schnittstelle:

  • VSS (8) – GND (5)
  • VDD (16) – DTR (4)
  • Pulse Input (10) – TXD(3)
  • Reset (11) – RTS (7)

Bis auf den GND, kann man die PINs der Seriellen Schnittstelle beliebig vergeben. Danach hängen wir an die IC Ausgänge Q1-Q6 unsere LEDs. Fertig sieht es dann ungefähr so aus (die 4 kleinen Drahtstücke unter-rechts werden nicht gebraucht):

Die Programmierung

Zuerst schalten wir den Strom ein (DTR=TRUE). Danach reseten wir den Counter in dem wir RTS an schalten, eine Millisekunde warten, und wieder ausschalten.

        //1 Impuls
        comp.SetRTS(TRUE);
	Sleep(1);
	comp.SetRTS(FALSE);

Auf die gleiche weise senden wir so viele Impulse mit TXD bis der Counter die aktuelle Anzahl der Sekunden erreicht hat (30 Sekunden = 30 Pulse). Danach brauchen wir nur noch einmal in der Sekunde einen Impuls mit TXD senden. Bei 60 Sekunden reseten wir den Counter wieder. Und das wars schon wir haben eine binäre Sekunden Anzeige.

Bei mir leuchteten die LEDs nur schwach, ich habe dann den Impuls (TXD) negiert und so leuchteten die LEDs wesentlich stärker. Mit negiert meine ich anstatt Aus-An-Aus, An-Aus-An. TXD wird also am Anfang mit eingeschaltet, und für einen Impuls kurz ausgeschaltet.

Um eine komplette Uhr umzusetzen braucht man 2 weitere Counter und mehrere Und-Logik-Gatter. Mit den Und-ICs fängt man dann die Überläufe ab. Zum Beispiel bei 60 Sekunden wird ein Impuls an den Minuten-Counter gesendet. Bei meinen Aufbau (Serial-USB Adapter) reicht die Stromstärke nicht um alle Elemente mit genügen Energie zu versorgen. An diesen Punkt sollte man in Last- und Steuerstromkreis unterteilen. Wenn ihr Tipps, Hinweise oder ähnliches habt: Schreibt einen Kommentar.

 

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Time limit is exhausted. Please reload CAPTCHA.