mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 433MHz Funksender


Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich weiß, das Thema wird mittlerweile nervig...

Ich habe eine Funk Hausürklinge. Die hat rund 20m Reichweite in der es
sicher fukioniert. Bis rund 50m kann man das Signal auf dem Oszilloskop
erkennen.

Den Sender + Empfänger habe ich ausgebaut und an einen AVR
angeschlossen.
Gesendet wird ein Datenblock in Manchestercodierung mit vorangestellten
0xAA zum Einschwingen des Empfängers mit 1200Baud.
Im Bereich um die 2m funktioniert das ganze wunderbar.
Ich brauche aber 10m Reichweite und da geht garnichtsmehr.

Hat jemand irgendein ein kleines Lib mit der man einen Datenblock
übertragen und wieder empfangen kann, oder irgendwelche Tips ?

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ohne deine Schaltung zu kennen, würde ich mal darauf tippen, dass du das
demodulierte AM-Signal direkt an einen Pin deines AVRs angelötet hast.
Bei Entfernungen > 2m reicht der Signalpegel nicht mehr aus, den AVR
einen high-Pegel erkennen zu lassen (siehe Schwellenwert im
Datenblatt).
Die Lösung: Entweder internen oder externen Komparator verwenden.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das IC liefert saubere CMOS Pegel, daher sollte es eigentlich kein
Problem sein. Auf dem Oszillosk erscheint auch ein schönes 0V/5V
Rechteck-Rauschen.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo liegt denn dann genau das Problem, wenn die Klingel bis 20m
funktioniert?
Oder sendest du evtl. zu schnell, z.B. mit 12000Baud statt mit 1200
Hab' bei meinem 433MHz Sender-IC gelessen, dass maximal 10000Baud
möglich sind)?

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das kann vieles sein. Nur mal so die gröbsten Dinge, die mir jetzt
einfallen:
- Antenne
Ist die Antenne auf der Platine im Layout oder irgendeine Wurfantenne
dabei? Evtl. die Länge überprüfen
- Baudrate
Bei billigst-Empfängern sind nur niedrige Baudraten möglich. Versuchs
mal mit 600 Baud oder weniger.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Baudrate habe ich 1200Baud
Antenne war Orginal eine etwa 3cm lange Spule, jetzt ist sie ein 17cm
langes Kabel.
Mit einem Rechteckgenerator konnte ich bis zu 50kHz damit übertragen.

Am Empfänger kommen die Bytes an, sind aber total verrauscht. Ab und zu
kann man ein paar gute Bytes erkennen, aber danach kommt nur Mist.

Autor: cdg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Benedikt,

"kommen verrauscht an" wo denn ?

An der Antenne ?, ist normal.

Am Ausgang des Empfängers, also zum µC ?
Ist an sich nicht möglich, da sitzt ein Komparator,
also nicht rauschen sondern 0/5 Volt

Wenn du mal die Daten von den Funkthermometern
oder Wetterstationen anschaust, siehst du dort Reichweiten
von ca. 30m (im Freien)

Die Antennen an Sender und Empfänger beide gleich ausrichten,
beide horizontal oder beide vertikal.

MfG cdg

Autor: Ssss Ssssss (sssssss)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Am Empfänger kommen die Bytes an, sind aber total verrauscht. Ab und
zu
>kann man ein paar gute Bytes erkennen, aber danach kommt nur Mist.
Wie sendest du die Daten denn ?
Manchesterkodierung der Daten machst du aber, oder ?

Sende mal als Präambel mehrmals ein 0xAA damit der empfänger genug zeit
hat.
Nur zum testen ;)

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es kommen schon 0V/5V raus, aber die Impulse sind zufällig.
Und in diesem "Rauschen" gehen meine Daten unter.
Mit direkter Verbindung geht es, und manchmal auch über einige Meter
mit dem Sender.

Hier mal mein Code:
RF_TXD_byte sendet den Wert Manchester codiert.

  RF_TXD_byte(0);        //Einschwingen des Empfängers
  RF_TXD_byte(0);
  RF_TXD_byte(0);
  for (j=0; j<RF_TX; j++)
  {  uart1_putc(255);    //UART Sync
    uart1_putc(1);      //UART Sync

    RF_TXD_byte(0);

    uart1_putc(START1);      //Startzeichen 1
    RF_TXD_byte(START2);    //Startzeichen 2

    checksum=0;
    for (i=0; i<anzahl; i++)  //Daten
    {  if   (string[i]==STOP)
        RF_TXD_byte(string[i]);
      RF_TXD_byte(string[i]);
      checksum+=string[i];
    }
    if   (txcount==STOP)      //TX Zähler übertragen
      RF_TXD_byte(txcount);
    RF_TXD_byte(txcount);
    checksum+=txcount;

    if   (checksum==STOP)    //Checksumme übertragen
      RF_TXD_byte(checksum);
    RF_TXD_byte(checksum);

    RF_TXD_byte(STOP);      //Stopzeichen

    RF_TXD_byte(0);        //Folgebytes zur Erkennung vom Ende der
Übertragung
  }
  txcount++;

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

du hast doch hoffentlich nicht einfach die 3cm Spule zu deinem 17 cm
langen Kabel "aufgedröselt"?
Abgesehen von der jetzt wahrscheinlich fehlangepassten Antenne hat die
Spule nämlich noch den Zweck, die Antenne "künstlich" zu verlängern
(sogenannte Verlängerungsspule).
Ansonsten müsste deine Antenne nämlich 70 oder 35 cm lang sein (Lambda,
bzw Lambda/2).
Wie kommst du da auf eine Antennenlänge von 17cm?

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lambda/4 vielleicht ?
Eine Lambda/2 Antenne müsste dann schon ein Dipol sein, was bei 433MHz
recht selten verwendet wird.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, Fehler meinerseits.
Aber warum hast du die original-Antenne nicht einfach drangelassen?

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weil eine 3cm lange Antenne nicht gerade optimal ist.

Autor: Winfried Jaeckel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da es sich ofen bar um AM handelt ist der Fehler in einer zugeringen
Amplitude des demodulierten Signales vor dem Komperator zu vermuten.
Die Verstärkungseninstellung erfordert Fingerspitzengefühl, da ja der
L-Pegel nicht high ;-) werden soll. Wie wäre es mit einem Oszillogramm?
Abgegrifen vor dem Comperator und hinter dem Demodulator oder gar nem
Schaltbild vom Empfänger, hab mir küzlich auch so'n Gong bei Aldi
geholt, zum selben Zweck, aber erstmal nur aufgeschraubt.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
na ja, bei der 3cm Antenne hat doch alles bis auf 20 m Entfernung
geklappt. Ich verstehe nicht, warum du die 20m auf 10m
"runteroptimieren" möchtest.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die 20m waren mit der Funktürklingel. Mit dem Sender und Empfänger
daraus am AVR sind max. 2m möglich.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe das Problem gefunden:
Es liegt am Sender. Dieser kommt anscheinend mit den Spannungen nicht
zurecht: Wenn das Datensignal und der Vorwiderstand für das Datensignal
nicht passen schwingt anscheinend der Oszillator nicht richtig.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.