Bonjours, j'ai un problème avec mon programme, lorsque je lance mon programme, la boucle ne s'applique que à un moteur. Je m'explique, j'ai un capteur altimétrique. Tant que le capteur n'atteint pas sa consigne alors les moteurs tournent dans le sens horaire. Lorsqu'il l'a dépasse, dans le sens anti-horaire. Mais seul un moteur change de sens lorsque l'altimètre affiche une hauteur supérieur à sa consigne, qu'est ce qui ne va pas?
void loop() {
float dist = mesureDistance();
erreur = setpoint - dist;
float sortie = Kp*erreur;
Serial.println(erreur);
moteur1->setSpeed(0);//
moteur2->setSpeed(0);
moteur3->setSpeed(0);
moteur4->setSpeed(0);
if (sortie > 0) //
moteur1->run(FORWARD);
moteur2->run(FORWARD);
//moteur3->run(FORWARD);
//moteur4->run(FORWARD);
if (sortie < 0)
moteur1->run(BACKWARD);
moteur2->run(BACKWARD);
//moteur3->run(BACKWARD);
//moteur4->run(BACKWARD);
moteur1->setSpeed(200);
moteur2->setSpeed(200);
//moteur3->setSpeed(155);
//moteur4->setSpeed(155);
delay(dt);