Tasten-Programmierwettbewerb                 

Beiträge von Hermann Nieder                                       

Elektronik-Labor  Literatur  Projekte  Lernpakete  TPS                      

Lüftersteuerung  

von Hermann Nieder



Der PWM-Ausgang der abgebildeten TPS mit einem Atmega8 auf einem Steckboard ist mit einem Eingang eines Leistungs-Motortreibers L293D auf einem kleinen Steckboard verbunden. Ein weiterer Eingang dieses ICs  ist an A1 der TPS-Steuerung angeschlossen. An die entsprechenden Ausgänge des Motortreiber-Bausteins lassen sich nun größere Verbraucher als die abgebildeten Leuchtdioden der TPS anschließen, wie zum Beispiel ein kleiner Lüfter mit Gleichstrommotor.  


Mit Schalter Q1 macht man den Motor M1 betriebsbereit, nachdem die TPS-Steuerung zuvor eingeschaltet worden ist.

Zum „Bedienteil“:
Die Taster RES* sowie S1* sind zu den Tastern RES bzw. S1 der TPS parallel geschaltet. Die Leuchtdiode LED1 ist an A4 angeschlossen und zeigt an, dass nun die Spannung für den  Lüftermotor eingestellt  werden kann. LED2 ist am PWM-Ausgang der TPS angeschlossen. Je heller sie leuchtet, desto größer ist der mittlere Wert der rechteckförmigen Spannung am PWM-Ausgang und damit auch derjenigen Spannung, die dem Motor durch den Treiber-Baustein angeboten wird.

Die folgenden TPS-Programmschritte ermöglichen die oben beschriebene Steuerung:

 
Adresse Befehl Daten Kommentar
00 1 0 Dout 0
01 2 A Wait 2 s
02 4 0 A=0
03 5 9 PWM=A
04 2 3 Wait 10ms
05 C E Skip if S1 =1
06 3 2 Jmp -2
07 2 3 Wait 10 ms
08 C C Skip if S1 = 0
09 3 1 Jmp -1
0A 7 1 A=A+1
0B 3 8 Jmp -8
0C      
0D      
0E      
0F      

Beim Einschalten der Spannungsversorgung  leuchtet LED1 am Ausgang A4 der TPS. Nach 2 Sekunden ist die Steuerung bereit. Mit dem Taster S1* (bzw. S1 an der TPS) lässt sich die  Spannung am PWM-Ausgang und damit die Drehzahl des Lüftermotors in bestimmten Schritten steuern. Wird schließlich RES* gedrückt, beginnt die Steuerung wieder  bei Adresse 00.



Der Lüfter ist der Sicherheit wegen gegen unbeabsichtigtes Berühren geschützt. Die „Fernbedienung“ der „Anlage“ befindet sich unmittelbar beim „Anwender“. Ist man derart ausgestattet, dann  lassen sich auch sommerliche Temperaturen („Affenhitze“) einigermaßen gut ertragen.


Lauflicht mit 5 Leuchtdioden

  von Hermann Nieder

 
 
Die abgebildete Lauflichtschaltung mit 5 Leuchtdioden verwendet zusätzlich zu den 4 Ausgängen A1 bis A4 der TPS deren PWM-Ausgang.
 

 
 
Der Treiberbaustein ULN2803 kann an seinen Ausgängen größere Lasten ansteuern als der TPS-Controller selbst. Hier im Beispiel sind es übliche 20-mA-Leuchtdioden an einer zusätzlichen Spannungsquelle mit Ub2 =  4,5V. Dies ist das TPS-Programm dazu:

 
Adresse Befehl Daten Kommentar
00 4 0 A=0
01 5 9 PWM=A, LED5 aus
02 1 1 LED1 an
03 2 8 Wait 500ms
04 1 2 LED2 an
05 2 8 Wait 500ms
06 1 4 LED3 an
07 2 8 Wait 500ms
08 1 8 LED4 an
09 2 8 Wait 500ms
0A 1 0 LEDs 1..4 aus
0B 4 F A=15
0C 5 9 PWM=A, LED5 an
0D 2 8 Wait 500ms
0E 9 0 JMP 0
0F      
 



Schrittmotor-Steuerung

von Hermann Nieder


Die abgebildete TPS mit einem Atmega8 auf einem Steckboard sowie einem Leistungstreiber  L293D an ihren 4 Ausgängen auf einem weiteren Steckboard lässt sich  z. B. dazu verwenden, kleine bipolare Schrittmotoren auf ihre Funktion zu testen. Im Bild ist gerade ein Exemplar  in Betrieb, das aus aus einem Diskettenlaufwerk ausgebaut wurde. Die Wicklungsanschlüsse des Motors waren zuvor mit einem Multimeter bestimmt worden, und da die Widerstände der Wicklungen groß genug sind, konnte der Motor unmittelbar an die Ausgänge des Leistungstreiber-Bausteins angeschlossen werden.



 
Dies ist die grundsätzliche Testschaltung dazu. Wenn man auf einfache Weise die Drehrichtung des Schrittmotorläufers ändern möchte, lässt sich dies durch Verwendung eines Schalters Q   bewerkstelligen, der ähnlich wie ein Kreuzschalter eine Umpolung ermöglicht. Für diesen Zweck wird ein 2-poliger Miniaturschalter(Ein/Ein) der Abbildung entsprechend  „intern bedrahtet“, bevor man ihn dann in  zwei Zuleitungen des betreffenden Motors einfügt. Je nach Stellung der Schalterkontakte von Q dreht sich der Läufer des Schrittmotors  im Betrieb  im Uhrzeigersinn oder in der entgegengesetzten Richtung.


 
Die Wicklungswiderstände der beiden abgebildeten Exemplare sind sehr klein, also sind zusätzliche Widerstände erforderlich, um die Wicklungen des gerade angeschlossenen Motors sowie das Leistungstreiber-IC  nicht zu überlasten. Dies ist das Listing für die TPS-Steuerung zum Test von kleinen Schrittmotoren::

 
Adresse Befehl Daten Kommentar
00 6 9 A=AD1
01 5 3 D=A
02 1 1 Port=1
03 D B Call 0B
04 1 4 Port=4
05 D B Call 0B
06 1 2 Port=2
07 D B Call 0B
08 1 8 Port=8
09 D B Call 0B
0A 3 A Jmp -10
0B 6 3 A=D
0C 5 2 C=A
0D 2 5 Wait 50 ms
0E A D C mal 0D
0F E 0 Return
 
 

