433 MHz Schaltkanalübertragung

Zuletzt aktualisiert: Freitag, 03. März 2017

Von einem Modellbaukollegen wurde ich gefragt ob es wohl möglich sei einfache Schaltkanäle mit günstigen (ein Paar kostet unter einem Euro) 433 MHz Sender und Empfangsbausteinen zu übertragen. Hintergrund ist die Übertragung von einer LKW Zugmaschine zum Trailer. Durch die Möglichkeit diesen abzukoppeln, sollte eine Funklösung her. Generell sind natürlich auch andere Anwendungen denkbar.

Nachdem meine ersten Versuche erfolglos blieben eine stabile Kommunikation zwischen Sender und Empfänger auszubauen (alle 100ms wurden die 8 Schalterstellungen als einzelner 8bit-Wert gesendet), wurde das Internet bemüht.

Zuerst einmal fand ich den Hinweis, dass der 433 MHz Empfänger bei 5V Spannungsversorgung vermehrt Störungen verursacht, was sich über eine Messung nachvollziehen ließ, so dass ich dessen Spannungsversorgung über zwei Dioden reduziert und sein Ausgangssignal per 10k Pull-up Widerstand gegen 5V wieder auf ein für den PIC notwendiges Spannungsniveau angehoben hatte – hier war meine Vermutung (nicht geprüft), dass der Empfänger wie zumeist üblich aktiv Minus schaltet und ansonsten nur seine Versorgungsspannung über einen weiteren Pull-up Widerstand auf den Ausgang legt. Beide Modifikationen erwiesen sich am Ende aber als nicht relevant und wurden wieder zurückgebaut.

Generell werden die Module von vielen Bastlern mit Atmega-Mikrocontrollern eingesetzt. Hier gibt es fertige Bibliotheken („Virtual Wire“, …) mit denen es leicht ist eine stabile Kommunikation aufzubauen. Für den von mir bei meinen PIC-Mikrocontrollern verwendeten C-Compiler habe ich so etwas aber leider nicht gefunden.

Letztlich stieß ich auf folgendes Bild, welches das Problem erklärte:

 

Wie man sieht (Vergleich des orangenen und grünen Signals) gibt es keinen stabilen Kommunikationskanal zwischen Sender und Empfänger, sondern der Empfänger muss sich bei jeder „Kontaktaufnahme“ des Senders erst wieder auf diesen synchronisieren und benötigt dafür mehrere Impulse (Datensignale) bzw. verliert in der Synchronisationsphase einige Signale. Diese Eigenschaft hat zur Folge, dass man den einzelnen Wert, der den Schalterstellungen entspricht, entweder wesentlich schneller als meine 100ms und zudem ständig übertragen muss oder eine Sequenz vor die eigentliche Nutzdatenübertragung vorschaltet, die dem Empfänger die Möglichkeit gibt sich mit dem Sender zu synchronisieren.

Da ich einerseits eine stetige Übertragung eines einzelnen Wertes nicht garantieren kann – der PIC soll ja nebenbei ja auch noch andere Aufgaben erledigen – und ggf. noch weitere Daten zur Übertragung vorhanden sein können, habe ich mich für die zweite Variante entschieden. Als „weitere Daten“ wird derzeit eine abgewandelte Kopie des eigentlichen Wertes gesendet, die es erlaubt eine Fehlererkennung durchzuführen.

Seitdem funktioniert der Prototyp ohne Probleme. Ohne zusätzliche Antennen (17cm) sind Übertragungsstrecken von einigen Zentimetern zu erreichen. Bei Verwendung von nur einer Antenne am Empfänger waren es einige Meter. Glaubt man den Berichten aus dem Internet, so sind bei Verwendung von zwei Antennen mehrere 100m möglich.

Testaufbau mit Prototypen (links: 433 MHz Encoder mit MS-Encoder und 433 MHz Sender; rechts 433 MHz Empfänger und 433 MHz Decoder mit MS-Decoder)

Detailansicht - vier Schaltkanäle (von 16) sind am Sender aktiviert (durch Brücken auf Minus gezogen) und werden beim 8 Kanal-Decoder angezeigt

Detailansicht des 433 MHz - Sende- und Empfangsmoduls

Wie geschrieben handelt es sich momentan noch um einen Prototyp. Ich plane das System mit meinen Multiswitchsystemen modular zu koppeln, so dass z. B. ein normaler 16 Kanal Multiswitchdecoder an eine 433 MHz Funkstrecke (433 MHz PIC-Encoder – 433 MHz Sender – 433 MHz Empfänger – 433 MHz PIC-Decoder – 16 Kanal MS-Decoder) angeschlossen werden kann oder dass ein bestehendes Multiswitchsystem um eine kleine Funkstrecke erweitert werden kann. Wie genau das letztendlich aussehen wird, wird sich zeigen.

 

