Bau und Betrieb einer Leuchtmatrix

Kann man mit nur 8 Bits vom Druckerausgang ein ganzes Feld von Leuchtdioden gezielt steuern?

Erarbeitet in einer Belegarbeit Schuljahr 1999/2000 Klasse 10 von Ricardo Roth, Roy Franzke und Thomas Göbel

Da wir festgelegt hatten nur 8 Bit auszugeben, mussten wir mit der Schaltung erreichen, dass jede Diodenreihe einzeln angesprochen wird. Dies erreicht der integrierte Schaltkreis 4017. Wird eine Reihe angesprochen, liegt also an der Basis des Transistors Spannung an, dieser wird durchlässig und kann leiten. Die Impulse für den integrierten Schaltkreis werden von uns ausgegeben und erzeugen den Takt. Mit jedem Takt, spricht der integrierte Schaltkreis die nächste Diodenreihe an und beginnt, wenn er hinten angekommen ist von vorn. Die richtigen Dualzahlen für jede Reihe kommen ebenfalls aus dem Druckerausgang. Dort treffen sie auf die Basis des Transistors und machen seine Sperrschicht somit durchlässig. Er wird leitend.

Wenn also die richtigen Daten (Dualzahlen) ausgeben werden und gleichzeitig die entsprechende Reihe vom integrierten Schaltkreis angesprochen wird, kann eine einzelne Diode leuchten.
Von 8 Bits des Druckerausgangs werden 7 Bits genommen, um zu entscheiden, in welcher Zeile der Matrix eine Diode leuchten soll. Das 8. Bit wird abwechselnd gesetzt und gelöscht, so dass an diesem Anschluss ein Taktsignal entsteht. Dieses Taktsignal erhält der Schaltkreis, der damit von einer Reihe zur nächsten weiterschaltet. Das geht so schnell, dass man den Eindruck hat, alle Reihen wären gleichzeitig in Betrieb.

Im Q-Basic-Programm "Matrix" sind zu allen Schritten Randbemerkungen gemacht, die es dem ahnungslosen Interessenten erleichtern, das Programm zu verstehen. Eine Zeile jedoch benötigt zu ihrer verständlichen Erklärung einen etwas ausführlicheren Text:

Für jeden Buchstaben gibt es 8 Data-Werte, jeder besteht aus 8 Reihen. In der Programmiersprache Q-Basic werden alle Data-Werte automatisch in eine Zeile geschrieben. Um nun die richtigen 8 Werte aus der langen Zeile herauszulesen, um jeden beliebigen Buchstaben darstellen zu können, entwickelten wir folgende Gleichung:

For x=1 to 8
     Spalte(x)=Zeichenfeld(8*ASC(Zeichen)-64)-8+x
next

Die Variable Zeichenfeld berechnet den Teil, in dem alle Datas hintereinander stehen. Aus diesem Feld löst man nun einen bestimmten Buchstaben heraus. Anhand des Buchstabens A wird nun die Arbeitsweise der Formel erklärt. Aus jeder standardisierten ASCII-Zeichentabelle kann man den dem Zeichen zugeordneten dezimalen Wert erlesen. Bei A wäre es die Zahl 65. Setzt man nun die 65 anstelle des Wortes Zeichen in der Formel ein, rechnet der Computer folgendes: 8*(65-64)-8+1 = 1. Er kommt also zur ersten Stelle der Datenzeile und beginnt die folgenden 8 Zahlen in Spalte(x) einzulesen. Würde ein R eingegeben werden rechnet er:

8*(82-64)-8+1= 137. An dieser Stelle beginnt er die 8 Werte des Buchstabens R einzulesen.

Wert = Wert OR 128 'setzt Bit 7
OUT &H378, Wert

Wert = Wert AND 127 'löscht Bit 7
OUT &H378, Wert
Hier noch einmal die Programmzeilen, mit deren Hilfe das Taktsignal erzeugt wird. Dieser Takt schaltet den Zähler immer einen Schritt weiter. Der neunte Schritt geht auf den Reseteingang, wodurch das Zählen wieder in der ersten Spalte beginnt.

An Material wurden benötigt

  • 56 Leuchtdioden (8 Pf bei Conrad)
  • ein SChaltkreis CD4017 (1,20 DM)
  • 15 Miniplasttransistoren npn
  • 15 Widerstände a 10 kW
  • 15 Widerstände a 100 W
  • 1 Stecker für Druckerport (0,95 DM bei A-Z)
  • etwas Kabel und viel Geduld beim Löten
Gesamtkosten unter 10,-DM
Anschlussbelegung des 4017


Und hier ein paar Screenshots aus dem Programm, welches hier heruntergeladen werden kann.

Download Download Download


zurück