erstellt 12.12.2014 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Funkübertragung mit Funkmodul |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Um
Informationen mit Funk zu übertragen gibt es heutzutage schon allerlei
fertige Funkmodule die Daten mehr oder weniger einfach übertragen , allerdings sind diese in der Regel relativ teuer. Um Daten per Funk zu übermitteln sollte man sich einige grundlegende Gedanken machen.
Ein zu einem kalkulierbaren Preis ( ca. 12 Euro Stk.) angebotenen Funkbaustein ist das Modul mit der Bezeichnung RF7020. ( Tranceiver = zusammen gesetztes Wort) aus Tranceiver ( Senden ) und Receiver( Empfänger) ein Tranceiver kann also senden und empfangen. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Das
RF7020 D13 Modul arbeitet im Lizenz freien Band was soviel bedeutet,als das
es nicht angemeldet werden muss und es auch ansonsten keine Genehmigung für den Betrieb bedarf. Enthalten ist ein 256 Byte Puffer, außerdem bietet das Modul eine Standard-UART/TTL-Schnittstelle und arbeitet in einem Spannungsbereich von 3,3 bis 5.5V mit besonders niedrigen Standby-Strom. Das Modul arbeitet auf einer Frequenz von 433,92 MHz ,und ist Standardmäßig auf 9600 Baud Datenübertragungsrate eingestellt. Die Ausgangsleistung beträgt 25 mW. Einige Parameter können laut Hersteller Softwaremäßig angepasst werden. Habe es aber noch nicht geschafft eine passende funktionierende Software dafür zu bekommen, auch ist es mir manuell noch nicht gelungen das Modul laut Datenblatt in den Konfigurations-Modus zu versetzen. Auf der Betreiberseite der Firma "Octamex" ist zwar in der Artikelbeschreibung die Rede von einer kostenlosen Software zur Konfiguration des Modules, jedoch wird diese Software von Octamex offenbar nicht angeboten, auf mehrfachen Anschreiben meinerseits fand diese Firma wohl keinen Grund überhaupt zu Antworten. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Optional gibt es eine USB Schnittstelle, die es ermöglicht das RF7720 Modul direkt an eine USB Schnittstelle am PC zu betreiben. Dieses USB-RS232 Wandlermodul (TTL-Pegel) stellt einen virtuellen COM Port dar. Treiber / Software für alle WIN-Systeme ab XP-32/64 sind bei Silabs erhältlich. Als Link gibt es den Treiber auch hier, allerdings ist es dann möglicherweise nicht die neuste Version: Somit kommt es als Schnittstelle für
Funkmodule bei der Mikrocontrolleranbindung an den PC zum
Einsatz. Pinbelegung der Buchsenleiste (RM2,54) PIN1 - GND |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Weil
es bei einer fertigen Schaltung die man selbst erstellt hat früher oder
später meist zu irgend welchen Problemen kommt , und man dann sehr umständlich nach dem Fehler suchen muss, zumal man meist nicht weiß ob die Ursache in der Hard-oder Software zu finden ist, hab ich mir angewöhnt nach jedem noch so kleinen Schritt die Schaltung zu testen. Also teste ich erst einmal ob die Übertragung vom PC zum Wandlermodul funktioniert indem am Wandler Modul PIN 4 und Pin 5 kurzgeschlossen wird, dann muss beim anschließenden Senden vom Terminal alle angegebenen Zeichen auch im Terminal erscheinen. Die Zeichen werden also im Terminalprogramm erzeugt gelangen über USB auf Pin 4 dann über die Brücke in Pin 5 wieder zurück zum Terminal Programm. Sollte dieser Test erfolgreich sein ist damit schon einmal sicher gestellt das dass Terminalprogramm samt der eingegebenen COM Schnittstelle in Ordnung ist. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Als Terminalprogramm benutze ich der einfacherhalber das Interne Terminal Programm der Bascom Oberfläche . Zu erreichen im Program "Bascom" im Menü unter Tools ----> Terminal Emulator. Dann noch die wichtigsten Parameter wie ComPort und Baudrate einegeben. Baudrate liegt bei 9600 vom Modulhersteller die Standardvorgabe , die COM Schnittstelle ist bei jedem PC unterschiedlich und kann wenn man es gar nicht weiß einfach getestet werden indem man bei 1 anfängt und sich dann nach oben vorarbeitet. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Dann geben wir einen Text ein, wen wunderst hier einmal den Text " Hallo Welt" Wenn wir so weit gekommen sind stimmt schon einmal die Kommunikation zwischen PC und TTL -USB Modul. Nun kann es aber sein das im Terminal Programm eine Echo Funktion aktiviert ist, das würde bedeuten das der Text den ich im Terminal Programm eingebe als Echo , also einfach als Duplikat angezeigt wird obwohl es vielleicht gar nicht über die USB Schnittstelle und zurück gekommen ist. Um also sicher zu stellen das mein Text auf jeden Fall über die USB Schnittstelle und zurück gekommen ist entferne ich einfach das USB Kabel . Kommt dann keine Text mehr zurück, kann man sich sicher sein das alles Ordnungsgemäß funktioniert. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Um
einen vollständigen Datenaustausch zu Verwirklichen und zwar zwischen
PC und Mikroprozessor benutze ich einen Atmega 8 Mikroprozessor mit
folgender Grundschaltung: |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Mit den Jumper 1(schwarz) und 2 (Blau) aktiviere oder deaktiviere ich den Spannungsregler, je nach Eingangsspannung. Der Stromverbrauch bei einer Eingangsspannung von 5 Volt und deaktivierten Spannungsregler liegt bei etwa 8 mA , also die reine Schaltung ohne Display. 10 mA zieht die Schaltung mit Display und insgesammt 15 mA mit Max 232. mit zusätzlichen Transeiver kommen wir auf ungefähr 55 mA. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Funktion:
Die Schaltung bekommt
ihre Versorgungsspannung wahlweise über eine Netzteil 6 bis 30 Volt
oder aber über vier Akkus ( 4 mal 1,2 Volt) um Alternativ mit beiden möglichen Spannungen zu arbeiten befinden sich zwei Jumper (Jumper 12 + 13) in der Schaltung.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Das Display ist ein Industrie Standard Display mit der Bezeichnung 162A mit einer Auflösung von 2 mal 16 Zeichen. P3 dient zur Kontrasteinstellung für das Display. Der Widerstand R7 und die zugehörige Leitung kann weg gelassen werden, wird nur benötigt wenn im Display eine Hintergrundbeleuchtung vorhanden ist die auch genutzt werden soll, ist hier aber nicht der Fall. Die USB A Schnittstelle dient zur Programmierung. Der Quarz ist normalerweise nicht nötig, wird hier aber unbedingt benötigt um später mit dem Funkmodul richtig kommunizieren zu können. Die Rote Led dient als Funktionsanzeige des Mikroprozessor. Erstellen wir doch gleich ein kleines Programm um die Schaltung zu testen, dazu lassen wir die Rote Led blinken und geben einen Text auf dem Display aus. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wenn es bis hier funktioniert
können wir weiter machen, und schließen als nächstes unser Funkmodul
an, dazu legen wir die Spannungsversorgung von 5 Volt an. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Als nächstes werden
noch zwei Led' incl Widerstände eingelötet, diese sollen später das
Senden und Emfpangen von Daten signalisieren |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Der
nächste Schritt ist eine Datenverbindung mit der die Daten die vom
Mikroprozessor gesendet werden zum Funk Modul gelangen |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Jetzt erweitern wir das Programm um die in BLAU angezeigeten Programmzeilen |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Im Programmcode sehen wir das zwei zusätzlichen Zeilen eingefügt wurden, zuerst die Anweisung " $Baud 9600" und die Anweisung Print"Hallo Welt". Viele der Anschluss-Pins des Atmega haben mehrere Funktionen , Standardmäßig können die meisten Pins als Digitale Ein oder Ausgänge benutzt werden, mit der Anweisung $Baud wird der Atmega angewiesen die Pins 2 und 3 als sogenannten UART Schnittstelle bereitzustellen an denen dann Daten gesendet und empfangen werden können. Jetzt werden am Pin3 Daten ausgesendet, und zwar die Daten die mit der Anweisung Print Formuliert wurden. Es werden also die Worte " Hallo Welt" am Pin 3 ausgesendet. Um das in einem ersten Ergebnis zu überprüfen befindet in der Sende Rotine die Anweisung die gelbe Led kurz ein und wieder aus zu schalten. Diese Datenschnittstelle wird mit der Gegenstelle nicht Synchronisiert, deswegen muss auf beiden Seiten sichergestellt sein das die Daten mit gleicher Geschwindigkeit gesendet wie auch empfangen werden. Die Geschwindigkeit ist im Funkmodul Standardmäßig mit 9600 Baud festgelegt, also muss auch der Mikroprozessor mit 9600 Baud arbeiten. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wenn die Gelbe Sende-Led nun
aufleuchtet sollten diese Daten auch über das Funkmodul versendet
werden, um das zu prüfen kann man Beispielsweise eine Funkscanner wer
denn einen solchen hat auf die Frequenz von 433,92 MHz einstellen und
sollte das Funken im Scanner hören können. Möglich ist es auch mit einen sogenannten Wanzenfinder die Funktion zu sehen oder zu hören. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Die
elegantere Möglichkeit ist aber die vom Prozessor ausgesandte Daten mit
einem Terminal Programm am PC zu empfangen. Dazu benötigen wir ein zweites Funkmodul und einen passenden Pegelwandler für USB. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Das
Funkmodul wird mit dem Pegelwandler zusammengesteckt, so das ein Stift
wie im Foto unten ( Blauer Pfeil ) zu sehen übersteht, dieser Stift
dient nur der Konfiguration des Funk Modules und wird deerzeit nicht
benötigt.
Das ganze Teil wird dann in eine USB Schnittstelle des PC gesteckt. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nachdem
hoffentlich bei Windows diese neue Schnittstelle automatisch erkannt
wurde, kann man ein X beliebiges Terminal Programm aufrufen. Wer kein Spezielles hat nimmt einfach das Interne zu Bascom gehörige stellt in der Konfiguration die Baudrate von 9600 und die passende COM Schnittstelle ein. Leider funktionierte das nicht immer bei mir , so hab ich mir dann ein kostenloses Terminal Programm herunter geladen mit dem namen Hterm. Das funktionierte tadellos. Jetzt sollten die vom Prozessor ausgesandten Aski Zeichen ungefähr folgendermaßen dargestellt werden, ungefähr desahlab weil es je nach Konfiguration des Terminal Programm etws anders ausehen könnte, zumindest aber sollte der Text "Hallo Welt "zu lesen sein. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nun
wollen wir aber nicht nur Daten senden sondern auch empfangen, dazu
erweitern wir die Software um folgende Programmschritte ( wieder in
Blau) . |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Damit
empfangen wir nicht nur wie gehabt die Daten "HalloWelt" sondern können
auch auf einen beliebigen Tastedruck am PC gefolgt von der Enter Taste
sehen wie die Blaue led kurz aufleuchtet und auf dem Display dann der
Scan Code der gedrückten Taste angezeigt wird. Für die Taste A der Code 97 oder Taste H der Code 104. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Um
Daten von einem Mikrocontroller zum anderen Mikrokontroller zu
übertragen , benötige ich eine zweite Platine mit Prozessor, damit das
Programm dann nicht für jede Platine einzeln erstellt werden muss,
solte die zweite Platine Baugleich sein, somit kann dann ein und das
selbe Programm für beide Platinen benutzt werde. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Auf jeder der beiden Platine kommt noch ein Taster und ein Piezo zu Versuchszwecke drauf. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Mit
dem Taster sollen
Daten zum versenden aktiviert werden als Daten werden erst einamal
Willkürlich einige Werte angegeben und mit dem Piezo soll jeweils ein
Ton ausgeführt werden wenn Daten Empfangen werden. Das dazugehörige Programm für beide Mikrocontroller sieht dann folgendermaßen aus. Die Frequenzangabe $crystal = 3686400 könnte etwas irritieren , weil ich nur zwei unterschiedliche Quarze zu Verfügung hatte, sind meine Bascom Programme nicht identisch weil sie sich in der Quarzfrequenzangabe unterscheiden, auch die Konfiguration des Displays unterscheiden sich bei mir weil sich meine Platinen weil schon vorhanden auch dort nicht gleichen.Wie gehabt gehört nur der Blaue Text zum Programm , der Rest dient nur der Verständlichkeit. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Jetzt
will ich versuchen eines der Funkmodule ( Funkmodul_2) mit einen
Temperatursensor zu versehen um dann die gemessenen Temperatur per Funk
zu übertragen. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Funkmodul 2 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Aktualisiert 16.01.2019 |
||||
Copyright by Manfred Schrod 2009 |