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