Problème avec VirtualWire

Bonjour,

Je suis nouveau sur ce Forum et je remercie d'avance les membres de la communauté.
J'aimerai avoir un coup de main, j'aimera réalisé une connexion Arduino Radio. J'ai donc acheté un composant de type XD-FST et j'ai récupéré la librairie VirualWire.
J'ai récupéré le montage électrique (simple) sur internet et il existe pleins de source également avec les codes pour les émetteurs et récepteurs, je ne parviens pas a faire fonctionner la communication. Je tente donc un pierre dans la marre, voici le code que j'ai actuellement (trouvé sur le net) :

(Merci à Skyduiono pour ce auto)
et voici les codes

Emetteur :

#include <VirtualWire.h> // inclusion de la librairie VirtualWire
 
const char *msg = "Arduino"; // Tableau qui contient notre message
 
void setup() // Fonction setup()
{
    Serial.begin(9600); // Initialisation du port série pour avoir un retour sur le serial monitor
    Serial.println("Tuto VirtualWire"); // Petit message de bienvenue
    vw_set_tx_pin(12); 
    vw_setup(2000);     // initialisation de la librairie VirtualWire à 2000 bauds (note: je n'utilise pas la broche PTT)
}
 
void loop() // Fonction loop()
{
    Serial.print("TX ... "); // On signale le début de l'envoi
    vw_send((uint8_t *)msg, strlen(msg)); // On envoie le message 
    vw_wait_tx(); // On attend la fin de l'envoi
    Serial.println("Done !"); // On signal la fin de l'envoi
    delay(1000); // Et on attend 1s pour pas flooder
}

Récepteur :

#include <VirtualWire.h> // inclusion de la librairie VirtualWire
 
void setup() // Fonction setup()
{
    Serial.begin(9600); // Initialisation du port série pour avoir un retour sur le serial monitor
    Serial.println("Tuto VirtualWire"); // Petit message de bienvenue
 
    vw_setup(2000); // initialisation de la librairie VirtualWire à 2000 bauds (note: je n'utilise pas la broche PTT)
    vw_set_rx_pin(11); 
    vw_rx_start();  // Activation de la partie réception de la librairie VirtualWire
}
 
void loop() // Fonction loop()
{
    uint8_t buf[VW_MAX_MESSAGE_LEN]; // Tableau qui va contenir le message reçu (de taille maximum VW_MAX_MESSAGE_LEN)
    uint8_t buflen = VW_MAX_MESSAGE_LEN; // Taille maximum de notre tableau
 
    // REMARQUE ULTRA IMPORTANTE :
    //   Par le passé ces deux lignes se trouvaient en "haut de programme", c'était donc des variables globales.
    //   Elles ne doivent PAS être globales, c'est très important !
    //
    //    Pourquoi ?
    //    C'est très simple. Posez vous la question suivante : que vaut "buflen" si la réception d'un message échoue, 
    //    où qu'on reçoit un message de moins de VW_MAX_MESSAGE_LEN octets ?
    //    Au début "buflen" vaut VW_MAX_MESSAGE_LEN, mais après "buflen" vaudra une valeur < VW_MAX_MESSAGE_LEN.
    //    Et paf, la taille de votre buffer vient de diminuer pour la réception suivante, et ainsi de suite.
 
    if (vw_wait_rx_max(200)) // Si un message est reçu dans les 200ms qui viennent
    {
        if (vw_get_message(buf, &buflen)) // On copie le message, qu'il soit corrompu ou non
        {
            Serial.print("RX : ");
            for (byte i = 0; i < buflen; i++) // Si il n'est pas corrompu on l'affiche via Serial
                Serial.print(buf[i]);
            Serial.println("");
        }
    }
}

Je joins également la photo du montage (j'ai l'arduino émetteur en bas il affiche la LED TX allumée, je ne sais pas si c'est normal).

D'avance merci pour vos remarques / suggestion.
Je ne sais pas comment tester si mon émetteur fonctionne (indépendamment pour comprendre d'ou vient le problème).

bonjour,
ce sont ceux avec les spires, models cheap.
sujet déjà évoqué il y a quelques jours.
ils fonctionnent quand ils ont le temps.
trouve un autre model sans les spires.

il suffit qu'une spire ne soit pas du bon diamètre ou un peu déformée, et hop, la fréquence est plus la même et donc aucune communication ou 1 sur 10

Bonjour,

Ne voulant pas rester sur un echec j'ai refait un essai avec ce type de module il y a quelques jours et avec les modules espacés de 15cm, j'ai la réception d'un message sur deux à un message sur 10.
J'ai utilisé les mêmes programmes que toi sauf qu'au lieu d'envoyer toujours le même message "Arduino" j'envoi "test 1", "test 2"... ce qui permet de voir s'il manque des messages.

Merci pour vos réponses, mes composants doivent être de mauvaises qualité... soit!
Pouvez-vous me communiquer un modèle (sur un site de e-commerce) qui fonctionnera (avec de grandes chances), sans non plus dépenser plus de 10 euros.

Encore merci à vous.
(je vais recherche le poste sur ce sujet)

cherches modules 433mhz arduino sur le net

Que pensez vous de ce produit?
http://www.selectronic.fr/ensemble-emetteur-recepteur-433mhz-grove.html

Sera t'il de bonne qualité?

Merci

J'en trouve plein ici aussi

http://www.dx.com/fr/s/module+433

Le problème est que comme je me suis déjà trompé sur un produit de mauvaise qualité (car je me suis résigné à faire fonctionner correctement mon matériel à 5 euros) je suis pas certain de trouver quelque de plus costaud.

bonjour
déjà avec les modules cheaps , pas espérer grand chose sans mettre au moins un brin +/- adapté sur le recepteur

pour derniere discussion en date sur le sujet :

http://forum.arduino.cc/index.php?topic=389026.msg2680920#msg2680920