• Post category:Uno
  • Post comments:0 commentaire
  • Post last modified:mars 12, 2022
  • Temps de lecture :4 min de lecture

Piloter une led par ondes radio 433mhz grace à un bouton avec 2 Arduinos Uno *

 

 

    Prérequis :

Matériel :

  • 2 x Cartes Arduino Uno
  • Module Rf 433mhz Emetteur + Récepteur
  • 1 x Led
  • 1 x Bouton
  • 1 x Résistances 220Ω (optionnel)
  • Fils de connexion
  • 1 x Breadboard

Version IDE :

Bibliothèque :

  • VirtualWire.h

 

 

Vidéo de démonstration :

 

Schéma de câblage de l’Emetteur :

 

Code :

#include <VirtualWire.h> 
int RF_TX_PIN = 12; // Broche DATA de l'émeteur 
 
void setup()
{
  Serial.begin(9600);
  vw_set_tx_pin(RF_TX_PIN);
  vw_setup(2000); // Vitesse de transmission en Bits par secondes
  pinMode(2,INPUT_PULLUP);
}
 
void loop()
{
  const char *msg ;
  boolean etatBouton=digitalRead(2);
  if (etatBouton == 0) {
    msg = "on";
  }
  else {
    msg = "off";
  } 
  Serial.println(msg) ;
  vw_send((uint8_t *)msg, strlen(msg));  // Envoi le message ...
  delay(400); // ... toute les 400 millisecondes
}

 

Schéma de câblage du Récepteur :

 

Code :

#include <VirtualWire.h>
int RF_RX_PIN = 11; // Broche DATA du récepteur à la pin
char message_recu[VW_MAX_MESSAGE_LEN];

void setup()
{
  Serial.begin(9600);    
  vw_setup(2000);               // Transmission en Bits par seconde
  vw_set_rx_pin(RF_RX_PIN);     
  vw_rx_start();                // On démarre le récepteur.
  pinMode (ledverte, OUTPUT);
}

void loop()
{
  uint8_t buf[VW_MAX_MESSAGE_LEN];
  uint8_t buflen = VW_MAX_MESSAGE_LEN;
  if (vw_get_message(buf, &buflen)) // Si un message est recu...
  {
    for (int i = 0; i < buflen; i++)
      {
        Serial.write(buf[i]); 
        message_recu[i] = buf[i];
      }
      message_recu[buflen] = '\0';
      Serial.println(""); 
  }
  String message = String(message_recu);
  if (message == "on"){
    digitalWrite (ledverte, HIGH);
  }
  else{
    digitalWrite (ledverte, LOW);
  }
  delay(1000);
}

 


 

Laisser un commentaire