Moteur pas à pas stepper

Bonjour à tous ! je suis un nouveau dans le domaine de la programmation en arduino et je commence à bien me débrouiller :slight_smile: mais le problème … c’est que j’ai beaucoup de mal a réaliser ce que je veux …

explication :

Je voudrais réaliser différent cycle de mouvement avec mon moteur pas à pas stepper en fonction du bouton que j’actionne ( ex : bouton 1 = 2 tours à droites =>1 tour à gauche => 3 tours à droite => fin. // bouton 2 = 5 tours à droites =>4 tour à gauche => 2 tours à droite => fin.)

Mon problème ? quand j’actionne un BP rien ne se passe …

je fais joujou avec un arduino uno + motor shield + moteur pas à pas stepper 200 pas 4 fils + 6 BP NO/NF

en attente de vos avis et solution :slight_smile: bonne soirée à tous. ( au cas où , jai dejas essayer et ca fontionne une fois de temps en temps mais pas quand je le veux … et le faire avec des BP NO ne fonctionne pas … il ne fonctionne qu’avec des BP NC ( 3.3v ) pourquoi ? )

je vous présente mon code et mon câblage ( logiciel = fritzing/arduino ):

#include <Stepper.h>
 
const int buttonPin1 = 0;     // Recette n°1
const int buttonPin2 = 1;     // Recette n°2
const int buttonPin3 = 2;     // Recette n°3
const int buttonPin4 = 5;     // 1 case à droite
const int buttonPin5 = 6;     // 1 case à gauche
    
const int stepsPerRevolution = 200;  // nombres de pas que le moteur fait pour 1 Tours
                           
// initialize the stepper library on the motor shield
Stepper myStepper(stepsPerRevolution, 12,13);    
// give the motor control pins names:
const int pwmA = 3; 
const int pwmB = 11;
const int brakeA = 9;
const int brakeB = 8;
const int dirA = 12;
const int dirB = 13;
int buttonState = 0;         // variable pour mémoriser l'état du bouton
 
void setup() {   
   
 // configure la broche numérique en SORTIE
  pinMode(buttonPin1, INPUT);  // recette n°1
  pinMode(buttonPin2, INPUT);  // recette n°2
  pinMode(buttonPin3, INPUT);  // recette n°3
  pinMode(buttonPin4, INPUT);  // 1 case à droite
  pinMode(buttonPin5, INPUT);  // 1 case à gauche
  
Serial.begin(9600);
// set the PWM and brake pins so that the direction pins  // can be used to control the motor:
 
pinMode(pwmA, OUTPUT);
pinMode(pwmB, OUTPUT);
pinMode(brakeA, OUTPUT);
pinMode(brakeB, OUTPUT);
digitalWrite(pwmA, HIGH);
digitalWrite(pwmB, HIGH);
digitalWrite(brakeA, LOW);
digitalWrite(brakeB, LOW);
 
// initialize the serial port:
Serial.begin(9600);
 
myStepper.setSpeed(60); // vitesse du moteur en tours/min
 
}
 
void loop() {
 
          
  //====================================================================================//
  buttonState = digitalRead(buttonPin1);
  if (buttonState == LOW)   { 
    
   
  myStepper.step(600);
   
  delay(2000);
   
  myStepper.step(-200);
  delay(2000);
    
   
  myStepper.step(400);
   
  delay(2000);
    
  myStepper.step(-800);
   
  delay(5000);
 for(n = 0; n < 10; n++)
 
  //===================================================================================//
  
 
  //===================================================================================//
  // Commande manuelle 1 case à droite
 buttonState = digitalRead(buttonPin4);
  if (buttonState == LOW)   { 
    
   
  myStepper.step(200);
  }
  // Commande manuelle 1 case à gauche
 buttonState = digitalRead(buttonPin5);
  if (buttonState == LOW)   { 
    
   
  myStepper.step(-200);
    }
          
}

ps: je n’arrive pas à insérer d’image …

bonjour,

deux choses,

  • pour tes boutons poussoirs, il faut des R de pull up externe ou mettre en oeuvre celle qui sont en interne dans le µC

  • quelle est la référence du motor driver que tu utilises ?

bien le bonjour,

pour votre première solution je vais essayer .

pour la référence c'est un arduino motor shield v3

saurez vous par hasard comment inséré une image ? pour vous faire pars de mon câblage .

Bonjour,

JimiFR:
saurez vous par hasard comment inséré une image ? pour vous faire pars de mon câblage .

11 ème icône à partir de la gauche. L’image doit être héberger sur un site.