Bonjour j'ai une question, il faut que je réduise le temps entre des interruption pour pouvoir faire accélérer un moteur progressivement ( 48 pas Unipolaire) mais je ne sais pas comment faire.
Voici le code :
#include <TimerOne.h>
int thisStep = 0;
int attendre= 0;
void setup() {
Serial.begin(9600);
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;
}
}
J'utilise la librairie TIMER ONE et un arduino Uno.
Merci.