Infrarot gesteuerte Relaisstufe         Letztes Update: 23.02.2006 15:41

Achtung: Diese Seite befindet sich erst seit kurzer Zeit im Aufbau. Es ist deshalb noch längst nicht alles vollständig und wird ständig erweitert bzw. umgeschrieben. Bitte daher öfters mal nachsehen, was sich geändert hat

Dieses Projekt entstand ursprünglich aus einem Thread bei www.beisammen.de

Leider ist es für Neulinge nicht so einfach sich dort anzumelden, weshalb ich einen neuen Support-Thread auf dem BeamerBoard gestartet habe. Also kann man sich mit Fragen und Anregungen jetzt dorthin wenden.

 

Worum geht es hier?

Oft stellt sich das Problem, dass man einige elektrische Verbraucher über eine Fernbedienung ein/ausschalten möchte. Dafür gibt es schon eine Reihe von fertigen Lösungen, aber fast alle funktionieren nur mit der Fernbedienung des jeweiligen Herstellers und sind nicht sonderlich flexibel. Insbesondere als Heimkino-Enthusiast hat man schon oft eine Universal-Fernbedienung zur Verfügung und möchte damit z.B. auch seine Motorleinwand, Maskierung, PC, Lampen, etc. steuern können. 

Die hier vorgestellte Schaltung ermöglicht nun eine Reihe von Funktionen mit jeder Fernbedienung auszulösen, die RC5-Codes beherrscht oder lernen kann. Man kann damit bis zu acht Relais in allen erdenklichen Kombinationen schalten. Und wem das nicht reicht, der kann einfach mehrere Schaltungen parallel betreiben und mit einer einzigen Fernbedienung steuern. Zusätzlich kann jede Funktion auch über die serielle Schnittstelle eines PCs gesteuert werden. Nachdem man alles getestet und auf seine Bedürfnisse konfiguriert hat, ist der PC für den Betrieb aber nicht mehr notwendig.

 

Was sind RC5-Codes?

RC5 ist die Bezeichnung für ein Infrarot-Fernbedienungs-Protokoll, dass von Philips entwickelt wurde. Viele andere Firmen benutzen ebenfalls das RC5-Protokoll zur Steuerung ihrer Geräte. Da wären z.B. Marantz und Löwe. Somit hat also jede billige Aldi-Universal-Fernbedienung mit Code-Datenbank auch RC5-Codes gespeichert. Die Pronto bietet darüber hinaus die Möglichkeit jeden RC5-Code direkt selbst anzugeben. Sollte die eigene Fernbedienung nur von anderen Fernbedienungen lernen können, kann man erwägen sich zumindest vorübergehend eine weitere Fernbedienung mit Code-Datenbank auszuleihen, mit deren Hilfe die Codes auf die eigene Fernbedienung angelernt werden können. 

RC5 ist meiner Meinung nach eines der schönsten Fernbedienungs-Protokolle die es gibt, da es zum einen bis ins Detail beschrieben wurde und zum anderen sehr störungssicher mit einem Mikroprozessor empfangen werden kann. Jeder RC5-Code besteht aus einer Geräteadresse (32 verschiedene) und einem Kommando-Code (128 verschiedene), zusammen ergibt das also 4096 mögliche Kombinationen. Über die PC-Verbindung ist es möglich sich den jeweiligen RC5-Code der gerade empfangen wird als Nummer anzeigen zu lassen. Diese Nummern kann man später zur Konfiguration der Schaltung verwenden.

 

Was ist ein PIC?

