Yahoo refuse tous les emails du site. Si vous avez une adresse chez un autre prestataire, c'est le moment de l'utiliser ;)

En cas de soucis, n'hésitez pas à aller faire un tour sur la page de contact en bas de page.

Topic "Code émetteur/récepteur 433 mHz Arduino"

Flux RSS des posts récents dans ce topic ( Flux Atom)


Pas de photo de profil

ACC_TPE

Membre

#756 | Signaler ce message


Bonjour, étant en classe de 1ère S SI, nous devons présenter notre TPE vers le milieu d'année. Notre projet : produire une télécommande (carte ARDUINO) communiquant avec un porte-clé (deuxième carte ARDUINO) qui produirait un son lorsque l'on actionne la télécommande, la communication sans fil serait établie à l'aide d'un émetteur et d'un récepteur de Radio 433 mHz. Ce système permettrait la recherche rapide d'objets perdus dans le cadre d'un périmètre donné (comme une maison pas trop grande).

Nous avons repris et modifié un des codes présent sur ce site pour tester notre émetteur/récepteur ,or sur le moniteur série, quand nous envoyons un message de l'émetteur, le récepteur ne le reçoit pas.

Nous avons rajouté dans le code des messages à afficher lorsque l'émetteur avait envoyé le message, quand le récepteur était en attente de la réception et quand il avait reçu le message. Les résultats que nous avons obtenu nous ont permis de conclure que l'émetteur envoyait bien le message et que le récepteur était en attente de réception et ne le recevait jamais.

Voici le code pour l'émetteur :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <VirtualWire.h>
#define PinTX 2

void setup() {
  // put your setup code here, to run once:
 Serial.begin(9600);
  
  // Initialisation de la bibliothèque VirtualWire
  vw_set_tx_pin(PinTX);
  vw_setup(2000);

  Serial.println("Go !");
}

void loop() {
  // put your main code here, to run repeatedly:
byte message[VW_MAX_MESSAGE_LEN];

int len = Serial.readBytesUntil('\n', (char*) message, VW_MAX_MESSAGE_LEN -1);
if (!len) {
  return;
}
message[len] = '\0' ;

vw_send(message, len + 1);
vw_wait_tx();
}

Et celui pour le récepteur :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <VirtualWire.h>
#define PinRX 5

void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);

vw_set_rx_pin(PinRX);
vw_setup(2000);
vw_rx_start();

Serial.println("Go !");
}

void loop() {
  // put your main code here, to run repeatedly:
byte message [VW_MAX_MESSAGE_LEN];
byte taille_message = VW_MAX_MESSAGE_LEN;

Serial.println("on attend bientot");
vw_wait_rx();
Serial.println("on attend plus");
if(vw_get_message(message, &taille_message)) {

  Serial.println((char*)message);
}
}

Notre question est la suivante : le problème vient-il de notre code ou de l'émetteur/récepteur ?

Merci d'avance.

Derniére modification le par ACC_TPE


Photo de profil de skywodd

skywodd

Membre

Membre du staff

#772 | Signaler ce message


Bonjour,

Est-ce que le code marche avec les broches par défaut (D12 TX, D11 RX) ?

Il faudrait tester avec un autre lot de modules RX / TX pour déterminer si c'est un probléme logiciel ou matériel.