Am AD1-Eingang ist der Schleifkontakt eines Trimmpotenziometers mit einem Widerstandswert von 10 k angeschlossen. Einer seiner äußeren Anschlüsse ist mit dem Pluspol der Spannungsquelle der TPS, das andere mit deren Masse verbunden. Der AD-Eingang wird zunächst abgefragt und der entsprechende Wert in der Variablen D abgelegt.

Das jeweilige Bitmuster für die Steuerung des Motors wird ausgegeben und  dann ein Unterprogramm aufgerufen. In diesem wird der Inhalt von D zunächst nach A und anschließend nach C übertragen. Darauf wird dem Inhalt von C entsprechend oft eine Wartezeit, hier 50ms, aufgerufen. Dann geht es zurück, um das nächste Bitmuster auszugeben usw. Bei Adresse A trifft der Mikrocontroller schließlich auf einen Sprungbefehl nach Adresse 0, also werden die Programmschritte erneut abgearbeitet. Der Läufer des Schrittmotors dreht sich je nach Einstellung am Trimmpotenziometer fortwährend mehr oder weniger schnell. Im Programmbeispiel oben  ist bei jedem der 4  Bitmuster jeweils nur eine Spule des Schrittmotors  eingeschaltet.  Eine Alternative dazu bietet das folgende Listing, bei dem stets zwei Spulen des Motors gleichzeitig in Betrieb sind:

 

Adresse Befehl Daten Kommentar
00 6 9 A=AD1
01 5 3 D=A
02 1 1 Port=5
03 D B Call 0B
04 1 4 Port=6
05 D B Call 0B
06 1 2 Port=10
07 D B Call 0B
08 1 8 Port=9
09 D B Call 0B
0A 3 A Jmp -10
0B      
0C      
0D      
0E      
0F      
 

Die Bytes für die Zeilen des Unterprogramms (Adresse 0B bis einschließlich 0F) müssen nicht erneut eingetippt werden, wenn sich bereits diejenigen für das Beispielprogramm nach dem ersten Listing oben   im Speicher des Mikrocontrollers befinden.

Durch  schrittweise Verringerung der Wartezeit an Adresse 0D erreicht man, dass der Läufer des betreffenden Schrittmotors sich schneller dreht, als dies bei der eingetragenen Wartezeit in beiden Beispielen der Fall ist.  Es gibt allerdings Grenzwerte für die „Taktfolge der Bitmuster“, die der betreffende Motor noch „verarbeiten“, ohne dass es zu „Schrittfehlern“  kommt.


TPS gibt Morsezeichen „CQ“ aus

von Hermann Nieder




Beim Experimentieren mit der abgebildeten TPS und einem Binärzähler-Baustein, hier im Bild ein CD4040, fand ich heraus, dass sich  mit diesem aus dem PWM-Signal ein hörbarer Ton gewinnen lässt. Die Tonhöhe kann man einstellen, indem man den Schallwandler an einen der Ausgänge des CMOS-ICs anschließt.


 
Der Ausgang A1 der TPS schaltet die Versorgungsspannung für den CD4040.

Das Programm, das  für die TPS eingetippt werden muss, ist je nach Anzahl der Morsezeichen, die  ausgegeben werden sollen,  schon recht lang.

Mit den folgenden Programmschritten blinkt die LED am Ausgang A1, und der Schallwandler piept  das jeweils das betreffende Morsezeichen, hier im Beispiel  für „C“ und „Q“. Bei erneutem Drücken von RESET werden die beiden Morsezeichen erneut ausgegeben.

0: 47  A=7                Mittleren Ausgabewert für den PWM-Ausgang einstellen
1: 59  PWM = A      „Generator für Tonerzeugung bereit“   
2: 11  Port=1               „dah“        Morsezeichen für Buchstabe „C“
3: 26 Wait 100 ms
4: 27 Wait 200 ms
5: 10   Port=0             Pause      
6: 26 Wait 100 ms
7: 11  Port=1            „di“
8: 26 Wait 100 ms
9: 10   Port=0            Pause
A: 26 Wait 100 ms
B: 11  Port=1            „dah“
C: 26 Wait 100 ms
D: 27 Wait 200 ms
E: 10   Port=0            Pause
F: 26 Wait 100 ms
10: 11  Port=1            „dit“
11: 26 Wait 100 ms
12: 10   Port=0           Pause zwischen aufeinanderfolgenden Buchstaben
13: 26 Wait 100 ms
14: 27 Wait 200 ms
15: 11  Port=1            „dah“        Morsezeichen für Buchstabe „Q“ 
16: 26 Wait 100 ms
17: 27 Wait 200 ms
18: 10   Port=0            Pause   
19: 26 Wait 100 ms
1A: 11  Port=1            „dah“   
1B: 26 Wait 100 ms
1C: 27 Wait 200 ms
1D: 10   Port=0            Pause
1E: 26 Wait 100 ms
1F: 11  Port=1            „di“
20: 26 Wait 100 ms
21: 10   Port=0            Pause
22: 26 Wait 100 ms
23: 11  Port=1               „dah“
24: 26 Wait 100 ms
25: 27 Wait 200 ms
26: 10   Port=0            Pause für eventuelles weiteres Zeichen
27: 26 Wait 100 ms     kann entfallen, dann hier bereits „30      Jmp -0“   
28: 27 Wait 200 ms   
29: 2A Wait 2 s            Pause von 2
2A: 30 Jmp -0             Ende


