#include <vector>
#define DIR_PIN1 25
#define STEP_PIN1 26
#define DIR_PIN2 19
#define STEP_PIN2 21
#define DELAY_US 2000
using namespace std;
string motores;
void rodarMotores(string motores){
int passos = 200;
if(motores == "A"){
for(int i=0; i<passos; i++){
digitalWrite(STEP_PIN1, LOW);
digitalWrite(STEP_PIN1, HIGH);
delayMicroseconds(DELAY_US);
}
}
else if(motores == "B"){
for(int i=0; i<passos; i++){
digitalWrite(STEP_PIN2, LOW);
digitalWrite(STEP_PIN2, HIGH);
delayMicroseconds(DELAY_US);
}
}
else if(motores == "AB"){
for(int i=0; i<passos; i++){
digitalWrite(STEP_PIN1, LOW);
digitalWrite(STEP_PIN2, LOW);
digitalWrite(STEP_PIN1, HIGH);
digitalWrite(STEP_PIN2, HIGH);
delayMicroseconds(DELAY_US);
}
}
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Código pronto");
//Inicialização das variáveis como output
pinMode(DIR_PIN1, OUTPUT);
pinMode(STEP_PIN1, OUTPUT);
pinMode(DIR_PIN2, OUTPUT);
pinMode(STEP_PIN2, OUTPUT);
delay(1000);
}
void loop() {
//Inicializando os dois drivers para rodar no sentido horário
digitalWrite(DIR_PIN1, HIGH);
digitalWrite(DIR_PIN2, HIGH);
motores = "A";
rodarMotores(motores);
delay(1000);
motores = "B";
rodarMotores(motores);
delay(1000);
motores = "AB";
rodarMotores(motores);
delay(1000);
//Inicializando os dois drivers para rodar no sentido anti-horário
digitalWrite(DIR_PIN1, LOW);
digitalWrite(DIR_PIN2, LOW);
motores = "A";
rodarMotores(motores);
delay(1000);
motores = "B";
rodarMotores(motores);
delay(1000);
motores = "AB";
rodarMotores(motores);
delay(1000);
}