Projekt „Kodierschalter an TPS“         

von Stefan Hamm              
              
Elektronik-Labor  Literatur  Projekte  Lernpakete  TPS



Video: https://youtu.be/2z9LwBt6XTk


Ein 16-stufiger Drehkodierschalter (0-9, A-F) mit 4-Bit-Binärausgabe wird an den Eingängen E1-E4 der TPS HT46F47 angeschlossen.

 

Damit kann man folgendes machen:

1. Ein gespeichertes Programm bequem auswählen, ohne mit Drahtbrücken hantieren zu müssen;

2. Im Programmiermodus direkt den Code durch eine einzige Schalterstellung eingeben, ohne x-mal die S1-Taste drücken zu müssen.

 

Voraussetzung: Zwei TPS in Grundschaltung gem. Anleitung

 

Zu 1.: Verwendet wird der Kodierschalter DRS4016 der Fa. knitter-switch, der im Elektronikfachhandel (z.B. conrad) für wenige Euro erhältlich ist. Leider sind die Ausgänge des Schalters spiegelverkehrt zu den Eingängen des TPS-Controllers (siehe Datenblatt), so dass man sich mit ein paar Drahtbrücken behelfen muss (siehe Schaltungsaufbau). Der gemeinsame Anschluss (C) wird auf GND gelegt. Zur Auswahl eines im Controller gespeicherten Programms muss nur noch der entsprechende Binärcode eingestellt werden.




Zu2.:

Prinzip: Es wurde ein kleines Programm für eine TPS mit Drehkodierschalter (siehe 1.) geschrieben, dass den Zustand des Schalters an den Eingängen E1-E4 einliest, an den LEDs der Ausgänge A1-A4 visualisiert und bei Druck auf die S1-Taste als Impulsfolge am PMW-Ausgang ausgibt. Verbindet man nun diesen PMW-Ausgang mit dem S1-Eingang einer zweiten TPS, so kann man im Programmiermodus der zweiten TPS direkt den gewünschten Code einstellen. Das Drücken der S1-Taste wird somit simuliert. Ein Nachteil soll nicht verschwiegen werden: Hat man am Kodierschalter versehentlich eine falsche Zahl eingestellt und möchte diese korrigieren, ist zu berücksichtigen, dass sich weitere Schalterstellungen additiv auswirken, d.h. es wird nicht zurückgesetzt, sondern weiter gezählt.

 

Hardware: Der PMW-Ausgang der mit dem Kodierschalter verbundenen TPS (TPS_Grundschaltung1, im Bild unten) wird über einen Optokoppler mit dem Eingang S1 einer zweiten, zu programmierenden TPS (TPS_Grundschaltung2, im Bild oben) verbunden (siehe Schaltplan). Um aus dem PMW-Signal eine geglättete Gleichspannung zu erhalten, wurde der RC-Tiefpassfilter aus der TPS-Anleitung verwendet. Das analoge Signal wird an den Anoden-Eingang des Optokopplers TLP521 der Fa. ISOCOM (Elektronikfachhandel, z.B. conrad) über einen Vorwiderstand (390 Ω) weitergeleitet. Der Typ 521 hat bei typischer Eingangsspannung (1,15 V) eine besonders geringe Stromaufnahme (IF = 10 mA, siehe Datenblatt) und schont damit den Ausgang des Controllers. Der Collectorausgang wird direkt mit dem S1-Eingang der zu programmierenden TPS2 verbunden, parallel zum Taster S1. Kathode und Emitter werden auf GND gelegt.

 

Software:

Die Adressen 1A-1D entsprechen dem Urzustand des Controllers und müssen nur programmiert werden, wenn sie verändert wurden. Bei E3, E4 an GND (entspricht Schalterstellung „C“ am Kodierschalter) wird nun beim Starten der TPS anstelle des Standardprogramms „Stoppuhr Start/Stopp“ das Programm „Kodierschalter“ angesprungen. Für das Programm wurde der Speicherplatz für das Unterprogramm „Tonausgabe“ geopfert. Funktionsprinzip: In einer Endlosschleife wird der Zustand der Eingänge E1-E4 und des Tasters S1 abgefragt, ersterer invertiert und an die an den Ausgängen A1-A4 angeschlossenen LEDs angezeigt. Sobald die Taste S1 gedrückt wird, verzweigt das Programm und führt einmal die Befehle der Schleife (Adresse 56-5B) aus, bevor diese Schleife A-mal durchlaufen wird (A= eingestellte Zahl am Kodierschalter). Jeder Durchlauf schaltet die Spannung am PMW-Ausgang von 0 (minimal) auf F (maximal) und nach einer Wartezeit wieder zurück und erzeugt so einen Impuls. Der zusätzliche Impuls (vor Betreten der Schleife) ist erforderlich, da der erste Tastendruck S1 die Eingabe im Programmiermodus vorbereit, ohne dass der Druck schon gezählt wird. Die Wartezeit nach einem Impuls bzw. zwischen zwei Impulsen ist notwendig, da sie sonst nicht als einzelne Impulse, sondern nur als ein Impuls erkannt werden. Nach meiner Erfahrung sind min. 200 ms und eine Impulsdauer von 500 ms bei Verwendung des RC-Tiefpassfilters erforderlich.

 

Adresse

Befehl

Daten

Kommentar

*1A

4

3

A = 0011

*1B

8

2

Seite 2

*1C

C

3

A = B?

*1D

9

0

Springe 20 „Wechselblinker“; voreingestelltes Programm, falls kein Programm über E1 bis E4 gewählt wurde

1E

8

5

Seite 5

1F

9

0

Springe 50 „Kodierschalter“; wenn E4, E3 = 0 (an GND)

50

6

4

A = DIN

51

7

A

A = NOT A

52

5

4

Port = A

53

C

C

S1 = 0?

54

3

4

Springe - 4

55

5

2

C = A

56

4

F

A = 15 (maximale Amplitude Impuls)

57

5

9

PMW = A

58

2

8 (5)

Warte 500 (50) ms (Impulsdauer)

59

4

0

A = 0 (minimale Amplitude Impuls)

5A

5

9

PMW = A

5B

2

7 (6)

Warte 200 (100) ms (Abstand zwischen zwei Impulsen)

5C

8

5

AdrHi = 5

5D

A

6

C-mal 56

5E

3

E

Springe - 14

*entspricht Urzustand des Controllers


Hinweis: Durch Weglassen des RC-Tiefpassfilters können sowohl die Impulsdauer als auch der zeitliche Abstand zwischen zwei Impulsen verkürzt werden (Daten bzw. Zeiten in Klammern)




Elektronik-Labor  Literatur  Projekte  Lernpakete  TPS