TPS-Projekt: Verbesserte Morsezeichenausgabe mit Unterprogrammen

 von Hermann Nieder

Das Programm für die  Ausgabe von Morsezeichen durch eine TPS, die in einem anderen Beitrag mit der zusätzlichen Schaltung für die Tonerzeugung beschrieben wird,  lässt sich verbessern. Man teilt es auf in ein Hauptprogramm sowie drei Unterprogramme, die auf  eine andere Seite, z. B. Seite 3, passen. Wenn  man Burkhard Kainkas Programm „Tippomat“ heruntergeladen hat und die kleine Schaltung dazu  aufgebaut ist,  überträgt man mit dem VB6-Programm  zunächst die folgenden Unterprogramme an die Page 3 der TPS:

0: 11  Port=1          „dah“
1: 26 Wait 100 ms
2: 27 Wait 200 ms
3: 10   Port=0
4: 26 Wait 100 ms    Pause „1 dit“
5: E0   Ret 0
6: 11  Port=1          „dit“
7: 26 Wait 100 ms
8: 10   Port=0
9: 26 Wait 100 ms    Pause „1 dit“
A: E0   Ret 0
B: 10   Port=0          Pause „3 dit“
C: 26 Wait 100 ms
D: 27 Wait 200 ms
E: E0   Ret 0

Nun vereinfacht sich das Programmieren von Morsezeichen sehr, da nach dem „Einschalten des Tongenerators“ die Seite 3 gewählt werden kann, wo man nun mit dem „Call-Befehl“ jeweils eines der oben vorgestellten Unterprogramme aufrufen kann, um damit die Morsezeichen für die einzelnen Buchstaben „aus „dah“ und „dit“ zusammenzubauen“. Dort steht auch das Unterprogramm für eine Pause, die  jeweils zwischen zwei Buchstaben eingefügt wird. Das Hauptprograrmm beginnt ab Seite 0, also wählt man mit dem oben erwähnten  Tippomat-Programm die  Page 0 und gibt dort z. B. folgende Programmschritte ein:

 0: 48  A=8
1: 59  PWM = A   „Tongenerator an“
2: 83   Page 3
3: D0   Call 0       dah      „T“
4: DB  Call 0B    Pause 3 dit
5: D6  Call 06      dit        „P“
6: D0   Call 0       dah
7: D0   Call 0       dah
8: D6  Call 06      dit
9: DB  Call 0B    Pause 3 dit
A: D6  Call 06     dit        „S“
B: D6  Call 06     dit
C: D6  Call 06     dit
D: DB  Call 0B    Pause 3 dit
E: D0   Call 0      dah    „Bindestrich“
F: D6  Call 06      dit
10: D6  Call 06    dit
11: D6  Call 06    dit
12: D6  Call 06    dit
13: D0   Call 0     dah
14: DB  Call 0B      Pause 3 dit
15: D0   Call 0       dah     „C“
16: D6  Call 06      dit
17: D0   Call 0       dah
18: D6  Call 06      dit
19: DB  Call 0B     Pause 3 dit
1A: D0   Call 0      dah     „O“
1B: D0   Call 0       dah
1C: D0   Call 0       dah
1D: DB  Call 0B    Pause 3 dit
1E: D0   Call 0       dah     „N“
1F: D6  Call 06       dit
20: DB  Call 0B     Pause 3 dit
21: D0   Call 0       dah     „T“  
22: DB  Call 0B     Pause 3 dit
23: D6  Call 06      dit      „E“
24: DB  Call 0B     Pause 3 dit
25: D6  Call 06      dit      „S“
26: D6  Call 06      dit
27: D6  Call 06      dit
28: DB  Call 0B     Pause 3 dit
29: D0   Call 0       dah     „T“
2A: 30 Jmp -0        Ende

Beim Einschalten der Spannungsversorgung für die TPS bzw. beim Drücken des RESET-Tasters blinkt die LED an A1 im Rhythmus der Morsezeichen. Zusätzlich ertönt der Piezo-Schallwandler. Möchte man, dass die Morsezeichen langsamer oder schneller dargeboten werden, hat man nur auf Seite 3 die Wartezeiten zu ändern, und schon werden wieder die Morsezeichen, diesmal aber  mit einer anderen Geschwindigkeit, geblinkt und gepiept. 


Einstellbarer Kurzzeit-Timer

von Hermann Nieder
 

 
 
 
Das Bild zeigt einen Kurzzeit-Timer. Die Ablaufzeit ist über ein Trimmpoti einstellbar. Der verwendete Baustein 74LS154 schaltet entsprechend dem Bitmuster an seinen Eingängen A, B, C und D jeweils nur einen Ausgang auf 0. Diese Eigenschaft verwende ich in diesem kleinen TPS-Projekt als quasi-analoge Anzeige für die Zeit. Der PWM-Ausgang dient zusammen mit einem mehrstufigen Binärzähler CD4040 und einem Piezo-Schallwandler zur Tonerzeugung bei Ablauf der eingestellten Zeit. Außerdem blinken dann die LEDs an den Ausgängen Q0 und Q1 des 74LS154, bis der RESET-Taster gedrückt wird.
 

 
 
 
 
