#define psentido 4
#define ppasso 5
#define pms3 6
#define pms2 7
#define pms1 8
#define botao 9
int passos_por_rotacao;
int voltas=1;
void setup() {
Serial.begin(9600);
pinMode(ppasso, OUTPUT);
pinMode(pms1, OUTPUT);
pinMode(pms2, OUTPUT);
pinMode(pms3, OUTPUT);
pinMode(botao, INPUT);
}
void passo (int frequencia) {
int tempo;
if (frequencia==1){
tempo=1000;
}
else if(frequencia==2){
tempo=500;
}
else{
tempo=333;
}
digitalWrite(ppasso, LOW);
delayMicroseconds(tempo);
digitalWrite(ppasso, HIGH);
delayMicroseconds(tempo);
}
void loop() {
delay(100);
if (digitalRead(botao)==HIGH){
if(voltas==3){
voltas=1;
}
else{
voltas++;
}
}
Serial.print(voltas);
Serial.println(" volta(s) completa(s) no Sentido horário com full-step");
passos_por_rotacao=200;
digitalWrite(psentido, HIGH);
digitalWrite(pms1, LOW);
digitalWrite(pms2, LOW);
digitalWrite(pms3, LOW);
for (int i = 0; i < passos_por_rotacao*voltas; i++) {
passo(voltas);
}
delay(3000);
Serial.print(voltas);
Serial.println(" volta(s) completa(s) no Sentido anti-horário com half-step");
passos_por_rotacao=400;
digitalWrite(psentido, LOW);
digitalWrite(pms1, HIGH);
digitalWrite(pms2, LOW);
digitalWrite(pms3, LOW);
for (int i = 0; i < passos_por_rotacao*voltas; i++) {
passo(voltas);
}
delay(3000);
}