Bonjour,
Je suis un vrai novice.
Je souhaiterais utiliser arduino, pour animer ma vitrine de Noel.
Je suis un peu limité dans mon auto- apprentissage.
Mon idée et de faire monter et descendre un théière.
Je pense accrocher un dessous de théière aux 4 coins. Les 2 coins avant, seraient accrochés sur un moteur par a pas 28byj-48. Les 2 coins arrières seraient branchés sur un autre moteur.
Mon fonctionnement est de faire descendre la théière (ex: sur 50 cm), puis le moteur arrière se lèverait sur 4cm, pour faire comme un effet de versement du thé comme pour servir le thé. Puis revenir a plat et remonter ....
Mon problème et le fonctionnement des 2 moteurs en même temps.
J'ai codé et téléversé, mais un seul moteur fonctionne sur les 2 souhaités en même temps.
Dans mes recherches, je n'ai pas compris la faisabilité de ce double fonctionnement.
SI toutefois, quelqu'un pourrait m'apporter une aide, cela permettrait peut être d'atteindre mon idée de vitrine de noel et continuer mon apprentissage.
Je joint mon code. IL n'est pas parfait évidemment, mais je ne pense pas que cela justifie le non fonctionnement souhaité. Je pense que je n'ai pas les bon code et étant donné qu"il y a du delay, il y a apparemment une incompatibilité à ce niveau.
Merci de votre soutien.
#include <AccelStepper.h>
// Définir les constantes de pas
const int FULLSTEP = 4;
const int MOTEUR1_FULLSTEP = 4;
const int MOTEUR2_FULLSTEP = 8;
// Créer deux instances de la classe AccelStepper
// Les broches sont définies dans l'ordre IN1-IN3-IN4-IN2 pour une séquence de pas appropriée
AccelStepper stepper1(FULLSTEP, 8, 10, 9, 11);
AccelStepper stepper2(FULLSTEP, 4, 6, 5, 7);
// Paramètres
const long distanceEnPas = 6520; // La distance que vous souhaitez parcourir en pas
const long distanceMonteeEnPas = 520; // La distance pour la montée de 520 pas
const unsigned long delaiArret = 5000; // Délai en millisecondes pour l'arrêt (5 secondes)
void setup() {
stepper1.setMaxSpeed(1000); // Vitesse maximale en pas par seconde pour le moteur 1
stepper1.setAcceleration(1000); // Accélération en pas par seconde carrée pour le moteur 1
stepper2.setMaxSpeed(1000); // Vitesse maximale en pas par seconde pour le moteur 2
stepper2.setAcceleration(1000); // Accélération en pas par seconde carrée pour le moteur 2
// Descendre MOTEUR 1 et 2 de 6520 pas
stepper1.run();
stepper2.run();
stepper1.move(-distanceEnPas);
stepper2.move(-distanceEnPas);
stepper1.runToPosition();
stepper2.runToPosition();
// Pause pendant 5 secondes
delay(delaiArret);
// Arrêter MOTEUR 1 pendant que MOTEUR 2 monte de 52 pas
stepper1.stop();
stepper2.move(distanceMonteeEnPas);
stepper2.runToPosition();
delay(delaiArret);
// Descendre MOTEUR 2 de 52 pas
stepper2.move(-distanceMonteeEnPas);
stepper2.runToPosition();
// Monter MOTEUR 1 et MOTEUR 2 de 652 pas
stepper1.move(distanceEnPas);
stepper1.runToPosition();
stepper2.move(distanceEnPas);
stepper2.runToPosition();
}
void loop() {
// Mettre à jour les positions des deux moteurs en simultané
gerermoteur1();
gerermoteur2();
stepper1.run();
stepper2.run();
// Pause pendant 5 secondes
delay(delaiArret);
// Arrêtez MOTEUR 1 pendant que MOTEUR 2 monte de 52 pas
stepper1.stop();
stepper2.move(distanceMonteeEnPas);
stepper2.runToPosition();
// Pause de 5 secondes
delay(delaiArret);
// Descendez MOTEUR 2 de 520 pas
stepper2.move(-distanceMonteeEnPas);
stepper2.runToPosition();
// Faites monter MOTEUR 1 et MOTEUR 2 de 6520 pas
stepper1.move(distanceEnPas);
stepper1.runToPosition();
stepper2.move(distanceEnPas);
stepper2.runToPosition();
}