merci JML , effectivement avec les codes , l'analyse sera plus objective 
Voici donc l'émetteur actuel :
/*
Radio Arduino
CE -> 9
CSN -> 10 (Hardware SPI SS)
MOSI -> 11 (Hardware SPI MOSI)
MISO -> 12 (Hardware SPI MISO)
SCK -> 13 (Hardware SPI SCK)
IRQ -> Rien
VCC -> En dessous de 3.6 volts
GND -> GND
*/
#include <DMXSerial.h>
#include <SPI.h>
#include <NRFLite.h>
const static uint8_t RADIO_ID = 1; // Numéro d'indentification de notre module émetteur
const static uint8_t DESTINATION_RADIO_ID = 0;// Numéro d'identification du module récepteur (A qui notre émetteur transmet)
const static uint8_t PIN_RADIO_CE = 9;//déclaration du pin CE
const static uint8_t PIN_RADIO_CSN = 10;//déclaration du pin CSN
int Val1;//variable qui contient la valeur transmise
int Val2;
int Val3;
int Val4;
int rge = 6;
int vert = 7;
struct RadioPacket // Packet de données envoyé,
//uint8_t=variable sur 8 bit, uint32_t=variable sur 32 bit
{
uint32_t Val1;//variable Valeur codée sur 32 bit
uint32_t Val2;
uint32_t Val3;
uint32_t Val4;
};
NRFLite _radio; //Déclaration du module NRF
RadioPacket _radioData;//Déclaration du packet de données
void setup() {
DMXSerial.init(DMXReceiver);
DMXSerial.write(1, 0); //
DMXSerial.write(2, 0); //
DMXSerial.write(3, 0); //
DMXSerial.write(4, 0); //
pinMode(rge, OUTPUT);
pinMode(vert, OUTPUT);
////////////////////////////////////////////////////////////////
if (!_radio.init(RADIO_ID, PIN_RADIO_CE, PIN_RADIO_CSN))//si l'initialisation du module n'est pas finie
{
digitalWrite(rge, HIGH);
digitalWrite(vert, LOW);
while (1); // Attend
}
digitalWrite(rge, LOW);
digitalWrite(vert, HIGH);
delay(200);
digitalWrite(vert, LOW);
delay(200);
digitalWrite(vert, HIGH);
delay(200);
digitalWrite(vert, LOW);
delay(200);
digitalWrite(vert, HIGH);
delay(200);
digitalWrite(vert, LOW);
delay(2000);
}
void loop() {
digitalWrite(rge, HIGH); // témoin module allumé
////////////////////////////////////////////////////////////
unsigned long lastPacket = DMXSerial.noDataSince();
if (lastPacket < 5000) {
_radioData.Val1= DMXSerial.read(1);
_radioData.Val2= DMXSerial.read(2);
_radioData.Val3= DMXSerial.read(3);
_radioData.Val4= DMXSerial.read(4);
}
else {
_radioData.Val1= 0;
_radioData.Val2= 0;
_radioData.Val3= 0;
_radioData.Val4= 0;
}
_radio.send(DESTINATION_RADIO_ID, &_radioData, sizeof(_radioData), NRFLite::NO_ACK);
}
et le récepteur :
/*
Radio Arduino
CE -> 9
CSN -> 10 (Hardware SPI SS)
MOSI -> 11 (Hardware SPI MOSI)
MISO -> 12 (Hardware SPI MISO)
SCK -> 13 (Hardware SPI SCK)
IRQ -> Rien
VCC -> En dessous de 3.6 volts
GND -> GND
*/
#include <VarSpeedServo.h>
#include <SPI.h>
#include <NRFLite.h>
#include "AccelStepper.h"
AccelStepper stepper(1 ,5, 6); // 1 = Easy Driver interface
// Nano Pin 2 connected to STEP pin of Easy Driver
// Nano Pin 3 connected to DIR pin of Easy Driver
int rge = 4;
int vert = 3;
int valnew ;
VarSpeedServo myservo1;
VarSpeedServo myservo2;
const static uint8_t RADIO_ID = 0;
const static uint8_t PIN_RADIO_CE = 9;
const static uint8_t PIN_RADIO_CSN = 10;
struct RadioPacket // Packet de données envoyé,
{
uint32_t Val1;
uint32_t Val2;
uint32_t Val3;
uint32_t Val4;
};
NRFLite _radio; //Déclaration du module NRF
RadioPacket _radioData;//Déclaration du packet de données
void setup() {
stepper.setAcceleration(2000);
pinMode( rge , OUTPUT );
pinMode( vert , OUTPUT );
myservo1.attach(A0);
myservo2.attach(A1);
myservo1.write(20, 30 , false); // ici placement des servo au neutre
myservo2.write(20, 30 , false);
delay ( 3000 ) ;
Serial.begin(9600);
if (!_radio.init(RADIO_ID, PIN_RADIO_CE, PIN_RADIO_CSN))//si l'initialisation du module n'est pas finie
{
digitalWrite(rge, HIGH);
digitalWrite(vert, LOW);
while (1); // Attend
}
digitalWrite(rge, LOW);
digitalWrite(vert, HIGH);
delay(200);
digitalWrite(vert, LOW);
delay(200);
digitalWrite(vert, HIGH);
delay(200);
digitalWrite(vert, LOW);
delay(200);
digitalWrite(vert, HIGH);
delay(200);
digitalWrite(vert, LOW);
delay(2000);
}
void loop() {
digitalWrite(rge, HIGH); // témoin module allumé
//////////////////////////////////////////////////////////////////////////////////////
while (_radio.hasData())//Tant que le module NRF a des données
{
_radio.readData(&_radioData); // lecture des nouvelles données
_radioData.Val1 = _radioData.Val1;
_radioData.Val2 = _radioData.Val2;
_radioData.Val3 = map(_radioData.Val3 , 0 , 255 , 0 , 180 );
_radioData.Val4 = _radioData.Val4;
}
//////////////////////////////////////////////////////////////////////////////////////
myservo1.write(_radioData.Val3); // deplaceme mvt DMx
myservo2.write(_radioData.Val3);
//////////////////////////////////////////////////////////////////////////////////////
if (_radioData.Val4 >=63 && _radioData.Val4 <=255){
myservo1.write(20); // position de départ
myservo2.write(20);
delay(100);
myservo1.write(100, 15 , false); // allé à 100 ° vitesse 15
myservo2.write(100, 15 , false);
delay(1900); // attente pr allé à 100°
myservo1.write(20, 24 , false); // retour à 0 ° vitesse 24
myservo2.write(20, 24 , false);
delay(1150); // attente pr retourner à 30°
_radioData.Val4 = 0 ;
}
Serial.println(_radioData.Val4); // voir a enlever ????? ou déplacer !
//////////////////////////////////////////////////////////////////////////////////////
if (_radioData.Val1 < 127 && _radioData.Val1 > 0 )
{ stepper.move(-1000);}
if (_radioData.Val1 > 127 )
{stepper.move(1000);}
valnew = map(_radioData.Val2, 0, 255, 100, 3000);
stepper.setMaxSpeed(valnew);
stepper.run();
}