Adresse Befehl Daten Kommentar
00 4 0 A=0  , Einstellen der Timer-Zeit
01 5 1 B=A    mit dem Trimmpoti, event. Korrektur,dann  RESET-Taster
02 6 9 A=AD1, quasi-analoge Anzeige der Ablaufzeit
03 5 4 Port=A, mit 15 grünen LEDs an den Ausgängen des 74LS154 
04 8 6 Page 6  Timer starten mit S1
05 D 0 Call 0
06 2 9 Wait 1 s   **
07 7 2 A=A-1, Herunterzählen
08 5 4 Port=A, und quasi-analoge
09 2 9 Wait 1 s , Anzeige  **
0A C 3 Skip if A=B
0B 3 4 Jmp -4, bis auf 0
0C 4 8 A=8    , dann PWM einschalten
0D 5 9 PWM=A, für Tonerzeugung
0E 1 1 Port=1    , mit CD4040
0F 2 7 Wait 200ms, abwechselndes. Blinken der LED an Q0
 
10 2 5 Wait 50ms  
11 1 0 Port=0        ; und der LED an Q1
12 2 7 Wait 200ms, sowie Piepen
13 2 5 Wait 50ms  , des Piezo-Schallwandlers
14 3 6 Jmp -6, bis Abschalten durch RESET-Taster
 
Anmerkung zu**:  2     9, also „Wait 1 s“ im Beispiel,  lässt sich z. B. auf 2  F, also „Wait 60s“ ändern. Damit erhält man einen einstellbaren Kurzzeit-Timer für 1 bis 15 Minuten. 


TPS spielt zusammen mit einem Timer-IC den Anfang einer Melodie

von Hermann Nieder




Im abgebildeten kleinen Projekt wirkt eine TPS-Steuerung zusammen mit einer der Timerstufen  eines NE556 als kleine „Soundmaschine“, die drei Noten einer Melodie spielt.




Ich fand es ganz praktisch, dass ich für den Aufbau der Schaltung auch wieder einmal mehrere Bauteile aus einem Conrad-Adventskalender von 2011 verwenden konnte. Der Schaltungsteil mit einem Optokoppler  sowie einem Trimmpotenziometer ist der Übersichtlichkeit wegen nur einmal dargestellt, wird aber dreimal benötigt.

Die Funktionsweise der kleinen „Soundmaschine“:
Wird der betreffende Ausgang der TPS eingeschaltet, wird die Kollektor-Emitter-Strecke des Fotowiderstands im jeweiligen Optokoppler beleuchtet und damit sehr niederohmig. Sie verbindet  in diesem Fall den an P1 gerade eingestellten Widerstand „praktisch“ mit dem Pluspol(+5V).

Da R2 und die parallel geschalteten vier Kondensatoren C1..C4 „fest“ sind, lässt sich „nur“mit P1 der jeweilige Ton der kleinen „Soundmaschine“ in einem bestimmten Bereich fein  einstellen. Mithilfe eines Frequenzzählers oder durch Vergleich mit einem Musikinstrument gelingt dies recht gut. Es sollten der Jahreszeit entsprechend die Noten E, F und G für den Anfang des Liedes „Bunt sind schon die Wälder“ gespielt werden. Bei der Übertragung des Programms in die TPS werden kurzzeitig alle drei Optokoppler angesteuert, und es ertönen  unerwünschte „Zwischentöne“. Mit der zusätzlichen Schaltung für den zweiten Timer konnte ich das „Katzengejammer“ während des Einspielvorgangs ausschalten, indem ich das Drahtstück  am Eingang Tri des zweiten Timers  (Pin8) im NE556 berührte. Bei High-Pegel an Out (Pin 9) ist der Transistor durchgesteuert und sorgt dafür, dass der Schallwandler praktisch überbrückt wird und damit keinen Ton von sich gibt.

Wenn bei Berühren des Drahstücks an Thr(Pin 12) der Ausgang Out des zweiten Timers(Pin9) auf Low-Pegel umschaltet, leuchtet die Leuchtdiode auf. Außerdem ist der NPN-Transistor  gesperrt und wirkt als sehr hochohmiger Widerstand parallel zum Piezo-Schallwandler. In diesem Fall kann man den  „Sound“ hören.

Dies ist das TPS-Progarmm der kleinen „Soundmaschine“:

0: 12  Port=2             „F“
1: 27 Wait 200 ms
2: 27 Wait 200 ms
3: 10   Port=0
4: 26 Wait 100 ms
5: 12  Port=2             „F“
6: 27 Wait 200 ms
7: 10   Port=0
8: 26 Wait 100 ms
9: 12  Port=2              „F“
A: 27 Wait 200 ms
B: 11  Port=1              „E“
C: 27 Wait 200 ms
D: 10   Port=0
E: 26 Wait 100 ms
F: 12  Port=2               „F“
10: 27 Wait 200 ms
11: 10   Port=0
12: 26 Wait 100 ms
13: 14  Port=4             „G“
14: 27 Wait 200 ms
15: 27 Wait 200 ms
16: 27 Wait 200 ms
17: 10   Port=0
18: 26 Wait 100 ms
19: 12  Port=2
1A: 27 Wait 200 ms
1B: 27 Wait 200 ms
1C: 27 Wait 200 ms
1D: 10   Port=0
1E: 30 Jmp -0


TPS steuert Schrägaufzugmodell

von Hermann Nieder
 

 
 
