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
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.
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
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.