Bonjour ,
pour tester la partie mécanique de mon projet , il me faut faire mettre en marche et arrêter 2 moteurs pas à pas simultanément avec l'aide d'un bouton .
J'ai trouver la solution pour les faires démarrer avec 1 bouton , modifier leur vitesses et le nombre de pas en modifiant le code , mais cela ne marche qu'une fois après le téléchargement . Si j' appuis à nouveau , il ne se passe plus rien . J'ai essayé avec 2 boutons , rien y fait . Mélangé plusieurs codes et fait des essais et liens à tout vas . J'ai lu que la fonction est bloquante . je tourne en rond .
Avez vous une idée de ce qu'il faut faire ?
merci pour votre aide .
#include <AccelStepper.h>
#include <MultiStepper.h>
const int boutonmarche = 12;
const int boutonarret = 13;
int etatboutonmarche = 0;
int etatboutonarret = 0;
const int led = 8;
int etatboutonprecedent = 0;
int motors = 0;
//ccelStepper stepper2(AccelStepper::FULL4WIRE, 6, 7, 8, 9);
//AccelStepper stepper3(AccelStepper::FULL2WIRE, 10, 11);
AccelStepper stepper1(1, 2, 3); // 1 pour dire je sais pas. 2 c'est le pul + sur l’arduino et 3 le dir +
AccelStepper stepper2(1, 5, 6); // 1 pour dire je sais pas. 2 c'est le pul + sur l’arduino et 3 le dir +
void setup() {
// Serial.begin(9600);
pinMode(boutonmarche, INPUT_PULLUP);
pinMode(boutonarret, INPUT_PULLUP);
pinMode(8, OUTPUT);
}
void moteursMarche() {
stepper1.setMaxSpeed(1000);
stepper1.setAcceleration(400);
stepper1.moveTo(4000);
stepper2.setMaxSpeed(2000);
stepper2.setAcceleration(400);
stepper2.moveTo(800);
stepper1.run();
stepper2.run();
digitalWrite(8, HIGH);
}
void boutondecommande() {
etatboutonmarche = digitalRead(boutonmarche);
if ((etatboutonmarche == LOW) && (etatboutonprecedent == HIGH)) {
motors = 1 - motors ;
}
etatboutonprecedent = etatboutonmarche ;
if ( motors == 1) {
moteursMarche();
}
}
void loop() {
boutondecommande();
}
//Serial.println("avant");
//Serial.print(motors);













