Go Down

Topic: Emetteur et récepteur RF 434 (Read 2121 times) previous topic - next topic

JLuc

Bonjour,
Et si ton problème était ça :

  // Déclaration des pins Emetteur/Recepteur
  vw_set_rx_pin(Rec);                         // Pin Recepteur
  vw_set_tx_pin(Emi);                         // Pin Emetteur
 
  // Initialisation de l'Emetteur et du Recepteur 433Mhz
  vw_setup(1200);                         // Bits par sec (bauds) => pas de vitesse trop importante pour tester.
  vw_rx_start();                                 // Démarrage du PLL du recepteur

// Lors d'un envoi :
  vw_rx_stop();                                 // Arrêt temporaire de la reception
// Ici ton code
  vw_send((uint8_t *)msg, strlen(msg)); // Le message est placé dans le buffer et envoyé
  vw_wait_tx();                                  // Attend que tout soit envoyé
  vw_rx_start();                                 // Redémarrage des receptions

Si cela peut t'aider, sinon j'ai peut-être d'autres choses qui le pourrait
@+ JLuc
@+ JLuc

Rombi

Bonjour,

Pour les pin émetteur et récepteur VirtualWire prend par défaut 12 pour émetteur et 11 pour le récepteur.

Désolé mais je ne suis pas sûr d'avoir compris ce que tu me dis

le code ci-dessous doit être mis dans la partie code émetteur???

// Lors d'un envoi :
  vw_rx_stop();                                 // Arrêt temporaire de la reception
// Ici ton code
  vw_send((uint8_t *)msg, strlen(msg)); // Le message est placé dans le buffer et envoyé
  vw_wait_tx();                                  // Attend que tout soit envoyé
  vw_rx_start();                                 // Redémarrage des receptions

J'ai essayé toujours pas de réception alors que mon HP émet bien un son à chaque réception.

Dans tous les cas merci pour ta réponse.

René

JLuc

Bonjour,
Lorsque j'ai essayé des émetteurs récepteurs 433 j'ai utilisé dans le programme une fonction qui envoi ce que je veux et une fonction qui reçoit. Ça je pense qu'il en est de même pour toi, alors ce que j'ai voulus dire, c'est que lorsque que tu envois, il faut couper la réception sinon tu vas écouter ce qui est envoyé. Mon système disposant des 2 (émetteur/récepteur) j'aurai été un peu embêté... Si ton système est comme cela, tu dois suivre cette façon de faire sinon ça ne marche pas parce que l'émission est sans cesse interrompue par la réception en local. Ce ne sont que des pistes. Attention aussi aux interruptions, en fonction de l'arduino utilisé, toutes les pattes ne sont pas interruptibles.
@+ JLuc

Rombi

Ci-dessous mon code et ce que j'obtiens

#include <VirtualWire.h>
#define ledPin 13

void setup()
{
    // Initialize the IO and ISR
    vw_setup(1200);           // Bits per sec
    vw_rx_start(); 
    Serial.begin(9600);
}

void loop()
{
    byte message[VW_MAX_MESSAGE_LEN];    // a buffer to hold the incoming messages
    byte msgLength = VW_MAX_MESSAGE_LEN; // the size of the message
   
    send("hello");
    delay(1000);
   
    //if(
    vw_get_message(message, &msgLength); // J'ai enlevé le test sinon j'ai rien
   // {
        Serial.print("Got: ");
    for (int i = 0; i < msgLength; i++)
    {
       // Serial.write(message);
        Serial.print(message);
       
    }
    Serial.println();
   // }
}

void send (char *message)
{
  vw_rx_stop();     
  digitalWrite(ledPin, HIGH);
  vw_send((uint8_t *)message, strlen(message));
  vw_wait_tx(); // Wait until the whole message is gone
  vw_rx_start();                                 // Redémarrage des receptions

  digitalWrite(ledPin, LOW);
}


Résultat des courses:

Got: 115114155717315921531177127253147292052531822492552431791414312119124612615086243239239462082062552551511907187115255266001080640010451312138824502550000351751490824506216
Got: 115114155717315921531177127253147292052531822492552431791414312119124612615086243239239462082062552551511907187115255266001080640010451312138824502550000351751490824506216
Got: 115114155717315921531177127253147292052531822492552431791414312119124612615086243239239462082062552551511907187115255266001080640010451312138824502550000351751490824506216
Got: 115114155717315921531177127253147292052531822492552431791414312119124612615086243239239462082062552551511907187115255266001080640010451312138824502550000351751490824506216
Got: 115114155717315921531177127253147292052531822492552431791414312119124612615086243239239462082062552551511907187115255266001080640010451312138824502550000351751490824506216
Got: 115114155717315921531177127253147292052531822492552431791414312119124612615086243239239462082062552551511907187115255266001080640010451312138824502550000351751490824506216
Got: 115114155717315921531177127253147292052531822492552431791414312119124612615086243239239462082062552551511907187115255266001080640010451312138824502550000351751490824506216
Got: 115114155717315921531177127253147292052531822492552431791414312119124612615086243239239462082062552551511907187115255266001080640010451312138824502550000351751490824506216
Got: 115114155717315921531177127253147292052531822492552431791414312119124612615086243239239462082062552551511907187115255266001080640010451312138824502550000351751490824506216
Got: 115114155717315921531177127253147292052531822492552431791414312119124612615086243239239462082062552551511907187115255266001080640010451312138824502550000351751490824506216
Got: 115114155717315921531177127253147292052531822492552431791414312119124612615086243239239462082062552551511907187115255266001080640010451312138824502550000351751490824506216


