1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
   |  
#include <Stepper.h>
 
int CaptCad;
const int Pas_par_tour= 4096;
const int number_steps= 2000;
//moteur pas a pas
#define IN1  8
#define IN2  9
#define IN3  10
#define IN4  11
int Steps = 0; 
int Direction = 0;
boolean dir = true;
 
Stepper moteur(number_steps,IN1,IN2,IN3,IN4);
 
void setup() { 
 
 
  moteur.setSpeed(9);
  pinMode(IN1, OUTPUT);  
  pinMode(IN2, OUTPUT);  
  pinMode(IN3, OUTPUT);  
  pinMode(IN4, OUTPUT);
}
 
 
 
void loop() {
    if (CaptCad<61){
      if (51<CaptCad<60){
 
 
 
      {
      stepper(number_steps);                                           (c'est ici qu'est le problème)
      delay(1000);
      for(int thisStep=0;thisStep<number_steps;thisStep++){
      stepper(1);
      }
       delay(1000);
}
void stepper(double nbStep){
 if(nbStep>=0){
     Direction=1;
 }else{
     Direction=0;
     nbStep=-nbStep;
 }
 for (int x=0;x<Nb_Pas*8;x++){
   switch(_step){
      case 0:
        digitalWrite(IN1, LOW); 
        digitalWrite(IN2, LOW);
        digitalWrite(IN3, LOW);
        digitalWrite(IN4, HIGH);
      break; 
      case 1:
        digitalWrite(IN1, LOW); 
        digitalWrite(IN2, LOW);
        digitalWrite(IN3, HIGH);
        digitalWrite(IN4, HIGH);
      break; 
      case 2:
        digitalWrite(IN1, LOW); 
        digitalWrite(IN2, LOW);
        digitalWrite(IN3, HIGH);
        digitalWrite(IN4, LOW);
      break; 
      case 3:
        digitalWrite(IN1, LOW); 
        digitalWrite(IN2, HIGH);
        digitalWrite(IN3, HIGH);
        digitalWrite(IN4, LOW);
      break; 
      case 4:
        digitalWrite(IN1, LOW); 
        digitalWrite(IN2, HIGH);
        digitalWrite(IN3, LOW);
        digitalWrite(IN4, LOW);
      break; 
      case 5:
        digitalWrite(IN1, HIGH); 
        digitalWrite(IN2, HIGH);
        digitalWrite(IN3, LOW);
        digitalWrite(IN4, LOW);
      break; 
        case 6:
        digitalWrite(IN1, HIGH); 
        digitalWrite(IN2, LOW);
        digitalWrite(IN3, LOW);
        digitalWrite(IN4, LOW);
      break; 
      case 7:
        digitalWrite(IN1, HIGH); 
        digitalWrite(IN2, LOW);
        digitalWrite(IN3, LOW);
        digitalWrite(IN4, HIGH);
      break; 
      default:
        digitalWrite(IN1, LOW); 
        digitalWrite(IN2, LOW);
        digitalWrite(IN3, LOW);
        digitalWrite(IN4, LOW);
      break; 
   }
 delayMicroseconds(1000);
 if(Direction==1){ _step++;}
 if(Direction==0){ _step--; }
 if(_step>7){_step=0;}
 if(_step<0){_step=7; } | 
Partager