Forum: Mikrocontroller und Digitale Elektronik 433MHz Funksender


von Benedikt (Gast)


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 ?

von Thomas (Gast)


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.

von Benedikt (Gast)


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.

von Thomas (Gast)


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)?

von thkais (Gast)


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.

von Benedikt (Gast)


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.

von cdg (Gast)


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

von Ssss S. (sssssss)


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 ;)

von Benedikt (Gast)


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++;

von Thomas (Gast)


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?

von Benedikt (Gast)


Lesenswert?

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

von Thomas (Gast)


Lesenswert?

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

von Benedikt (Gast)


Lesenswert?

Weil eine 3cm lange Antenne nicht gerade optimal ist.

von Winfried Jaeckel (Gast)


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.

von Thomas (Gast)


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.

von Benedikt (Gast)


Lesenswert?

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

von Benedikt (Gast)


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.

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.