JLuc

Tu devrai utiliser :

if (vw_have_message()) {                                      // Il y a un message ?
  uint8_t buf[VW_MAX_MESSAGE_LEN];
  uint8_t buflen = VW_MAX_MESSAGE_LEN;
  if (vw_get_message(buf, &buflen)) {                      // Non-bloquant
    int i;
    for (i = 0; i < buflen; i++) {
      msg += ((char)buf);
    }
  }
  Serial.print(F("Reception : "));
  Serial.println(msg);
}

Sinon pour tes chiffres je n'y comprend rien...
Surtout que c'est toujours les même, bon en même temps c'est toujours le même message que tu envoi.
@+ JLuc

Rombi

Désolé mais pas plus de résultat!!!!

Merci pour ton aide et j'espère ne pas te déranger de trop.

Cordialement
René

JLuc

Merci pour ton aide et j'espère ne pas te déranger de trop.

Pas de problème pour moi, sinon à quoi servirait ce forum.

Pour ce qui est du programme, je teste en réel en tout début de semaine (lundi ou mardi au plus tard) et je t'envoie quelques choses qui marche et que tu pourras essayer.
@+ JLuc

Artouste

Désolé mais pas plus de résultat!!!!

Merci pour ton aide et j'espère ne pas te déranger de trop.

Cordialement
René
bonjour
a tu essayé juste pour validation la lib RCSWITCH ?
en sortie de ton recepteur , à l'œil et à l'oreille :smiley-cool:
ça donne +/- çà lorsque tu envoie des trames ?
 

Rombi

Bonjour,

Merci pour ta petite vidéo, j'ai exactement la même chose.

Cordialement
René

Artouste

Bonjour,

Merci pour ta petite vidéo, j'ai exactement la même chose.

Cordialement
René
et pour le test rcswitch ?

Rombi

Bonjour,

Tutoriel 1 Ok pour test Emetteur, OK pour test Récepteur.

Pour le 2 je teste avec mon emetteur 434 à la place de la télécommande qui est utilisée dans le tuto, j'ai des résultats mais j'avoue ne pas comprendre grand chose.

Il y a dans le tuto2  2 tableaux ,un lumière allumée l'autre éteinte, comment faire avec mon émetteur???

Un seul tableau suffit????

J'ai compris que dans les 2 petits tableaux colonne de gauche le chiffre LOW ou HIGH et colonne de droite le nombre de fois que ce chiffre est vu.

La suite reste un grand mystère (les graphiques etc...)

Je vais reprendre aujourd'hui .


Cordiaement
René


Rombi

J'ai compris les graphiques , je continue!!!

A+

JLuc

Bonjour,
Je n'avais pas tout capté apparemment, tu essais de faire fonctionner un émetteur en virtualwire et un récepteur rcswitch c'est ça ? Si c'est le cas, c'est complètement impossible, les protocoles sont complètement différent. Donne une réponse s'il te plait avant que je ne me lance dans ce que je t'ai promis.
@+ JLuc

Rombi

Bonjour,

Non mes premiers codes issus du bouquin sont avec VirtualWire, rcswitch c'est pour faire des tests.

A+

JLuc

#29
Apr 19, 2016, 09:20 am Last Edit: Apr 19, 2016, 09:23 am by JLuc
Bonjour,
Pardonnes moi je n'ai pas eu le temps hier.
Voici donc un programme pour 2 arduino en émetteur récepteur 433 (ou 434, ou xxx)

Matériel avec lequel j'ai fais ce test :
- 2 Arduino Nano
- Emetteur 433Mhz
- Récepteur 433Mhz

Dans le ZIP :
- Programme Emetteur
- Programme Récepteur
- Librairie VirtualWire (à comparer avec celle que tu as)

Important :
L'émetteur et le récepteur doivent être appairés, sinon soucis de communication assuré (j'en ai fais les frais)

Emeteur Recepteur 433
@+ JLuc

Go Up