Envoi de programme

Bonjour,

J'ai un soucis depuis que j'en suis arrivé à ce point dans ma programmation, qui est d'envoyer une variable définie de ma Méga à ma Uno.

Ma Méga possède un écran tactile, qui fonctionne très bien, et en appuyant à un endroit précis de l'écran je voudrais envoyer une variable sur ma Uno qui possède un moteur pas à pas avec un shield en intermédiaire et en fonction de la valeur de la variable, le moteur ferait un certains nombres de tours.

Pour relier les deux cartes, c'est fait, par contre pour faire en sorte que le programme, ou plus précisément les variables, s'envoie de la Méga à la Uno, je n'ai absolument aucune idée de comment faire et j'ai beau regardé les tutoriels je ne trouve rien...

Ce n'est peut-être pas très clair, j'en suis désolé mais j'ai du mal à expliquer mon problème.

Merci de votre compréhension et s'il faut que je réexplique mieux, ou qu'il faut une précision, dites le moi car la je sèche vraiment.

Merci d'avance !

Bonjour,

Kevindu55: Pour relier les deux cartes, c'est fait, par contre pour faire en sorte que le programme, ou plus précisément les variables, s'envoie de la Méga à la Uno, je n'ai absolument aucune idée de comment faire et j'ai beau regardé les tutoriels je ne trouve rien...

Comment ces deux cartes sont-elles reliées entre elles ?

C'est une liaison en série

Un peu de lecture: http://forum.arduino.cc/index.php?topic=102540.0

la suite de ceci : http://forum.arduino.cc/index.php?topic=228247.msg1648818#msg1648818 ?

c'est exact

Up s'il vous plaît, même en lisant le lien, je n'ai pas compris ce qu'il faut faire..

void emission()
{
  Serial.print("reservoir_1_matin_final");
  Serial.println(reservoir_1_matin_final,DEC);
  Serial.print("reservoir_2_matin_final");
  Serial.println(reservoir_2_matin_final,DEC);
  Serial.print("reservoir_1_midi_final");
  Serial.println(reservoir_1_midi_final,DEC);
  Serial.print("reservoir_2_midi_final");
  Serial.println(reservoir_2_midi_final,DEC);
  Serial.print("reservoir_1_soir_final");
  Serial.println(reservoir_1_soir_final,DEC);
  Serial.print("reservoir_2_soir_final");
  Serial.println(reservoir_2_soir_final,DEC);
  
}

La partie du code qui envoie les variables par liaison série.

#include <Stepper.h>

int reservoir_1_matin_final;
int reservoir_2_matin_final;
int reservoir_1_midi_final;
int reservoir_2_midi_final;
int reservoir_1_soir_final;
int reservoir_2_soir_final;

const int motorStep = 200;
int enableA=9;
int enableB=10;

Stepper myStepper(motorStep, 8,11,12,13);

void setup()
{
  myStepper.setSpeed(10);
  analogWrite(enableA,motorStep);
  analogWrite(enableB,motorStep);
  Serial.begin(9600);
}

void loop()
{
  recevoir();
  rotation();
}

void recevoir()
{
  char recu[64]="";
  if (Serial.available() >0)
  {
    int i=0;
    do
    {
      recu[i]=Serial.read();
      i++;
    }
    while(recu[i-1] != '\n' && i<= 64);
char instructions[64][100]=
{
  {"reservoir_1_matin_final:"},
  {"reservoir_2_matin_final:"},
  {"reservoir_1_midi_final:"},
  {"reservoir_2_midi_final:"},
  {"reservoir_1_soir_final:"},
  {"reservoir_2_soir_final:"},
};
  
  char nom_var[25]="";
  char valeur_recue [10]="";
  int a=0;
  while(nom_var[a-1] != 'l')
  {
    nom_var[a]=recu [a];
    a++;    
  }
  int b=0;
  while(valeur_recue[b-1] != '\n')
  {
    valeur_recue[b]=recu[a];
    a++;
    b++;
  }
  int c=1;
  while(strcmp(nom_var,instructions[c])!=0)
  {
    c++;
  }
  
  switch(c)
  {
    case 0:
    reservoir_1_matin_final=valeur_recue[0];
    break;
    case 1:
    reservoir_2_matin_final=valeur_recue[0];
    break;
    case 2:
    reservoir_1_midi_final=valeur_recue[0];
    break;
    case 3:
    reservoir_2_midi_final=valeur_recue[0];
    break;
    case 4:
    reservoir_1_soir_final=valeur_recue[0];
    break;
    case 5:
    reservoir_2_soir_final=valeur_recue[0];
    break;
  }
  }
  }

La partie du code qui reçoit les variables.
Alors j’explique, les variables reçues sont stockées dans un tableau pour ensuite être utilisé. Désolé pour l’absence de commentaire dans mes programmes je n’y pense pas :confused:

Je ne sais pas si ça vient du programme, mais quand on test avec un multimètre la liaison série, le multimètre ne détecte rien du tout. 0 V, 0 A enfin rien ne s’envoie d’une carte à l’autre. La liaison série est pourtant bien faite, je ne comprend pas d’où vient le problème.

Merci de votre compréhenion !!