Bei dieser Schaltung verwende ich einen programmierbaren Mikrocontroller der Firma Microchip. Die ganze Familie dieser Bausteine der Firma nennt man PIC. So ein PIC ist ein kleiner Mikroprozessor mit einem wiederbeschreibbaren Festwertspeicher für das Programm (Firmware), etwas RAM und einem weiteren Speicherbereich (EEPROM), in dem sowohl der Anwender als auch der Prozessor Konfigurationsdaten so abspeichern kann, dass sie nach einem Stromausfall wieder zur Verfügung stehen. Weiterhin besitzt dieser Baustein eine Reihe von digitalen Ein/Ausgängen. Der PIC ist also ein kleiner Computer und das Gehirn unserer Schaltung. Hier verwenden wir den PIC16F628, der in einem 18-poligen IC-Gehäuse geliefert wird. Um nun mit diesem Chip irgendetwas sinnvolles machen zu können, muss er also zuerst programmiert werden. Das geht hier "in der Schaltung". Man muss nur einen Schalter umlegen und kann dann mit einem PC auch einem völlig leeren PIC seine neue Firmware übertragen.

 

Gibt es die Schaltung auch fertig aufgebaut?

Von mir gibt es diese Schaltung nicht fertig aufgebaut. Allerdings kann das Forums-Mitglied "Papsi" fertig aufgebaute Schaltungen anbieten und auch gleich auf die gewünschte Konfiguration programmieren. Wer sich also den Aufbau nicht selber zutraut, kann sich an Papsi wenden. Informationen dazu findet ihr in diesem Topic auf dem Beamerboard:

Platinen Ätzservice, IR Schaltung individuell

 

Wie schwierig ist es die Schaltung aufzubauen?

Man sollte ein wenig Übung mit dem Lötkolben haben, ein paar PC-Kenntnisse besitzen und eine rudimentäre Vorstellung haben wie Strom fließt. Etwas Wissen wie Relais arbeiten und wozu sie da sind, müsste man auch mitbringen. Will man damit 230V-Verbraucher schalten, dann sollte dieses auch nicht unbedingt das erste 230V-Bastel-Projekt sein, dass man in seinem Leben verwirklicht hat. 

Von Programmierung braucht man nichts zu verstehen und die genaue Funktion der elektronischen Bauteile braucht einen auch nicht weiter zu interessieren. Aber man sollte schon wissen, wo an einem PC die serielle Schnittstelle sitzt und wie man mit Notepad eine Textdatei bearbeitet. Ein Multimeter zur Verfügung zu haben ist auch ratsam.

 

Was kosten die Bauteile für die Schaltung?

Das hängt hauptsächlich davon ab, welche und wie viele Relais man benutzen möchte. Zudem kommen ja unter Umständen noch ein Gehäuse, Klemmen und sonstiger Kleinkram dazu. Die Kosten für die Bauteile der Kernschaltung (also ohne Relais) belaufen sich auf ca. 10 EUR. Alle Bauteile sind einfach bei einem Elektronik-Versender wie Reichelt zu bekommen.

 

Was kann die Schaltung?

