Forum: Mikrocontroller und Digitale Elektronik Fragen zum MX- 05V/MX- FS- 03V Funkmodule


von Basti (Gast)


Lesenswert?

Hallo ich möchte gerne mal eine Funkverbindung zwischen 2 Atmega8 
herstellen. Dafür habe ich mir jetzt mal dieses Funkmodule bestellt.

http://www.ebay.de/itm/301659986222?ru=http%3A%2F%2Fwww.ebay.de%2Fsch%2Fi.html%3F_from%3DR40%26_sacat%3D0%26_nkw%3D301659986222%26_rdc%3D1

Leider finde ich überhaupt kein Datenblatt, deshalb habe ich ein paar 
Fragen.

Wo schließe ich das Modul am besten an den Atmega8 an. Ich vermute mal 
an einen Timereingang. Damit ich die High/Low Flanken messen kann.

Dann soll das ganze per Manchestercode übertragen werden diesen verstehe 
ich überhaupt nicht. Kann mir das mal jemand Kinderleicht erklären was 
da genau passiert??

Ich möchte aber kein fertiges Programm oder so ich möchte selbst 
verstehen was ich genau tun muss um den Sender/Empfänger ans laufen zu 
kriegen um erstmal einzelne Bits zu senden um darauf dann aufzubauen.

Dann habe ich gelesen das die Module irgendwie synchron laufen müssen 
soweit ich weiß kann ich mir das sparen wenn ich den Manchestercode 
benutze weil der das ja irgendwie sychronisiert. Mich interessiert aber 
auch damit ich das ganze verstehe wie ich ohne den Code die Module 
synchron kriege.

Nächste Frage wäre müssen die Module auch synchron zum Atmel laufen? Was 
muss ich beachten/bzw. tun?

Wie gesagt ich möchte nur ganz grob das ganze Erklärt bekommen ich 
erarbeite mir dann alle Themen selbst.

Vielen lieben dank Sebastian

von posti (Gast)


Lesenswert?

Hi

Deine Anfrage ist schon etwas her, da ich aber gerade selber auf der 
Suche bin, meine 'Erfahrungen':

Der Sender ist die kleinere Platine mit den drei Pinnen, von Links nach 
Rechts Data, Vcc, GND.

Der Empfänger besitzt 4 Pinne, wovon die beiden in der Mitte der Ausgang 
ist - warum zwei, kA.
Laut Oszi sind auf beiden Pinnen das Gleiche zu sehen.
Von Links nach Rechts wären hier also Vcc, Data, Data, GND.

Was mir aufgefallen ist:
Der Empfänger benötigt Pegelwechsel, sonst fängt er nach 1-2 Sek. an, 
mit 4,55kHz zu 'empfangen'.
Dieses Ausgangs-Signal hat bei mir einen kleinen Anteil unterhalb GND, 
denke, so werde ich den 'Sender ist aus'-Betrieb erkennen können.

Beim Antasten des Senders springt das Empfänger (mit 5V versorgt) Signal 
auf 3V bzw. ganz knapp über GND, je nachdem, ob Sender-Data gerade High 
oder Low ist.
Denke, so kann man direkt serielle Daten übertragen - werde Das 
zumindest Mal probieren - binnen einer Sekunde sollten hier ja 
Pegelwechsel vorkommen.

Leider sind mir nur Beispiele per Ardunino unter gekommen.
Nutze selber eine PicAxe - dafür wird Sie wohl reichen ;)

Über weitere Erfahrungen von Euch würde ich mich freuen.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Die kann man nicht so einfach an eine serielle Schnittstelle hängen - 
schaut euch mal an, was am Ausgang des Empfängers los ist, wenn der 
Sender nicht sendet. Bei den Störungen dreht der UART nur noch durch und 
liefert kein vernünftiges Zeichen. Ihr müsst also ein fehlertolerantes, 
eindeutiges Protokoll benutzen, damit eine Übertragung klappen kann. 
Wenn ihr das nicht alles neu erfinden wollt, schaut euch mal IRMP und 
IRSND an:
https://www.mikrocontroller.net/articles/IRMP
Das ist zwar eigentlich für IR Fernbedienungen gedacht, ist aber die 
gleiche Problematik, da auch IR Übertragungen gestört sein können.

Der einzige Unterschied ist die Modulation in IRSND mit 38kHz o.ä., die 
ihr für die Funkmodule nicht benutzen dürft.

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Matthias S. schrieb:
> Bei den Störungen dreht der UART nur noch durch und
> liefert kein vernünftiges Zeichen. Ihr müsst also ein fehlertolerantes,
> eindeutiges Protokoll benutzen, damit eine Übertragung klappen kann.

Das hat erstmal nichts mit Störungen und Fehlertoleranz zu tun.

Was der Empfänger da ausspuckt, ist das maximal verstärkte Rauschen der 
Welt, wenn kein vernünftiges Funksignal vorhanden ist und der Empfänger 
seine Empfindlichkeit hochgeregelt hat.
Für eine AM-Datenfunkverbindung brauch man Datenpakete mit Präambel zum 
Einpegeln, Synchronisation für richtigen Zuordnung der empfangenen Bit, 
i.d.R. ausreichend Pegelwechsel für Taktrekonstruktion und 
Gleichspannungsfreiheit, damit die High-Low-Erkennung funktioniert.

Um soetwas kümmert sich für Übertragung von Datenpaketen per Funk z.B. 
die RadioHead Bibliothek
http://www.airspayce.com/mikem/arduino/RadioHead/
oder der Vorgänger, die VirtualWire Bibliothek
http://www.airspayce.com/mikem/arduino/VirtualWire/

Fehlererkennung und Fehlertoleranz sind dann die nächsten Themen, um die 
man sich kümmern muss.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Wolfgang schrieb:
> Das hat erstmal nichts mit Störungen und Fehlertoleranz zu tun.

Ich wollte es einfach nicht noch komplizierter für den TE machen. Im 
Falle ohne Sender steht am Ausgang des Empfängers ein beinhartes 
Rauschen mit Digitalpegel. Das ist aber das gleiche wie eine dauerhafte 
Störung und deswegen als direktes UART Signal nicht brauchbar. Es muss 
also ein Protokoll her, das solche Störungen ignoriert und diesen 
gegenüber fehlertolerant ist.

von Andreas L. (andreas1900)


Angehängte Dateien:

Lesenswert?

Ich nutze einen RPi und das Funkmodul, um eine Fernbedienung auszulesen 
(Garagentor). Leider gelingt mir das nicht, weil ich das hier 
beschriebene Rauschen sehr dominant empfange und ein Drücken auf die 
Fernbedienung überhaupt nichts erkennbares erzeugt. Das Bild oben zeigt 
den "typischen" Empfang, ohne dass irgendwas gesendet wird.

Wie kann ich das Funkmodul "anlernen"? Ich habe praktisch keine internen 
Unterlagen für die Fernbedienung.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.