Vor einigen Wochen hatte ich mit Teilen aus einigen unvollständigen Kästen von Fischertechnik, die  einmal im Internet ersteigert worden waren, das abgebildete Schrägaufzugmodell gebastelt. Dieses wollte ich nun mit einer TPS steuern. Es sollte damit möglich sein, den kleinen Gleichstromgetriebemotor des Modells ein- und auszuschalten, und auch seine Drehrichtung sollte steuerbar sein. Die abgebildete TPS wurde dazu auf der Ausgangsseite um eine Leistungsstufe ergänzt. Da gerade eine fertig aufgebaute Relaisplatine mit 8 Relais aus einem Bausatz von Pollin zur Verfügung stand, schloss ich  von dieser 5 Eingänge an die TPS-Ausgänge A1..A4, sowie an PWM an.


 
 
Ein zusätzlicher „Hauptschalter“, der eine der noch drei freien Relaisstufen steuert, erlaubt es, während des Eintippens des TPS-Programms das  „Relaisgeklapper“  zu unterbrechen, indem  damit eine der Leitungen zum Getriebemotor abgeschaltet und erst für eine Testphase bzw. den Betrieb wieder zugeschaltet wird. Zwischen den verwendeten beiden Ausgängen der TPS und den entsprechenden beiden Eingängen der Relaisplatine  ist eine elektronische Verriegelung mit Gattern aus einem CD4001 eingefügt. Eine ähnliche Schaltung fand ich in einem früheren ELO-Sonderheft über die Steuerung von Robotermodellen.  Die Verriegelung sorgt dafür, dass bei gleichzeitigem High-Pegel bzw. gleichzeitigem Low-Pegel an den beiden verwendeten Ausgängen der TPS zwei Relaisstufen gleichzeitig schalten und damit einen Kurzschluss der Spannungsquellen verursachen.
 

 
Als Sensor oben am Modell dient eine Lichtschranke aus einem Fototransistor in einem kleinen Gehäuse und einem Glühlämpchen sowie einer kleinen Zusatzschaltung mit einem NPN-Transistor. Wenn das Aufzugwägelchen oben ankommt, wird der Fototransistor abgedunkelt (Low-Pegel am Sensor-Ausgang Us). Unten befindet sich als Sensor ein Reedkontakt(Schließer), der von einem  Magneten am Aufzugwägelchen aktiviert wird, wenn  dieses unten ankommt(High-Pegel).
 
Dies hier ist ein einfaches TPS-Programm für eine Steuerung des Aufzugmodells. 
 
 
Adresse Befehl Daten Kommentar
00 1 4 Zunächst aufwärts fahren
01 C 9 wiederholen, bis Sensor oben erreicht wird
02 3 2 bei Erreichen Low-Pegel, keinen Sprung -2 mehr,
03 1 0 nun Motor aus
04 2 B 5 s  anhalten
05 1 8 abwärts fahren
06 C 4 wiederholen, bis Sensor unten
erreicht wird
07 3 2 Bei Erreichen High-Pegel, keinen Sprung -2 mehr
08 1 0 Motor aus
09 2 B 5 s anhalten
0A 9 0 Sprung nach 0, also wieder aufwärtsfahren usw.
0B      
0C      
0D      
0E      
0F      
   
Die Kleinen im ersten Bild ganz oben durften während einer Testphase des Aufzugmodells  ausnahmsweise mitfahren, da sie in Begleitung eines Erwachsenen waren. 
 

 


TPS-Programmierhilfen mit kleinen Zusatzschaltungen

von Hermann Nieder
 

 
Die abgebildeten Zusatzschaltungen auf kleinen Steckboards dienen als Hilfe beim Eintippen von Programmen in eine TPS. Diejenigen unten im Bild lassen sich einfach mit einer Adapterleitung seitlich anschließen, wie z. B. hier im Bild an eine Franzis-TPS. Die andere oben mit dem Anzeigeelement ist mit  einer  Steckerleiste für Leiterplatten-Anschlussklemmen verbunden und kann bei Bedarf leicht entfernt werden, indem die Schraubverbindungen  der Anschlussklemmen  wieder gelöst werden.
 

 
 
Mit den beiden Timern in einem NE556 aus einem Conrad-Adventskalender 2011 sowie wenigen anderen Bauteilen lassen sich zwei Monoflops aufbauen, die verschiedene Einschaltzeiten aufweisen. An den Timer-Ausgängen sind Inverterstufen mit NPN-Transistoren angeschlossen. Diese führen  auf der TPS-Platine Schaltvorgänge aus, indem sie bei einer Ansteuerung die betreffende Taste für eine festgelegte Zeit überbrücken. Diese Zeit ist jeweils so gewählt, dass die angeschlossene TPS entsprechend den Angaben im Handbuch in den Programmiermodus  versetzt wird, wenn die Taste PROG gedrückt wurde, und die Zeiten beider  Monoflops abgelaufen sind. Als Anzeige dienen die abgebildeten Leuchtdioden, die nach  einer Betätigung des Tasters PROG ein- und nach Ablauf der jeweiligen Einschaltzeit ausgeschaltet sind.     
 

 
Mit dem oberen von zwei Timern in einem weiteren NE556 ist ähnlich wie im ersten Schaltplan oben ein Monoflop  aufgebaut, das auf der TPS-Platine den Taster S2 steuert. Der Taktgenerator mit dem Timer unten funktioniert, sobald die Spannungsversorgung eingeschaltet wird. Die Taktfrequenz ist so gewählt, dass bei nur kurzem Drücken des Tasters S1 gerade ein  Impuls an die TPS weitergeleitet wird. Wenn man den Taster gedrückt hält, hat man eine „automatische Wiederholfunktion“ (Auto-Repeat) zur Verfügung und kann an den Leuchtdioden an den Ausgängen der TPS beobachten, wie das betreffende Halbbyte „automatisch“ eingetippt wird. Lässt man die Taste los, kann man S2 drücken, um die nächste Adresse zu wählen.  
 