OK, ich will mal ungeordnet ein paar Features aufzählen:

  • Bis zu acht Relais können unabhängig oder in Kombination geschaltet werden. Es brauchen nicht alle Ausgänge bestückt werden, also kann man auch einfach eine Schaltung mit z.B. nur einem Relais aufbauen.

  • Einfaches Firmware-Upgrade mit einem PC über ein simples abnehmbares serielles Adapterkabel.

  • Kommunikation mit der Schaltung über das gleiche Adapterkabel und einem Terminalprogramm wie z.B. Hyperterminal. (Es dürfte auch nicht schwer sein, über das Serial-Plugin für Girder dieses Gerät zu einem richtigen Girder-IR-Empfänger zu machen.)

  • Natürlich können so die Ausgänge auch über den PC gesteuert werden.

  • Bis zu 40 Speicherblöcke können vom User frei belegt werden. Jeder dieser Speicherblöcke enthält drei Werte:

    1. Der RC5-Code auf den er reagieren soll

    2. Wie er reagieren soll:

      1. Tastfunktion: das/die Relais wird/werden nur solange angezogen, wie man die Taste auf der FB drückt

      2. Ein: das/die Relais wird/werden angeschaltet

      3. Aus: das/die Relais wird/werden ausgeschaltet

      4. Wechseln: das/die Relais wird/werden ausgeschaltet, wenn es vorher angeschaltet war und umgekehrt.

      5. "eine zeitlang einschalten": das/die Relais wird/werden für eine bestimme Zeit angezogen. Die Zeit kann für jeden Befehl zwischen 0 und 400 Sekunden in Zehntelsekunden-Schritten eingestellt werden.

    3. Die Ausgänge auf die er das anwenden soll (bis zu 8 gleichzeitig in jeder Kombination wählbar)

    Der gleiche RC5-Code kann auch auf mehreren Speicherplätzen verwendet werden, sodass man z.B. mit einer Taste gleichzeitig eine Reihe von Ausgängen einschalten kann, ein paar andere ausschalten und wieder andere während des Drückens als Tastfunktion hat.

  • Der Zustand jedes Ausganges (Ein oder Aus) nach Stromausfall kann auch konfiguriert werden.

  • Eine Status-LED gibt es auch um schnell sehen zu können, ob die Schaltung arbeitet.

  • Bis jetzt verbraucht die Firmware etwa 50% des verfügbaren Speicherplatzes, sodass noch viel Platz für Erweiterungen ist.

  • Die Firmware wird später mal als Open-Source veröffentlicht. (Wenn die Kommentierung abgeschlossen ist)

 

Schaltplan:

Die Relaisspulen werden zwischen der positiven 12V-Versorgungsspannung und dem jeweiligen Ausgang des ULN-Relais-Treibers angeschlossen. Der ULN schaltet also sozusagen "die Masse durch", wenn er eine Relaisspule anziehen soll.

 

Aufbau des Programmier/Kommunikationskabels:

Wenn das Kabel nach Abschluss der Konfiguration nicht mehr benötigt wird, weil man die Schaltung ohne PC-Verbindung betreiben will, dann kann man auf der Decoderplatine die Kontakte 5 und 6 der Stiftleiste mit einem Jumper kurzschließen. Ohne diesen Jumper und ohne das Kabel würde der PIC nicht verlässlich sein Programm ausführen. Das Kabel kann so auch für die Arbeit an einer weiteren Decoderplatine wiederverwendet werden.

 

Anschlussdetails des TSOP 1736:

Der TSOP und die Anzeige-LED können natürlich mit einem Kabel weiter entfernt von der Platine montiert werden. Ein paar Meter gehen sicher noch problemlos. Für den TSOP sollte man dann aber geschirmtes Kabel verwenden.

 

Ein mögliches Layout auf einer Streifenrasterplatine:

Und die Lötseite:

 

Materialliste: 

Anzahl

Position

Reichelt-Link

Beschreibung

Preis/EUR

1

PIC

PIC16F628-04P

Das Gehirn unserer Schaltung

2,65

1

ULN

ULN 2803A

Treiber-IC zur Ansteuerung von 8 Relais

0,40

1

TSOP

TSOP 1736

IR-Empfänger

0,64

1

7805

µA 7805

Spannungsregler 5V/1A

0,17

1

LED

LED 5MM ST RT

Leuchtdiode 5mm rot

0,08

1

R1

METALL 220

Vorwiderstand für die LED, 220 Ohm

0,08

2

R2, R3

METALL 10,0K

Widerstand 10 K-Ohm

2 x 0,08

1

R4

METALL 4,70K

Widerstand 4,7 K-Ohm

0,08

1

C1

Z5U-2,5 100N

Kondensator 100nF

0,06

1

C2

RAD 100/25

Elektrolyt-Kondensator 100µF/25V

0,05

1

C3

RAD 105 10/63

Elektrolyt-Kondensator 10µF/63V

0,04

1

S1

T 215

kleiner UM-Schalter

0,08

1-8

Relais n

Fin 40.61.9 12V

Relais 12V 1xWechsler/16A

je 1,60

1

 

H25SR050

Streifenrasterplatine 50x100mm

0,46

2

 

GS 18P

18pol Präzisions-Fassungen für die ICs

2 x 0,19

1

 

SL 1X36G 2,54

Stiftleiste

0,17

1

 

BL 1X20G8 2,54

Buchsenleiste

0,34

1

  

D-SUB BU 09

SUB-D 9pol Buchse

0,10

1

  

KAPPE CG9G

Gehäuse für SUB-D 9pol Buchse

0,09

1

  

JUMPER 2,54GL SW

Jumper

0,05

1

 

MW 79-GS/6

Netzteil 12V (unstabilisiert)

4,00

Der Relaistyp ist natürlich nur ein Vorschlag. Jedes andere Relais mit 12V Spulenspannung funktioniert auch. So wurden z.B. auch schon KFZ-Relais verwendet. Das Netzteil reicht nur zur Versorgung der Schaltung und der maximal acht Relais. Will man also gleich noch andere Verbraucher mit 12V versorgen (Scheibenwischermotoren etc.), dann braucht man einen entsprechend stärkeren Trafo (mit Gleichrichtung).

 

Wie bekomme ich die Firmware auf den PIC?

Die Programmierung des PIC erfolgt über die serielle Schnittstelle des PC. Das Vorgehen ist etwa dieses:

  1. Man lädt sich die Software zum Programmieren des PIC herunter. Das Archiv entpackt man dann in irgendeinem Ordner.

  2. Danach lädt man sich die aktuelle Firmware herunter und entpackt die im Archiv enthaltenen Dateien am besten in den gleich Ordner, indem schon WinPic.exe liegt.

  3. Man steckt nun das Adapterkabel auf die Schaltung und verbindet es mit einer seriellen Schnittstelle seines PC. Sollte das Kabel nicht lang genug sein, kann man es mit einem normalen seriellen Verlängerungskabel verlängern (kein Nullmodem-Kabel!). Dann sorgt man dafür, dass die Stromversorgung der Schaltung angestellt ist und stellt den Schalter des Adapterkabels auf die "prog" Position. 

  4. Nun startet man WinPic.exe und wählt den "Interface" Reiter. Auf der Seite findet man ein Auswahlfeld mit der Beschreibung "an Port:" davor und stellt dort den benutzten COM-Port ein. Nicht durch die Start-Meldung "WARNUNG: Kann den Programmer nicht initialisieren!" nervös machen lassen. Das ist bei dieser Art von Interface normal. 

  5. Nun wählt man im Menü "Datei" den Eintrag "Laden & Chip programmieren (Alles)" aus und wählt in dem dann erscheinenden Dateiauswahldialog die .HEX-Datei mit der Firmware aus.

  6. Wenn alles richtig funktioniert, sollte nach ein paar Sekunden die Meldung "Programmieren beendet, keine Fehler" erscheinen. Der Schalter am Adapterkabel sollte jetzt in die "run" Position gestellt werden und man kann nun versuchen mit der Schaltung zu kommunizieren, um die Funktionsfähigkeit festzustellen.

Sollte das Programmieren nicht klappen, gilt es zuerst genau alle Leitungen und Lötstellen zu überprüfen. Es passiert selbst mir immer wieder mal, dass ich z.B. ein Kabel an den falschen Pin gelötet habe. Wenn ihr aber partout keinen Fehler finden könnt, meldet euch am besten im Support-Thread. Mit ein paar Tests sollte sich der Fehler einkreisen lassen.

 

Wie funktioniert die Kommunikation mit der Schaltung über die serielle Schnittstelle des PC?

Zuerst braucht ihr ein Terminal-Programm. Dafür reicht Hyperterminal, das ja auf jedem Windows-Rechner unter Zubehör installiert ist. Man startet also zuerst Hyperterminal und gibt einen Namen für die neue Verbindung an. Im nächsten Dialog wählt ihr nun unter "Verbindung herstellen über:" den COM-Port aus, an dem ihr eure Schaltung angeschlossen habt. Nun kommt die Frage nach den Anschlusseinstellungen und da gebt ihr folgendes an:

Bits pro Sekunde:

2400

Datenbits:

8

Parität:

Keine

Stoppbits:

1

Flusssteuerung:

Kein

Wenn der Schalter am Adapterkabel sich in der "run" Position befindet, sollte nun die Verbindung mit dem PIC hergestellt sein und ihr könnt einige Befehle an die Schaltung senden. Ein Befehl wird immer mit einem Buchstaben eingeleitet, wobei die Groß/Kleinschreibung keine Rolle spielt. Bisher versteht die Firmware folgende Befehle:

[H]elp:

Gibt einfach eine Liste der verfügbaren Befehle aus. Der Buchstabe in den eckigen Klammer ist jeweils die Taste, die ihr für den Befehl drücken sollt.

[V]ersion:

Gibt die Versions-Information der jeweiligen Firmware aus.

[D]ebug:

Schaltet den Debug-Modus an und aus. Wenn Debug "ON" ist, dann wird jeder empfangene RC5-Code über das Terminal angezeigt. Dieses ist sehr hilfreich um die Code-Nummern der jeweiligen Fernbedienungs-Taste zu ermitteln, damit man sie später leicht in seine eigene Konfigurationsdatei übernehmen kann.

[G]et State:

Gibt den aktuellen Status der Ausgänge zurück.

Bei den folgenden Befehlen kommt nach dem Drücken der Taste für den jeweiligen Befehl die Frage nach dem Port auf den die Funktion angewendet werden soll. Hier kann man entweder die Ziffern 1 bis 8 verwenden oder den Buchstaben A für alle.

[S]et:

Schaltet einen oder alle Ausgänge an. 

[C]lear:

Schaltet einen oder alle Ausgänge aus.

[T]oggle:

Schaltet einen oder alle Ausgänge um. Also wenn der Ausgang vorher an war, dann wird er ausgeschaltet und umgekehrt.

[P]ulse:

Schaltet einen oder alle Ausgänge für einen kurzen Moment an.

 

Wie kann ich nun die Schaltung auf meine Bedürfnisse konfigurieren?

Als erstes gilt es die passenden Codes der Fernbedienung zu ermitteln. Dazu nimmt man wie oben beschrieben über Hyperterminal Kontakt mit der Schaltung auf und drückt die "D" Taste um den Debug-Modus zu aktivieren. Wenn nun von dem Dekoder ein RC5-Code empfangen wird, sieht man in dem Terminal eine Ausgabe wie z.B. "06:002:1". Diese Zahlenfolge setzt sich zusammen aus der Geräte-Adresse (hier 6), dem Tasten-Code (hier 2) und dem "Toggle-Bit", welches bei jedem neuen Tastendruck zwischen 0 und 1 wechselt. Das Toggle-Bit interessiert uns nicht weiter und die Geräteadresse sollte für alle Tasten immer gleich sein. Nur die Tasten-Codes der gewünschten Tasten müssen wir uns jetzt merken. Bei dem RC5-Code ist es üblich, dass z.B. die Nummerntasten auch den entsprechenden Code liefern. Also wenn man auf die Taste "9" der Fernbedienung drückt, dann sollte auch ein "009" Code im Terminal angezeigt werden. 

Nun muss man das Konfigurations-Konverter.Programm in einen Ordner entpacken und in den gleichen Ordner die aktuelle Firmware legen (also die RC5.HEX). In diesem Ordner befindet sich auch eine Datei "config.txt" die eine Beispiel-Konfiguration enthält und die wir nun mit einem Text-Editor wie Notepad verändern wollen.

Schauen wir uns zuerst an, wie diese Datei aussieht:

;----------------------------
; Default Configuration File
;----------------------------

device 6 ; use RC5 device 6 (VCR2)
poweronstate ; we don't use any poweron state

; let's define the configuration slots

