Arduino + 433MHz Funkmodul

Hallo zusammen,

ich bin noch ein kleiner Anfänger und komme einfach nicht weiter. Ich habe zwei Arduino UNO und einen Receiver und Transmitter (so ein billiges grünes klassisches Paar). Ich habe Probleme mit der Signal Übertragung. Wenn ich das Modul ohne Arduino ansteuere also wenn ich einfach an den Sender einen Knopf mache und an den Reciever ein Lämpchen an den Signalpin funktioniert alles Perfekt. Sobald ich aber einen Arduino anschließe beginnen die Probleme. Wenn ich den Reciever an einen Arduino anschließe bekomme ich zufällig 1 und 0. Wenn ich ihn mit 3,3V anschließe bekomme ich das Signal was ziemlich merkwürdig ist weil er laut Hersteller 5V braucht.
Natürlich habe ich auch schon jedes Beispiel aus dem Internet ausprobiert mit verschiedenen Bibliotheken aber irgendwie funktioniert nichts. Kaput kann ja auch nichts sein weil es ja funktioniert wenn ich keinen Arduino anschließe und nur über einen Knopf sende.
Und ja eine 17,3cm lange Antenne ist dran gelötet:).
Außerdem hat auch wenn ich ohne Arduino sende und empfange das MOdul eine sehr geringe Reichweite von maximal 2m. Hat jemand eine Idee gibt es da allgemeine Probleme oder könnte doch etwas kaputt sein? Oder eine Idee was ich machen sollte um den Problem auf den Grund zu gehen?
Danke schonmal im voraus

Was genau ?
Es gibt nicht nur einen, also Link posten.

Ganz sicher nicht. Damit sendest und empfängst du nur rauschen aber keine nützlichen Daten.
Baue es sauber mit der richtigen Library auf und es wird funktionieren.
Allerdings wenn du den billigen "Müllempfänger" verwendest, dann hast du Probleme, wenn der zu dicht am PC oder Monitor sitzt. Und Antennen brauchen beide Module.

So einer ist das. Wollte einfach mal ein Funkmodul ausprobieren und das war für mich die einfachste Wahl ich weiß dass es qualitativ nicht das beste ist. Mit dem Versuch ohne Arduino wollte ich einfach nur testen ob mein Sender kaputt ist. Habe es schon genau Schritt für Schritt nach online Tutorials aufgebaut und programmiert leider funktioniert das aber alles irgendwie nicht. Ich kann wenn ich Zeit habe mal ein Sketch und mein Aufbau teilen.

Dann hättest du gleich etwas besseres nehmen sollen.
Und Hier solltest du mal lesen wie es geht.

Hab ich bereits und habe es genau so gemacht und es funktionierte nicht. Kann es morgen nochmal versuchen und wenn es nicht klappt genau schicken wie ichs gemacht habe.
Bei mir ist auch Geld ein Thema wenn ich etwas einfach nur mal aus Interesse ausprobieren möchte kaufe ich mir nicht direkt das beste bin aktuell noch student:)

Das Beste muss nicht unbedingt teurer sein.
Zudem, wer billig kauft, kauft doppelt.

Evtl. hast du ja auch hier im im anderen Thread, einfach die Teile nicht verlötet.

Und nochmal die Frage, hast du an beiden Modulen eine Antenne dran und auch gelötet ?

Ja ich habe für den Sender und empfänger die Antenne angelötet. Im Anschluss werde ich nun meine Codes für Sender und Empfänger schicken. Diese sind wie von dem link den du mir geschickt hast und meine Verkabelung.

// ask_transmitter.pde
// -*- mode: C++ -*-
// Simple example of how to use RadioHead to transmit messages
// with a simple ASK transmitter in a very simple way.
// Implements a simplex (one-way) transmitter with an TX-C1 module
// Tested on Arduino Mega, Duemilanova, Uno, Due, Teensy, ESP-12

#include <RH_ASK.h>
#ifdef RH_HAVE_HARDWARE_SPI
#include <SPI.h> // Not actually used but needed to compile
#endif

RH_ASK driver(2000, 9, 8, 10);
// RH_ASK driver(2000, 4, 5, 0); // ESP8266 or ESP32: do not use pin 11 or 2
// RH_ASK driver(2000, 3, 4, 0); // ATTiny, RX on D3 (pin 2 on attiny85) TX on D4 (pin 3 on attiny85),
// RH_ASK driver(2000, PD14, PD13, 0); STM32F4 Discovery: see tx and rx on Orange and Red LEDS

void setup()
{
#ifdef RH_HAVE_SERIAL
    Serial.begin(9600);  // Debugging only
#endif
    if (!driver.init())
#ifdef RH_HAVE_SERIAL
         Serial.println("init failed");
#else
;
#endif
}

void loop()
{
    const char *msg = "hello";

    driver.send((uint8_t *)msg, strlen(msg));
    driver.waitPacketSent();
    delay(200);
}
// ask_receiver.pde
// -*- mode: C++ -*-
// Simple example of how to use RadioHead to receive messages
// with a simple ASK transmitter in a very simple way.
// Implements a simplex (one-way) receiver with an Rx-B1 module
// Tested on Arduino Mega, Duemilanova, Uno, Due, Teensy, ESP-12

#include <RH_ASK.h>
#ifdef RH_HAVE_HARDWARE_SPI
#include <SPI.h> // Not actually used but needed to compile
#endif

RH_ASK driver(2000, 9, 8, 10);
// RH_ASK driver(2000, 4, 5, 0); // ESP8266 or ESP32: do not use pin 11 or 2
// RH_ASK driver(2000, 3, 4, 0); // ATTiny, RX on D3 (pin 2 on attiny85) TX on D4 (pin 3 on attiny85),
// RH_ASK driver(2000, PD14, PD13, 0); STM32F4 Discovery: see tx and rx on Orange and Red LEDS

void setup()
{
#ifdef RH_HAVE_SERIAL
    Serial.begin(9600);  // Debugging only
#endif
    if (!driver.init())
#ifdef RH_HAVE_SERIAL
         Serial.println("init failed");
#else
;
#endif
}

void loop()
{
    uint8_t buf[RH_ASK_MAX_MESSAGE_LEN];
    uint8_t buflen = sizeof(buf);

    if (driver.recv(buf, &buflen)) // Non-blocking
    {
int i;

// Message with a good checksum received, dump it.
driver.printBuffer("Got:", buf, buflen);
    }
}



Wie das mit den Codetags geht, steht hier.

Gruß Tommy

1 Like

Ich habe versucht, die Bilder genau zu betrachten, was aber durch das verschobene Foto (nicht senkrecht) schwer ist. Daher kann ich nicht genau erkennen, welche Pins du zur Datenübertragung verwendest.
RX muss Pin 9 und TX muss Pin 8 sein.
Einen "anderen" Fehler kann ich nicht erkennen.
Evtl. ist tatsächlich etwas defekt. Bitte mal die Kabel prüfen.

Du kannst auch die Funktion des Programmes testen, wenn du die Datenpins (8 und 9) beider Unos sowie GND miteinander verbindest. Dann muss der Empfänger-Uno was anzeigen.