Die Anzeige im ersten Bild oben ist ein numerisches Display des Typs TIL309. Dieses  besitzt schon  ein recht komplexes „Innenleben“  und kann  bei einer Ansteuerung mit 4 Leitungen dem  betreffenden Bitmuster entsprechend  die  Ziffern 0..9, den Buchstaben A, das Minuszeichen  -, den Buchstaben C, nur den Dezimalpunkt sowie die Buchstaben   E und F darstellen. Es zeigt Ausgangssignale der TPS  fast im HEX-Format an. Das Steckboard mit dem oben erwähnten Display  hat allerdings wie im Bild eine eigene Stromversorgung erhalten, da  zu ihm  sehr viel mehr Strom fließt als zur TPS, für die es als Programmierhilfe dient.

TPS-gesteuertes Glücksspiel

von Hermann Nieder



Beim abgebildeten Projekt handelt es sich um ein einfaches Glücksspiel, das unmittelbar  nach Betätigen des Hauptschalters rechts im Bild beginnt. Nach einer kurzen Wartezeit werden darauf die grünen und gelben Leuchtdioden  einzeln sehr schnell nacheinander im Uhrzeigersinn ein- und ausgeschaltet, bis der rote Taster gedrückt wird. Dann hält das Lauflicht an einer der 16 Positionen an. Es beginnt erneut an der Ausgangsposition, wenn der graue Taster über der roten Leuchtdiode gedrückt wird. Vor dem Einschalten kann man mit dem Schraubendreher links im Bild an einem Trimmpotenziometer einen bestimmten Wert am Eingang AD1 der TPS einstellen. Für die Spielerin / den Spieler  geht es nun darum, mit möglichst wenigen Einschalt- und Ausschaltvorgängen  das Lauflicht genau an der Position anzuhalten, die dem Wert an AD1 entspricht. In diesem Fall blinken „als Belohnung“ die Augen des stilisierten Glücksschweinchens. 




Das Bild veranschaulicht, dass das oben erwähnte Glücksspiel wirklich von einer TPS, hier einer Version von Franzis, gesteuert wird.




Dies ist der Schaltplan des TPS-gesteuerten Glückspiels.  Der verwendete Vier-Bit-Binärdekoder/Demultiplexer 74LS154 sorgt dafür, dass nach dem Einschalten mit dem Hauptschalter rechts unten entsprechend dem Bitmuster an seinen Eingängen stets nur eine der Leuchtdioden gerade eingeschaltet ist. Dies ist auch dann der Fall, wenn die Steuerung mit S2 angehalten wird. Am Trimmpotenziometer P wird der Wert eingestellt, der gerade erreicht sein muss, dass man „Glück hat“, da dann die beiden grünen Leuchtdioden blinken. Mit Taster RES kann man ein neues Spiel starten. dies mit S2 anhalten usw. , bis der Hauptschalter betätigt wird. Die rote Leuchtdiode dient als Betriebsanzeige.

Dies ist das Programm zum oben beschriebenen Glücksspiel:

0: 69  A=AD1          Am Trimmpoti eingestellten „Glücks-Wert“ einlesen
1: 51  B = A             und nach B übertragen
2: 29 Wait 1 s          1 s warten
3: 71  A=A+1          Inhalt des Akkus um 1 erhöhen
4: 52  C = A             den augenblicklichen wert nach C
5: 54  Port = A         und auch an die Ausgänge A1..A4 übertragen
6: 22 Wait 5 ms       eine sehr kurze Zeit warten
7: CD  Sk if S2=0   und wieder an Adresse 3 springen,
8: 35 Jmp -5           solange nicht S2 gedrückt worden ist
9: 62   A=C             In diesem Fall den Wert von C in den Akku übernehmen
A: C3  Sk if A=B     ihn mit dem in B gespeicherten 
B: 30 Jmp -0            vergleichen und anhalten
C: 4F  A=15             Stimmen aber die Inhalte von A und B überein,
D: 59  PWM = A      dann ein  Blinklicht mit dem
E: 28 Wait 500 ms   PWM-Ausgang und Wartezeiten von 500ms
F: 40  A=0                so lange einschalten... bis Taster RES gedrückt wird,
10: 59  PWM = A     um bei Adresse 0 ein neues Spiel zu starten oder
11: 28 Wait 500 ms   der Hauptschalter die Spannungsversorgung
12: 36 Jmp -6            der TPS unterbricht.


TPS steuert Sieben-Segment-Anzeige

von Hermann Nieder




Mit einer TPS lassen sich trotz ihrer wenigen Ausgänge auf einer Sieben-Segment-Anzeige  bestimmte Buchstaben darstellen.



Aus den Angaben im Bild  kann man entnehmen, welche Ausgänge für die Darstellung der einzelnen Buchstaben  z. B. für das Wort „H A L L O“ jeweils ein- bzw. ausgeschaltet sein müssen.Es wird ein Anzeigeelement mit gemeinsamem Katodenanschluss verwendet. Dieser ist mit Masse verbunden.

Hier ist das Programmlisting für die TPS, mit dem die oben erwähnte Buchstabenausgabe möglich ist:
 
Adresse Befehl Daten Kommentar
00 4 F A=15
01 5 9 PWM=A, 5. Bit auf 1
02 1 A Port=10       H
03 2 9 Wait 1 s
04 1 B Port=11       A
05 2 9 Wait 1 s
06 4 0 A=0
07 5 9 PWM=A, 5. Bit auf 0
08 1 C Port=12       L
09 2 9 Wait 1 s
0A 1 0 Port = 0,   kurze Unterbrechung
0B 2 6 Wait 100 ms, zwischen  L u. L
0C 1 C Port=12       L
0D 2 9 Wait 1 s
0E 1 F Port=15      O
0F 2 B Wait 5 s
10 9 0 Jmp 0
 



