Interruption

Bonjour ici Rooted_Skull,

Je vous expose mon problème. Disposant d’un Arduino Uno, d’une plaquette lab, d’un microcontoller et d’un moteur unipolar 48steps. Mon problème est le suivent je dois réaliser un programme grâce à des interruption qui permet à mon moteur une accélération et une décélération quand je clique sur un bouton (optionnel). Voici mon programme ci contre qui permet de faire un pas après l’autre :

#include <TimerOne.h>
int thisStep = 0;
int attendre= 0;

void setup() {

pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
digitalWrite(5, LOW);

Timer1.initialize(100000); // set a timer
Timer1.attachInterrupt( interruption ); // attach the service routine

}

void loop() {

}

void interruption ()
{
attendre++;
if (attendre==10){
attendre = 0;
plusunpas();
}

}

void plusunpas()
{

switch (thisStep) {
case 0: // 1010
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
thisStep++ ;
break;
case 1: // 0110
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
thisStep++ ;
break;
case 2: //0101
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
thisStep++ ;
break;
case 3: //1001
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
thisStep = 0;
break;
}
}

Maintenant si cela est possible j’aimerais un petit coup de pouce pour pouvoir réaliser une accélération progressive sans perdre des pas car ce moteur nécessite une grande précision (Bandit Manchot), je vous remercie de votre aide et espère vous faire devenir riche un jour.

ROOTED_SKULL.