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);