0, off, 12345678 ; on code 0: turn everything off
1, push, 1 ; on code 1: use pushbutton behaviour for output 1
2, push, 2
3, push, 3
4, push, 4
5, push, 5
6, push, 6
7, push, 7
8, push, 8
9, on, 12345678 ; on code 9: turn every output on

Zuerst sollte man wissen, dass Kommentare in dieser Datei mit einem Semikolon eingeleitet werden. Alles was nach einem Semikolon steht, wird einfach ignoriert und dient nur zur besseren Beschreibung der Anweisungen.

Die erste wirkliche Anweisung ist dann die Zeile, die mit dem Schlüsselwort "device" anfängt. Hier wird die RC5-Geräteadresse konfiguriert, die in unserem Beispiel die Nummer 6 hat. Der Schaltung wird damit mitgeteilt, dass sie nur auf RC5-Codes mit eben dieser Adresse reagieren soll.

Direkt darauf folgt die "poweronstate" Anweisung, mit der definiert wird, welche Relais gleich anziehen sollen, sowie die Schaltung mit Strom versorgt wird. In diesem Fall brauchen wir das nicht und deshalb steht hinter dem Schlüsselwort nichts weiter. Will man diese Eigenschaften nutzen, dann werden danach die Ausgänge angegeben, die anziehen sollen. Wie man die Ausgänge angibt, werde ich später aufzeigen.

Und nun kommen eine ganze Reihe Zeilen, die das Verhalten der Schaltung beim Eintreffen eines RC5-Codes beschreiben. Jede Zeile besitzt drei Teile, die durch Kommas getrennt werden. Als erstes kommt die Nummer des Tasten-Codes, den wir ja oben mit der Debug-Funktion ermittelt haben. Danach kommt ein Schlüsselwort, dass die Art der Aktion angibt. Hier gibt es nun folgende Optionen:

on: Es sollen Relais angezogen werden

off: Es sollen Relais ausgeschaltet werden

toggle: Es sollen Relais umgeschaltet werden. Wenn das Relais also vorher angezogen war, dann wird es dadurch abfallen und wenn es vorher abgefallen war, dann wird es dadurch anziehen.

push: Die Relais sollen solange anziehen, wie die Taste der Fernbedienung gedrückt wird. Also sozusagen eine Tastfunktion.

1-4000: Mit einer Zahl zwischen 1 und 4000 kann eine Zeit angegeben werden, die die Ausgänge anschalten sollen. Die Angabe ist dabei in Zehntel-Sekunden. Ein Wert von 100 bedeutet also, dass die Relais beim drücken der Fernbedienungstaste für 10 Sekunden anziehen und danach abfallen.

Als letzten Teil jeder Zeile kommt nun die Angabe, auf welche Ausgänge die Aktion angewendet werden soll. Hierzu gibt man einfach die Ziffer(n) des/der Relais an. Also wenn man nur "1" schreibt, dann wird diese Aktion nur auf den Ausgang 1 der Schaltung angewendet. Bei z.B. "145" würde die Aktion auf die Ausgänge 1, 4 und 5 wirken und "12345678" entsprechend auf alle Ausgänge. Die Reihenfolge der Ziffern ist dabei egal. Eine Angabe wie "342" ist also gleichbedeutend mit "234". Die gleiche Art die Ausgänge anzugeben, wird übrigens auch bei der "poweronstate" Anweisung verwendet.

Jetzt muss man noch wissen, dass mehrere Zeilen auch den gleichen Tasten-Code verwenden können. Damit kann man also auch verschiedene Aktionen mit der gleichen Taste auslösen.

Schauen wir uns mal ein paar Beispiele an:

3, push, 345

Diese Anweisung bewirkt, dass beim Drücken der Taste mit dem RC5-Code 3 die Ausgänge 3, 4 und 5 solange angezogen werden, wie man die Taste drückt.

4, on, 12
4, off, 34

Zusammen bewirken diese beiden Zeilen, dass beim Drücken der Taste mit dem Code 4 die Ausgänge 1 und 2 angeschaltet werden und die Ausgänge 3 und 4 ausgeschaltet werden.

