volatile int phase1 = 13;
volatile int phase2 = 12;
int I01 = 11;
int I11 = 10;
int I02 = 9;
int I12 = 8;
int period = 1000;
int a = 0;
void setup()
{
pinMode(phase1, OUTPUT);
pinMode(phase2, OUTPUT);
pinMode(I01, OUTPUT);
pinMode(I11, OUTPUT);
pinMode(I02, OUTPUT);
pinMode(I12, OUTPUT);
}
void loop()
{
if (a < period)
{
a++;
stp ();
{
//0 1
digitalWrite(phase1, LOW);
digitalWrite(phase2, LOW);
delay(1.5);
digitalWrite ( I11, LOW);
digitalWrite (I12, HIGH);
digitalWrite (I01, LOW);
digitalWrite (I02, HIGH);
//2 0
digitalWrite(phase1, LOW);
digitalWrite(phase2, LOW );
delay(1.5);
digitalWrite ( I11, HIGH);
digitalWrite (I12, LOW);
digitalWrite (I01, HIGH );
digitalWrite (I02, LOW );
//4 1
digitalWrite(phase1, HIGH );
digitalWrite(phase2, LOW );
delay(1.5);
digitalWrite ( I11, LOW);
digitalWrite (I12, HIGH);
digitalWrite (I01, LOW);
digitalWrite (I02, HIGH);
//6 0
digitalWrite(phase1, LOW);
digitalWrite(phase2, HIGH );
delay(1.5);
digitalWrite ( I11, HIGH);
digitalWrite (I12, LOW);
digitalWrite (I01, HIGH );
digitalWrite (I02, LOW );
}
}
else {
dir (); {
a ++;
//1 2/3
digitalWrite(phase1, LOW);
digitalWrite(phase2, LOW );
delay(1.5);
digitalWrite (I12, LOW);
digitalWrite ( I11, LOW);
digitalWrite (I01, HIGH);
digitalWrite (I02, HIGH );
//3 2/3
digitalWrite(phase1, HIGH );
digitalWrite(phase2, LOW );
delay(1.5);
digitalWrite ( I11, LOW);
digitalWrite (I12, LOW);
digitalWrite (I01, HIGH);
digitalWrite (I02, HIGH);
//5 2/3
digitalWrite(phase1, HIGH );
digitalWrite(phase2, HIGH );
delay(1.5);
digitalWrite ( I11, LOW);
digitalWrite (I12, LOW);
digitalWrite (I01, HIGH);
digitalWrite (I02, HIGH);
//7 2/3
digitalWrite(phase1, LOW);
digitalWrite(phase2, HIGH);
delay(1.5);
digitalWrite ( I11, LOW);
digitalWrite (I12, LOW);
digitalWrite (I01, HIGH);
digitalWrite (I02, HIGH);
if ( a > period * 2)
{
a = 0;
stp ();
}
}
}
}
void stp ()
{ phase1 = 13;
phase2 = 12;
}
void dir ()
{ phase1 = 12;
phase2 = 13;
}