projet STI2D joystick avec arduino et xbee pilote une carte de puissance md22)

voila je suis en STI2D et on doit faire un projet , en l'occurrence ici c'est piloter une voiture télécommandé mais j'arrive pas trop a comprendre la configuration pour les modules Xbee et pour la carte de puissance (MD22) je comprend pas comment on lui dit de faire tourner le moteur dans un sens ou dans l'autre donc voila mes deux programmes:

programmes de la télécommande:

int valeur_vertical = 2.5; //joystick
int valeurcible = 2.5; //joystick
int action_moteur = 0; //joystick

void setup()
{
Serial.begin(9600);
}

// Xbee configuration
void setDestination()
{

delay(1000);
Serial.print("+++");
delay(1000);
char thisByte = 0;
while (thisByte != '\r') { // attend la reponse de l'xbee
if (Serial.available() > 0)
{
thisByte = Serial.read();
}
}

Serial.print("ATRE\r");// met les paramétres par defaut
Serial.print("ATDL 0x0000\r"); // communique avec xbee 0
Serial.print("ATMY 0x0001\r"); // ici c'est l' xbee 1
Serial.print("ATID 0x1234\r"); // adresse du réseau 1234
Serial.print("ATCH 0x0C\r"); //lit le canal utilisé
Serial.print("ATIU 0x1\r"); //autorise les I/O
Serial.print("ATCN\r"); // sort du mode configuration
//mettre le mode peer to peer CE=0 A1=1 A2=0
}

void loop()
{
//Utilisation Joystick
int valeur_vertical = analogRead(2);

if (valeurcible < valeur_vertical)
{
action_moteur = 1; //moteur avance
}

if (valeurcible > valeur_vertical)
{
action_moteur = 0; // moteur recule
}

if (valeurcible = valeur_vertical)
{
action_moteur = -1; //moteur stop
}
}

et voila le programme pour le modèle réduit:

int action_moteur = 0;

void setup()
{
Serial.begin(9600) ;
}

// Xbee configuration
void setDestination() {
Serial.print("+++");
char thisByte = 0;
while (thisByte != '\r') { // wait for xbee response
if (Serial.available() > 0) {
thisByte = Serial.read();
}
}
Serial.print("ATRE\r");// met les paramétres par defaut
Serial.print("ATDL 0x0001\r"); // communique avec xbee 1
Serial.print("ATMY 0x0000\r"); // ici c'est l' xbee 0
Serial.print("ATID 0x1234\r"); // adresse du réseau 1234
Serial.print("ATCH 0x0C\r"); //lit le canal utilisé
Serial.print("ATIU 0x1\r"); //autorise les I/O
Serial.print("ATCN\r"); // sort du mode configuration
//mettre le mode peer to peer CE=0 A1=1 A2=0
}

void loop()
{
//informations télécommande

if (action_moteur = 1)
{
//mettre la commande pour que le moteur avance (voir avec le md22)
}

if (action_moteur = 0)
{
//mettre la commande pour que le moteur recule (voir avec le md22)
}

if (action_moteur = -1)
{
//mettre la commande pour que le moteur stop (voir avec le md22)
}
}

j'ai aussi un programme pour le MD22 mais je les pas trop compris

int valeur_vertical = 2.5;

2.5 ? :astonished:

Merci en faite c'est float

Quel mode utilises-tu pour le md22 ?

voila le programme pour le modèle réduit qui fonctionne très bien

 #include <Wire.h>

#define adresse             0x58                    // adresse du hacheur
#define registre_mode       0x00                    // choix du mode si 0, MARCHE AV 255 ,arret 128, MARCHE AR 0
#define registre_vitresse   0x01                    // registre de vitesse (réglable de 0 à 255)

byte Mode = 0;                                      // choix du mode de fonctionnement

void setup()
{
  Wire.begin();
  Wire.beginTransmission(adresse);                     // adresse de l'esclave
  Wire.write(registre_mode);                           // definition du mode de fonctionnement
  Wire.write(Mode);                                    // valeur saisie 
  Wire.endTransmission();
}

void loop()
{
    Transfer_donnee(registre_vitresse, 150);               // Appel sous programme 
    delay(3000);   
    Transfer_donnee(registre_vitresse, 128);               // Appel sous programme 
    delay(3000); 
    Transfer_donnee(registre_vitresse, 100);               // Appel sous programme 
    delay(3000); 
}
         
void Transfer_donnee(byte registre, byte valeur){        //Sous programme
    Wire.beginTransmission(adresse);                     // adresse de l'esclave
    Wire.write(registre);                                // definition du registre choisi
    Wire.write(valeur);                                  // valeur saisie dans le registre
    Wire.endTransmission();
}

il manque plus qu'a faire le programme pour le potentiometre et changer les valeur du programme modele réduit par la valeur du joystick