//Controlando motor de passo utilizando drive A4988
#define botao1 12
#define botao2 11
#define LedRed 10 //LED RGB
#define LedGreen 9 //LED RGB
#define LedBlue 8 //LED RGB
#define pinDir 4 //Controla sentido de giro do motor
#define pinStep 5 //Controla posição do motor
int timeStep = 2; //Controla a Velocidade do motor
int timeLed = 200; //Controla pisca-pisca do LED
void setup()
{
pinMode(botao1, INPUT);
pinMode(botao2, INPUT);
pinMode(LedRed, OUTPUT);
pinMode(LedGreen, OUTPUT);
pinMode(LedBlue, OUTPUT);
pinMode(pinDir, OUTPUT);
pinMode(pinStep, OUTPUT);
}
void loop()
{
//Motor em sentido horário
if((digitalRead(botao1)==1) && (digitalRead(botao2)==0))
{
digitalWrite(pinDir, HIGH);
digitalWrite(LedRed, HIGH);
digitalWrite(LedBlue, HIGH);
digitalWrite(LedGreen, LOW);
for(int i=0; i<100; i++)
{
digitalWrite(pinStep, HIGH);
delay(timeStep);
digitalWrite(pinStep, LOW);
delay(timeStep);
}
}
//Motor em sentido anti-horário
if(digitalRead(botao2)==1 && digitalRead(botao1)==0)
{
digitalWrite(pinDir, LOW);
digitalWrite(LedRed, HIGH);
digitalWrite(LedBlue, HIGH);
digitalWrite(LedGreen, HIGH);
for(int i=0; i<100; i++)
{
digitalWrite(pinStep, HIGH);
delay(timeStep);
digitalWrite(pinStep, LOW);
delay(timeStep);
}
}
//Pisca LED quando motor está parado
digitalWrite(LedRed, LOW);
digitalWrite(LedBlue, LOW);
digitalWrite(LedGreen, HIGH);
delay(timeLed);
digitalWrite(LedGreen, LOW);
delay(timeLed);
}