Outils pour utilisateurs

Outils du site


wiki:tutoriels:arduinorf433

Tutoriel Arduino avec Émetteur/Recepteur RF

Matériel

  • 2 Arduino UNO (Émission/Réception)
  • Émetteur RF 433 MHz XY-FST FS1000A
  • Recepteur RF 433 MHz XY-MV-5V
  • 6 Fils
  • Émetteur

  • Récepteur

Montage

Émetteur
  • Émetteur → Arduino
  • DATA → 12
  • VCC → 5V
  • GND → GND
Récepteur
  • Récepteur → Arduino
  • DATA → 11 Attention il y a 2 pin DATA mais ça ne change rien
  • VCC → 5V
  • GND → GND

Code

La partie émission va envoyer un message (ici “Bonjour le PMClab”). Il faut pas submerger le récepteur il y a donc une petite pause.

La partie réception va recevoir le message (donc chaque caractère) et va ensuite l'afficher.

Pour cet exemple nous utilisions la bibliothèque VirtualWire qui simplifie l'échange des messages.

Il faut télécharger la bibliothèque et la décompresser et ensuite ajouter dans le répertoire sketchbook/libraries.

http://www.airspayce.com/mikem/arduino/VirtualWire/

Émetteur
#include <VirtualWire.h>

char Message[VW_MAX_MESSAGE_LEN];

void setup() {
  vw_setup(2000); // vitesse en bauds
}

void loop() {

  String text = "Bonjour le PMClab\n";
  text.toCharArray(Message, 80);
  vw_send((uint8_t *)Message, strlen(Message));
  vw_wait_tx(); // Attente jusqu'à que tout le message est envoyé
  delay(1000); // delais pour ne pas submerger le récepteur
} 

Récepteur
#include <VirtualWire.h>

char Message[VW_MAX_MESSAGE_LEN];

void setup() {
  Serial.begin(9600);
  vw_setup(2000); // vitesse en bauds
  vw_rx_start();
}

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

  if (vw_get_message(buf, &buflen))
  {
    int i;

    for (i = 0; i < buflen; i++)
    {
      Message[i] = char(buf[i]);
    }

    Message[buflen] = '\0';

    Serial.print("Message recu: ");
    Serial.println(Message);
  }
}
wiki/tutoriels/arduinorf433.txt · Dernière modification: 2016/09/11 13:00 (modification externe)