Variable dans l'objet Stepper

Bonjour

Dans une instruction comme celle ci: StepperX.moveTo(PosX);

Par quelle type de variable, puis je remplacer “StepperX” car j’ai trois moteurs et j’aimerai dans les instructions qui commande le moteur, pouvoir utiliser les mêmes pour les trois.

Exemple de ce que j’aimerai:

void Moteur()
{
if AxeEnCours = “X” { MoteurEncours = StepperX; Position = PosX; }
if AxeEnCours = “Y” { MoteurEncours = StepperY; Position = PosY; }
}
MoteurEncours.moveTo(Position);

}

Merci de votre aide

Bonjour,

Il faut utiliser un pointeur
Ce qui donne:

Stepper *MoteurEncours;

void Moteur()
{
  if (AxeEnCours = "X")  {
    MoteurEncours = &StepperX;
    Position = PosX;
  }
  if (AxeEnCours = "Y")  {
    MoteurEncours = &StepperY;
    Position = PosY;
  }
  MoteurEncours->moveTo(Position);
}

En supposant que moveTo() existe dans la librairie

kamill:
Bonjour,

Il faut utiliser un pointeur
Ce qui donne:

Stepper *MoteurEncours;

void Moteur()
{
  if (AxeEnCours = "X")  {
    MoteurEncours = &StepperX;
    Position = PosX;
  }
  if (AxeEnCours = "Y")  {
    MoteurEncours = &StepperY;
    Position = PosY;
  }
  MoteurEncours->moveTo(Position);
}



En supposant que moveTo() existe dans la librairie

Merci pour ta réponse, je vais donc potasser les pointeurs pour comprendre et tester

Shodan47:
Merci pour ta réponse, je vais donc potasser les pointeurs pour comprendre et tester

kamill:
Bonjour,

Il faut utiliser un pointeur
Ce qui donne:

Stepper *MoteurEncours;

void Moteur()
{
  if (AxeEnCours = "X")  {
    MoteurEncours = &StepperX;
    Position = PosX;
  }
  if (AxeEnCours = "Y")  {
    MoteurEncours = &StepperY;
    Position = PosY;
  }
  MoteurEncours->moveTo(Position);
}



En supposant que moveTo() existe dans la librairie

J'ai essayé de l'intégré dans mon code mais ca me donne une erreur "Stepper Does not name a type, did you mean StepperZ?" ... Faut dire que j'ai essayé de comprendre un peu les pointeurs, mais je suis dans l'abstrait:

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
LiquidCrystal_I2C lcd(0x27, 20, 4);
AccelStepper StepperX(1,37,39);
AccelStepper StepperY(1,29,31);
AccelStepper StepperZ(1,35,33);
SoftwareSerial hc06(10,11);
Stepper *MoteurEncours;
void MoteurTest()
{
if (AxeEnCours = "X") {
MoteurEncours = &StepperX;
Position = PosX;
}
if (AxeEnCours = "Y") {
MoteurEncours = &StepperY;
Position = PosY;
}
MoteurEncours->moveTo(Position);

}

AccelStepper pas Stepper

fdufnews:
AccelStepper pas Stepper

Merci pour la précision :slight_smile: