Arduino radio

Bonjour,

J'aimerais réaliser une manette radio avec 4 boutons (contacteurs handicap) en pièce jointe il y a notre code.

Le premier la manette sur une carte uno et le second une carte mega. Elles communiquent entre elle mais je rencontre le problème suivant

Si je téléverse sur mes carte juste la partie pour que la voiture avance les cartes l'accepte. Mais si on téléverse la partie avancer et reculer la voiture bug.

J'aimerais savoir si notre code est bon ou si on peut apporter des modifications ?

Je vous remercie d'avance pour votre aide.

Radio_Mega_Voiture.ino (2.55 KB)

Radio_Uno_Manette.ino (1.54 KB)

le code est court, postez le directement dans le forum en utilisant les balises de code. peut pas le lire sur mon smartphone.

Bonjour, Voici le code

Manette

//Bibliothèque
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

//Déclaration des variables des contacteurs
int bouton_AV;
boolean etat_bouton_AV = 0;
int bouton_AR;
boolean etat_bouton_AR = 0;
int bouton_GA;
boolean etat_bouton_GA = 0;
int bouton_DR;
boolean etat_bouton_DR = 0;

RF24 radio1(9, 10); // CE, CSN

const byte address[6] = "00001";

void setup() {
  Serial.begin(9600);
  
  //Déclaration des PIN (entrée/sortie)
    //Contacteurs
    bouton_AV=5;
    pinMode(bouton_AV,INPUT);
    bouton_AR=4;
    pinMode(bouton_AR,INPUT);
 

  //Eléments pour fonctionnement de la radio
  radio.begin();
  radio.openWritingPipe(address);
  radio.setPALevel(RF24_PA_MAX);
  radio.stopListening();

  }

void loop() {
  //affectation des variables d'états des contacteurs
  etat_bouton_AV=digitalRead(bouton_AV);
  etat_bouton_AR=digitalRead(bouton_AR);
  etat_bouton_GA=digitalRead(bouton_GA);
  etat_bouton_DR=digitalRead(bouton_DR);

  //Envoie l'état des boutons à la voiture
  //Donne un ordre en fonction du contacteur
  radio.write(&etat_bouton_AV, sizeof(etat_bouton_AV));  
  radio.write(&etat_bouton_AR, sizeof(etat_bouton_AR));
}

Voiture

//Bibliothèque
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <AFMotor.h>//Shield

//Déclaration des variables 
  //Radio
  RF24 radio(48, 49); // CE, CSN

  const byte address[6] = "00001";

  //Etat des contacteurs
  boolean etat_bouton_AV = 0;
  boolean etat_bouton_AR = 0;
  boolean etat_bouton_GA = 0;
  boolean etat_bouton_DR = 0;

  //LED
  int led_pin = 40;

  //Moteur
  AF_DCMotor  moteur_AVD(1);//avant Droite 
  AF_DCMotor  moteur_AVG(2);//avant Gauche 
  AF_DCMotor  moteur_ARG(3);//arrière Gauche 
  AF_DCMotor  moteur_ARD(4);//arrière Droite
    
void setup() {
  Serial.begin(9600);

  //Déclaration des PIN (entrée/sortie)
    //LED
    pinMode(40, OUTPUT);

  radio.begin();
  radio.openWritingPipe(address);
  radio.setPALevel(RF24_PA_MAX);
  radio.stopListening();

  }

void loop(){
  //Vitesse des moteurs
  moteur_AVD.setSpeed(255);
  moteur_AVG.setSpeed(255);
  moteur_ARG.setSpeed(255);
  moteur_ARD.setSpeed(255);

  //Condition 
  //Doit recevoir les états des contacteurs pour rentrer en mouvement
  if ((radio1.available())||(radio2.available())){
      radio.read(&etat_bouton_AV, sizeof(etat_bouton_AV));
      radio.read(&etat_bouton_AR, sizeof(etat_bouton_AR));
  }
         
    //Marche avant
    if(etat_bouton_AV == HIGH) {
      moteur_AVD.run (FORWARD);  
      moteur_AVG.run (FORWARD);
      moteur_ARG.run (FORWARD);
      moteur_ARD.run (FORWARD); 
    }
    //Marche arrière
    else if(etat_bouton_AR == HIGH) {
      moteur_AVD.run (BACKWARD);  
      moteur_AVG.run (BACKWARD);
      moteur_ARG.run (BACKWARD);
      moteur_ARD.run (BACKWARD); 
    }
//Arrêt
    else {
      moteur_AVD.run (RELEASE);  
      moteur_AVG.run (RELEASE);
      moteur_ARG.run (RELEASE);
      moteur_ARD.run (RELEASE);
      }
    
   delay(5);
  }

Nous avons réussi en modifiant le code.

Malheureusement il y a un temps de réponse énorme. J'ai vu que sur l'un de vos tuto

https://forum.arduino.cc/index.php?topic=480663.0

vous avez mit un adaptateur pour les modules radio. Il y a t'il une réél différence avec ou sans les adaptateur ?

Merci