Modell einer Schiebetür,  von Hermann Nieder
 

 
 
 
Die Abbildung zeigt den Eingang des Modells einer möglichen „Annahmestelle“, wo man seine Beiträge zum TPS-Contest „einreichen“ kann. Die Schiebetür am Eingang kann während der „Geschäftszeiten“ mit dem Taster rechts im Bild von außen geöffnet werden.
 

 
Ein Blick hinter die „Kulissen“ lässt rechts einen zweiten Taster im „Innern der Annahmestelle“ erkennen, mit dem man die Schiebetür auch von innen öffnen kann. Außerdem sieht man zwei Mikroschalter, von denen einer die hintere und der andere die vordere Position der Schiebetür erfasst. Diese wird durch einen Gleichstromgetriebemotor mit einem Zahnrad über eine Zahnstange bewegt. Zwischen dem  Motor und der Platine mit der TPS befinden sich der Hauptschalter für die Spannungsversorgung der TPS sowie je ein Taster zum Öffnen und Schließen der Schiebetür für den Fall, dass die Taster in Türnähe nicht funktionieren.  
 

 
Die Bauelemente der Schaltung außerhalb der TPS befinden sich zum größten Teil auf einem kleinen Steckboard. Einige der Verbindungsleitungen fehlen der Übersichtlichkeit wegen in der Abbildung. Außerdem sind darin die Leuchtdioden auf dem Steckboard nicht berücksichtigt. Diese waren in der Entwurfsphase recht nützlich, um Eingangs- bzw. Ausgangssignale zu veranschaulichen und Fehler im TPS-Programm zu finden. Es handelt sich um Exemplare mit geringem Stromverbrauch von  2mA . Ihre Vorwiderstände gehören zu einem Widerstandsnetzwerk mit jeweils 4k7.
 
Aus „Sicherheitsgründen“ soll die Schiebetür der „Annahmestelle“ beim Einschalten der Spannungsversorgung zunächst geschlossen sein. Ist dies nicht der Fall, dann dreht sich der Läufer des Motors, bis der Sensor „Tür geschlossen“ anspricht.
 
Dies hier ist das TPS-Programm dazu:
 
0: 11  Port=1        'Motor "Rechtslauf" ein
1: CA  Sk if Din2=0  'Tür schließen, bis Sensor
2: 32 Jmp -2         '"Tür geschlossen" erreicht
3: 10   Port=0       'Motor aus
4: C9  Sk if Din1=0  'Motor "Linkslauf" ein
5: 31 Jmp -1         'Wenn Taster an Tür
6: 12  Port=2        'betätigt, Tür öffnen 
7: CB  Sk if Din3=0  'bis Sensor "Tür offen"
8: 32 Jmp -2         'erreicht
9: 10   Port=0       'Motor aus 
A: 2B Wait 5 s       ' 5 min warten
B: 3B  Jmp -11       'und wieder bei Adr. 0 beginnen 
 

Bargraphanzeige mit Schieberegistern, von Hermann Nieder
 

 
 
Die abgebildete Bargraphanzeige mit zwei Schieberegistern 74HC4094 und Leuchtdioden an  ihren Ausgängen ermöglicht die quasianaloge Anzeige der Spannung an einem Analogeingang des TPS-Controllers.
 

 
 
Eine der Leuchtdioden ist jeweils eingeschaltet, wenn der betreffende Ausgang des Schieberegisters 0-Signal aufweist. Für die Bargraphanzeige der Spannung an AD1 von links nach rechts werden durch den Mikrocontroller stets zuerst an Eingang D  Einsen(1)  hineingeschoben, um die  betreffenden LEDs rechts von denjenigen, die leuchten sollen, auszuschalten, und darauf Nullen(0), um eine bestimmte Anzahl LEDs einzuschalten.
 
Dies ist das Programmlisting für die Bargraphanzeige:
 
0: 69  A=AD1  'AD1-Eingang einlesen
1: 53  D = A    'Wert in D ablegen
2: 7A  Not A    'Akkuinhalt negieren
3: 52  C = A    ' und nach C übertragen 
4: 11  Port=1   'D des 74HC4094 auf 1 für LED aus
5: 13 Port=3    'Clk des 74HC4094 auf 1
6: 11  Port=1   'Clk auf 0
7: A4   C mal 04 'C mal 1 an D hineinschieben
8: 12  Port=2    'Clk auf 1, D auf 0 für LED an
9: 10   Port=0   'Clk auf 0
A: B8   D mal 08 'D mal 0 an D hineinschieben
B: 14  Port=4    ' nun Str des 74HC4094 auf 1
C: 10   Port=0   ' Str, D und Clk auf 0
D: 26 Wait 100 ms ' 100 ms warten
E: 90  JMP 0      ' und das Ganze wieder ab Adr. 0
 
Die LED an Ausgang Q8 des zweiten Schieberegisters bleibt bei dieser Version des TPS-Programms im Betrieb stets ausgeschaltet. Soll eine Spannungsanzeige nur mit einer einzigen LED erfolgen, kann man  dafür z. B. das  folgende TPS-Programm verwenden:
 
0: 69  A=AD1
1: 72  A=A-1       'Korrektur
2: 53  D = A
3: 7A  Not A
4: 52  C = A
5: 11  Port=1       ' A1: D-Eingang des ersten 74HC4094
6: 13 Port=3        ' A2: Clk-Eingang beider 74HC4094
7: 11  Port=1
8: A5   C mal 05
9: 12  Port=2      ' notwendig
A: 10   Port=0    ' für Punktanzeige
B: 12  Port=2     'notwendig
C: 10   Port=0    'für Punktanzeige
D: 11  Port=1
E: 13 Port=3
F: 11  Port=1
10: BD   D mal 0D
11: 14  Port=4    'Str-Eingang beider 74HC4094
12: 10   Port=0
13: 26 Wait 100 ms
14: 90  JMP 0 
 
