Emetteur Récepteur
Partie Emetteur:
#include <VirtualWire.h> // Vous devez télécharger et installer la librairie VirtualWire.h dans votre dossier "/libraries" !
int EtatBouton5 = 0;
int EtatBouton6 = 0;
int Bouton6 = 6, Bouton5 = 5;
void setup()
{
vw_setup(2000); // Bits par seconde (vous pouvez le modifier mais cela modifiera la portée). Voir la documentation de la librairie VirtualWire.
vw_set_tx_pin(12); // La broche 3 sera utilisée pour transmettre la DATA, vous pouvez changez de broche si vous le désirez.
pinMode(Bouton6,INPUT);
pinMode(Bouton5,INPUT);
}
void loop()
{
EtatBouton5 = digitalRead(Bouton5);
EtatBouton6 = digitalRead(Bouton6);
if(EtatBouton5 != LOW)
{
const char *msg = "ledblan";
vw_send((uint8_t *)msg, strlen(msg)); //Quand le bouton 5 est allumé le programme envoie le message dans l'émetteur
vw_wait_tx();
}
else if(EtatBouton6 != LOW)
{
const char *msg = "ledbleu";
vw_send((uint8_t *)msg, strlen(msg));
vw_wait_tx();
}
delay(200);
}
Plan du montage bientot bientôt dispo
Partie Recepteur:
#include <VirtualWire.h> // Vous devez télécharger et installer la librairie VirtualWire.h dans votre dossier "/libraries" !
int LedBlanche = 6, LedBleu = 7;
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
void setup()
{
pinMode(LedBlanche,OUTPUT);
pinMode(LedBleu,OUTPUT);
Serial.begin(9600); // On initialise "le serial monitor", j'ai laissé 9600 bauds ici car c'est la valeur par défaut mais vous pouvez la modifier.
vw_setup(2000); // Bits par seconde (vous pouvez le modifier mais cela modifiera la portée). Voir la documentation de la librairie VirtualWire.
vw_set_rx_pin(11); // C'est sur cette broche que l'on reliera les broches DATA du récepteur, vous pouvez changez de broche si vous le désirez.
vw_rx_start(); // On démarre le récepteur.
}
void loop()
{
if (vw_get_message(buf, &buflen)) // On test afin de savoir si un message est reçu.
{
int i;
Serial.println("");
for (i = 0; i < buflen; i++)
{
Serial.write(buf[i]);
}
if(strcmp("ledblan", (char*)buf) == 0)
{
digitalWrite(LedBlanche, HIGH);
delay(300);
digitalWrite(LedBlanche, LOW);
}
if(strcmp("ledbleu", (char*)buf) == 0)
{
digitalWrite(LedBleu, HIGH);
delay(300);
digitalWrite(LedBleu, LOW);
}
}
}
Explication: J'appuie sur un des boutons et une led s'allume à distance.
if(strcmp("ledbleu", (char*)buf) == 0) permet de détecter si le message qui a été envoyer est bien ledbleu. Important de savoir que ici le message ne peut pas depasser 7 lettres.
Achat : Emetteur/Recepteur ici