module 433 mHz communication radio

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 :slight_smile: 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.

hello
voici 2 codes qui fonctionnent chez moi (vérifiés à l'instant) à toi d'adapter.
l'émetteur emet en boucle
le recepteur envoit sur le moniteur ce qu'il a reçut. ne pas oublier de mettre le port com moniteur sur le récepteur.

code emetteur (pin 12)

#include <VirtualWire.h>

const int led_pin = 11;
const int transmit_pin = 12;
const int receive_pin = 2;
const int transmit_en_pin = 3;

void setup()
{
  // Initialise the IO and ISR
  vw_set_tx_pin(transmit_pin);
  vw_set_rx_pin(receive_pin);
  vw_set_ptt_pin(transmit_en_pin);
  vw_set_ptt_inverted(true); // Required for DR3100
  vw_setup(2000);	 // Bits per sec
}

byte count = 1;

void loop()
{
  char msg[7] = {'h','e','l','l','o',' ','#'};

  msg[6] = count;
  digitalWrite(led_pin, HIGH); // Flash a light to show transmitting
  vw_send((uint8_t *)msg, 7);
  vw_wait_tx(); // Wait until the whole message is gone
  digitalWrite(led_pin, LOW);
  delay(1000);
  count = count + 1;
}

code recepteur(pin 11)

#include <VirtualWire.h>

const int led_pin = 6;
const int transmit_pin = 12;
const int receive_pin = 11;
const int transmit_en_pin = 3;

void setup()
{
    delay(1000);
    Serial.begin(9600);	// Debugging only
    Serial.println("setup");

    // Initialise the IO and ISR
    vw_set_tx_pin(transmit_pin);
    vw_set_rx_pin(receive_pin);
    vw_set_ptt_pin(transmit_en_pin);
    vw_set_ptt_inverted(true); // Required for DR3100
    vw_setup(2000);	 // Bits per sec

    vw_rx_start();       // Start the receiver PLL running
}

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

    if (vw_get_message(buf, &buflen)) // Non-blocking
    {
	int i;

        digitalWrite(led_pin, HIGH); // Flash a light to show received good message
	// Message with a good checksum received, print it.
	Serial.print("Got: ");
	
	for (i = 0; i < buflen; i++)
	{Serial.print(buf[i]);
	   // Serial.print(buf[i], HEX);
	    Serial.print(' ');
	}
	Serial.println();
        digitalWrite(led_pin, LOW);
    }
}