Bonsoir tout le monde,
je veux établir une communication radio entre un atmega328p et un arduino uno :
pour commencer j'ai établis le circuit alimentation horloge ... pour atmega testé avec le programme blink
puis câblé (j'ai mis data avec la pin 13 de l'atmega) avec le récepteur d'un module low-coast (le lien a la fin) et je l'ai programmé avec le programme récepteur.
l’émetteur sera un arduino uno câblé (data avec la pin 7 de arduino) avec un émetteur du même genre et qui est programmé avec le programme émetteur.
le but du programme est d'allumer un LED a distance avec le moniteur serie : quand on tap 1 la LED s'allume quand on tap 0 la LED s'éteint.
le problème est que ça ne marche pas !!! je sais pas d'ou viens le problème surement du programme car j'ai bien vérifié mon câblage...
les programmes:
émetteur :
//Transmitter Code (Uno)
#include <VirtualWire.h>
void setup()
{
Serial.begin(9600);
vw_setup(2000);
vw_set_tx_pin(7);
}
void loop()
{
if(Serial.available())
{
char c = Serial.read();
if(c == '1')
{
vw_send((uint8_t *)c, 1);
}
else if(c == '0')
{
vw_send((uint8_t *)c, 1);
}
}
}
le récepteur:
//Reciever Code (atmega328p)
#include <VirtualWire.h>
void setup()
{
pinMode(13,OUTPUT);
digitalWrite(13,LOW);
vw_setup(2000);
vw_set_rx_pin(7);
vw_rx_start();
}
void loop()
{
uint8_t buflen = VW_MAX_MESSAGE_LEN;
uint8_t buf[buflen];
if(vw_get_message(buf, &buflen))
{
for(int i = 0;i < buflen;i++)
{
if(buf[i] == '1')
{
digitalWrite(13,HIGH);
}
else if(buf[i] == '0')
{
digitalWrite(13,LOW);
}
}
}
}
lien pour le module:
merci d'essayer d’éclairer ma lanterne et merci beaucoup pour vos réponses.