Hallo, ich möchte bei einem Empfänger eine LED Aus und Ein schalten können. Aber leider funktioniert das nicht :( Ich habe 2 Arduino UNO Boards einer mit einem 433mHz Empfänger der andere mit einem 433mHz Sender. Bei dem Arduino Board mit Sender habe ich eine UART wo ich vom HTerm aus ein Zeichen eingeben kann für An und Aus. Auf dem Sender Board kann ich die LED An und Aus machen nur bei der Funkübertragung, bei dem Empfänger Arduino, bleibt die LED immer an. Ich habe den Code mal angehangen, vielleicht könnt ihr mir ja sagen was ich falsch mache :) LG
Und welches waren denn die bisherigen Schritte zum Fehler finden ?
Hallo, vielelicht übersehe ich was, aber außer den UART-Sachen habe ich da nichts gesehen, was da nach Funk aussieht. Von welchen 433MHz Sachen ist überhaupt die Rede? Es gibt da wesentlich mehr als eine Version, was Frequenzen, Modulation, Protokoll usw. angeht... Gruß aus Berlin Michael
Du kannst nicht einfach ASCII Zeichen über Funk übertragen und hoffen, das da hinten das rauskommt, was du in den Sender reinschickst. Funkempfänger liefern immer Störungen (bei den meisten ist ohne Sender ein beinhartes Rauschen am Ausgang), so das du gezwungen bist, ein Protokoll zu benutzen * dem Störungen nichts ausmachen - ein UART wird beim ersten empfangenen Bit bis Pflaumenpfingsten warten, das ein Zeichen fertig wird. * das eindeutig zu decodieren ist und evtl. sogar eine Fehlererkennung und -korrektur hat. Nicht ohne Grund gibt es dafür Dinge wie Manchester- oder Biphasekodierung, Prüfsummen- und Timeout Behandlung.
Hallo, danke für die schnellen Antworten :) Im Anhang habe ich mal meine Module für das Senden und Empfangen. Aus dem Datenblatt habe ich Mudulate Mode: ASK, Frequenz:433,92MHz. Achso also einfach ASCII Senden ist nicht :( Wie sieht das dann aus mit z.B. einem Manchestercode oder CRC Prüfsumme? *.* Muss ich die Frequenz und die Modulation noch angeben? Wie könnte ich das im Code machen? LG
Matthias S. schrieb: > * dem Störungen nichts ausmachen - ein UART wird beim ersten empfangenen > Bit bis Pflaumenpfingsten warten, das ein Zeichen fertig wird Nö. Er wird ab fallender Flanke des Startbit genau 10 Bitzeiten warten und das Empfangene als Byte dekodieren. Bei verrauschter Leitung ist aber schon die korrekte Erkennung des Start Bits nicht mehr so einfach.
Jim M. schrieb: > Bei verrauschter Leitung ist > aber schon die korrekte Erkennung des Start Bits nicht mehr so einfach. Es ist sogar noch schlimmer - alles was da rein kommt, ist ein Startbit oder Datenmüll. UART geht also gar nicht für Funk. @TE: Es kommt drauf an, was du alles steuern willst. Ein guter Anfang ist z.B. IRMP: https://www.mikrocontroller.net/articles/IRMP Das läuft unter anderem auf AVRs und ist eigentlich für IR Fernbedienungen gedacht, mit sehr robustem Empfangscode. Da auch Infrarot Empfänger sehr viele Störungen ertragen müssen, ist die Problemstellung nahezu die gleiche wie bei Funk. Dazu gehört als Sender das IRSND Paket. Damit kannst du ohne grossen Aufwand brauchbare Übertragungen programmieren. Der einzige Unterschied ist, das du deinen Sender nicht zusätzlich mit 32-40kHz aufmodulieren musst wie einen IR Sender.
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.