So, die Version 1 habe ich mittlerweile umgsetzt. Dabei habe ich die bisherige Übertragung von nur achte Schaltkanälen auf meine üblichen 16 Kanäle erweitert.

Wie in der Abbildung oben ersichtlich, erlaubt das nun den Anschluss meiner normalen 16 Kanal Multiswitch-Decoder (in den nachfolgenden Bildern ist die FET-Variante in der Version 4 zu sehen). Da das Protokoll für den MS-Decoder identisch zu einem normalen Multiswitchsystem ist, d.h. der MS-Decoder empfängt genau die PWM-Signale, die auch von einem Empfänger kommen könnten, war keine Anpassung am Programm des Decoders notwendig.

Testaufbau (links: keine Änderung zum obigen Bild; rechts 433 MHz Empfänger und 433 MHz Decoder mit nachgeschaltetem MS-Decoder)

Detailansicht: 433 MHz Empfänger und 433 MHz Decoder mit nachgeschaltetem MS-Decoder

Beim 433 MHz Decoder (Version 2) habe ich, wie auf den Bildern zu sehen, noch eine 2x3 polige Stiftleiste vorgesehen. Hierbei handelt es sich um drei beschaltetes Eingänge des verwendeten Mikrocontrollers PIC 12F675, die mittels Kurzschlussbrücken auf Minus gelegt werden können (ein weiterer Pin des PICs blieb bisher unbeschaltet, so dass auch vier Eingänge verwendet werden könnten). Mittels dieser Stiftleisten soll man dann später eine Kennung des Decoders festlegen können, auf die er reagiert. Mit den drei Eingängen ist es dann möglich - wenn es funktioniert und sich die Sender nicht zu sehr in die Quere kommen - bis zu acht dieser Funksysteme unabhängig voneinander parallel zu betreiben.

Zum Abschluss hier dann mal das aufgebaute System (Version 2). Der Multiswitch-Encoder (auf Lochrasterplatine aufgebaut) erzeugt hierbei Signale, wie sie auch vom Empfängerkanal kommen würden, falls senderseitig ein Multiswitchsystem verbaut ist. Diese pulsweitenmodulierten Impulse (PWM-Impulse) werden durch den 433 MHz Encoder (kleine Platine auf der linken Seite) erkannt und die Schalterstellungen über das 433MHz-Funksystem an den 433 MHz Decoder (kleine Platine auf der rechten Seite) übertragen der sie dann wieder für den "Standard"-Multiswitchdecoder in PWM-Signale codiert.

Hierbei sind beide Elektroniken (433 MHz Encoder und 433MHz Decoder) über die drei Kurzschlussbrücken (Jumper) auf die gleiche "Kommunikations-Adresse" eingestellt.

Detailansicht 433 MHz Encoder                                                                         Detailansicht 433 MHz Decoder
(Anschlüsse: 433 MHz Sender, Sync-Eingang, RC-Empfängeranschluss)                (Anschlüsse: 433 MHz Empfänger, MS-Decoder, Spannungsversorgung)

  

Wie bei meinen Multiswitchdecodern besitzt der 433 MHz Encoder einen Sync-Eingang um sich einmalig (oder nach Aufforderung) auf die Signale, die vom RC-Empfängeranschluss, und somit vom verwendeten MS-Encoder im Sender) kommen, zu synchronisieren. Dabei erkennt der Encoder die vom MS-System verwendeten Impulslängen, ordnet diese Längen je nach ihrere Häufigkeit den zugehörigen Bedeutungen zu (Schalter geschaltet oder nicht) und arbeitet daher mit Encodern verschiedener Hersteller zusammen. Aufgrund der geringen Speichergröße des verwendeten 12F675 PICs, wird hier aber nur das sogenannte Mergen-Protokoll unterstützt.

Zum Abschluss möchte ich noch erwähnen, dass das Einstellen der Kommunikations-Adresse zwar funktioniert, sich mehrere Systeme aber dennoch stark beeinflussen, so dass Schaltanforderungen ggf. nicht oder nur stark verzögert umgesetzt werden. In meinen Testsystemen sendet jeder Encoder ungefähr alle 600ms ein Protokoll von ca. 15 Byte, was das 433 MHz Frequenzband eigentlich nicht extrem "dicht" machen sollte, so dass andere Systeme ihre Informationen nicht übertragen bekommen. Vielleicht sind in meiner Umgebung aber auch noch viele weitere Elektroniken in diesem Band unterwegs (Funk-Wetterstationen, ...). Naja, vielleicht untersuche ich das später nochmal genauer.

Zugriffe: 6566