Die Leuchtdiode an Q1 des ersten 74HC4094 links bleibt stets dunkel, während entsprechend der Spannung an AD1 eine der anderen eingeschaltet ist.
 

Elektronische Mitbringsel, von Hermann Nieder
 

 
Die abgebildeten kleinen Projekte mit Leuchtdioden lassen sich z.B. mit etwas Löterfahrung auf Lochrasterplatinen aufbauen und mit ihren Anschlussdrähten in die Kontakte von Steckboards mit  TPS-Controllern einstecken. 
 


Dies ist der Schaltplan für den stilisierten kleinen Roboter. Die Leuchtdioden mit ihren Vorwiderständen sind so an die Ausgänge des verwendeten Mikrocontrollers mit der TPS-Firmware angeschlossen, dass sie auch bei der Programmierung mithilfe der Tasten als Anzeige für die Ausgangssignale der TPS an A1-A4 und am PWM-Ausgang  dienen.
 
Dies ist das TPS-Programm für das kleine Projekt links oben im Bild:
 
0: 4E  A=14                 'Den Wert 14 in Akku laden
1: 51  B = A                'und dann nach B übertragen
2: 40  A=0                   ' den Inhalt des Akkus löschen
3: 71  A=A+1             ' und nun zweimal um 1 erhöhen
4: 71  A=A+1              'den momentanen Akkuinhalt
5: 59  PWM = A         ' am PWM-Ausgang (Nase wird schrittweise rot)
6: 12  Port=2              ' grüne LED an A2 (linkes „Auge“) blinkt im Wechsel,
7: 27 Wait 200 ms      ' und zwar für 200 ms
8: 14  Port=4               'mit grüner LED an A3(rechtes „Auge“)
9: 27 Wait 200 ms      'ebenfalls für 200 ms eingeschaltet
A: C3  Sk if A=B       ' Wenn Akkuinhalt und derjenige von B
B: 38  Jmp -8              ' noch nicht gleich sind, Sprung nach Adr. 3
C: 1F   Port=15          ' andernfalls alle Ausgänge („Augen“ und stilisierte „Hände“) einschalten
D: 2A Wait 2 s           ' für 2 s
E: 10   Port=0            'dann alle Ausgänge ausschalten
F: 29 Wait 1 s            'für 1 s
10: 90  JMP 0            ' und wieder zurück nach Adr. 0
 
 
 
 
 
Dies ist der Schaltplan für die Lochrasterplatine mit dem stilisierten Drachen. Dies Anordnung der Leuchtdioden ist ähnlich wie oben im ersten Schaltplan so gewählt, dass diese bei der Programmierung mithilfe von Tasten als Anzeige für die Signale an den Ausgängen des TPS-Controllers dienen.
 
Dies ist das Programmlisting  für das kleine Projekt:
 
0: 18  Port=8               ' grüne LEDs(„Augen“) eingeschaltet
1: 28 Wait 500 ms      ' für 500ms
2: 10   Port=0              ' ausgeschaltet   
3: 28 Wait 500 ms      ' nach Wartezeit von 500ms
4: 1D   Port=13          ' grüne LEDs der „Augen“ und LEDs
5: 29 Wait 1 s             ' des „Drachenschwanzes“ sind eingeschaltet,
6: 1A   Port=10          ' wobei die Letzteren abwechselnd blinken
7: 29 Wait 1 s             ' mit einer Wartezeit von 1 s
8: 46  A=6                  ' Wert 6 in Akku übernehmen
9: 52  C = A               ' und dann nach C übertragen
A: 40  A=0                 ' Akkuinhalt löschen
B: 71  A=A+1            ' und darauf zweimal um 1 erhöhen
C: 71  A=A+1             ' den momentanen Akkuinhalt
D: 59  PWM = A        ' am PWM-Ausgang (mit roter LED, „Nase“)ausgeben
E: 26 Wait 100 ms     ' 100ms warten
F: AB   C mal 0B      ' 6-mal den Sprung nach Adr. B ausführen
10: 40  A=0               ' Akkuinhalt zum Ausschalten der roten LED(„Nase“) löschen
11: 59  PWM = A      ' an PWM-Ausgang ausgeben
12: 90  JMP 0            ' und nun Sprung nach Adr. 0
 
Holtek-Mikrocontroller HT46F47 mit TPS-Firmware werden auch einzeln zum Verkauf angeboten. Vielleicht dient dieser Beitrag einem anderen Leser als Anregung, selbst eine kleine Platine mit einer ähnlichen Schaltung wie in den Beispielen oben im ersten Bild aufzubauen und diese mit einem TPS-Controller auf einem kleinen Steckboard zu betreiben.Werden noch drei kleine Taster, ein Batteriehalter und drei neue Mignon-Zellen dazugetan, kann das Ganze dann als Geschenk entsprechend verpackt werden, um damit einem noch Neuem gegenüber aufgeschlossenen Hobbyelektroniker oder einem bastelnden Jugendlichen eine Freude zu bereiten. Der Beschenkte erhält dazu ein Blatt Papier mit dem Programmlisting sowie Hinweisen auf die Seiten von Burkhard Kainka zum Themenschwerpunkt TPS-Programmierung bzw. TPS-Contest. Dort findet er genügend Anregungen, um in die Programmierung des TPS-Controllers einzusteigen  und dann das Programm im geschenkten Mikrocontroller mit der TPS-Firmware nach eigenen Vorstellungen  zu gestalten.
 

 

 





Elektronik-Labor  Literatur  Projekte  Lernpakete  TPS