5, off, 2345678
5, 50, 1

Zusammen bewirken diese beiden Zeilen, dass beim Drücken der Taste mit dem Code 5 alle Ausgänge ausgeschaltet werden, bis auf den Ausgang 1, der dann für 5 Sekunden anzieht und danach auch ausgeschaltet wird.

Nun sollte man die Anweisungen der Beispiel-Konfiguration soweit entziffern und verändern können. Um nun seine geänderte Konfiguration auf die Schaltung zu bringen, muss man eine neue Firmware erstellen. Nachdem man die geänderte "config.txt" gespeichert hat, startet man dazu das "config.exe" Programm und sollte eine kleine Meldung kriegen, dass die Erstellung einer neuen Firmware erfolgreich war. Anschließend befindet sich in dem Ordner eine "NEW.HEX", die dann genauso auf den PIC programmiert wird, wie es oben für die "RC5.HEX" beschrieben wurde.

 

Wie schließe ich einem Gleichstrommotor an, wenn ich z.B. eine fernsteuerbare Maskierung bauen will?

Für eine Maskierung muss man nicht nur den Motor anschalten können, sondern auch seine Drehrichtung umkehren können. Zudem ist es ratsam jeweils einen Taster vorzusehen, der den Strom unterbricht, wenn die Mechanik die maximale obere oder untere Endposition erreicht hat. Bei der Verdrahtung muss man dann allerdings darauf achten, dass man nach erreichen einer dieser Endpositionen noch immer mit der Maskierung in die andere Richtung wieder wegfahren kann. Ein mögliches Schema sieht etwa so aus:

Die mit dem Pluszeichen gekennzeichneten Stromversorgungsanschlüsse werden natürlich miteinander verbunden, aber um die Zeichnung einfacher zu halten ist das hier nicht mit eingezeichnet. Gleiches gilt für die Minus-Anschlüsse. Die Arbeitskontakte der beiden Relais leiten im Ruhezustand nur die Minusleitungen an die beiden Anschlüsse des Motors weiter. Der Motor kann sich also noch nicht bewegen, weil kein vollständiger Stromkreis angeschlossen ist. Die Endkontakt-Taster S1 und S2 sind im Ruhezustand geschlossen, leiten also die Steuerleitungen erst mal an die Relaisspulen weiter. Wird nun Relais 1 angesteuert und schaltet dadurch seinen Arbeitskontakt um, dann wird auf die linke Seite des Motors ein Pluspol gelegt und der Strom kann durch den Motor fließen. Der Motor wird sich also in eine Richtung solange drehen, wie das Relais 1 angezogen ist. Versäumt es nun der Benutzer das Relais rechtzeitig abzuschalten, dann berührt die Mechanik den Taster S1 und spätestens dann fällt das Relais 1 wieder ab, weil dadurch der Relais-Spulenstrom unterbrochen wird. 

Ist nun Relais 1 wieder zurückgesetzt, kann das gleiche Spiel mit Relais 2 erfolgen. Nur sind jetzt Plus und Minus an den Motorkontakten genau andersrum gelegt und der Motor dreht sich in die entgegengesetzte Richtung. In diesem Fall sorgt dann Endtaster S2 für eine rechtzeitige Abschaltung auf der anderen Seite der Verfahrstrecke. Sollten (versehentlich) beide Relais gleichzeitig angesteuert werden, dann haben wir auf beide Seiten des Motors den Pluspol gelegt und es bewegt sich wieder nichts. 

Man könnte theoretisch die Endschalter auch in den Laststromkreis legen, aber durch die hier vorgeschlagene Beschaltung müssen die Kontakte und Leitungen der Endschalter nur den geringen Steuerstrom verkraften können und so ist es möglich entsprechend kleinere zu verwenden.

 

Downloads:

Die aktuelle Firmware.

Die Software zur Programmierung des PIC.

Das Konfigurations-Konverter-Programm.