const int Pin1 = 13;
const int Pin2 = 12;
const int Pin3 = 11;
const int Pin4 = 10;
const int modoPin1 = A1;
const int modoPin2 = A2;
const int modoPin3 = A3;
const int modoPin4 = A4;
const int pulso = 180; // 180 numero de pulsos para o motor configurado em half step/para ful step 90 pulsos
const int intervaloPulso = 2;// tempro entre os pulsos em milesegundos
const unsigned long tempoEspera = 60000; // tempo entre ciclos em milesegundos
unsigned long tempoAnterior1 = 0;
unsigned long tempoAnterior2 = 0;
unsigned long tempoAnterior3 = 0;
unsigned long tempoAnterior4 = 0;
void setup() {
pinMode(Pin1, OUTPUT);
pinMode(modoPin1, INPUT_PULLUP);
pinMode(Pin2, OUTPUT);
pinMode(modoPin2, INPUT_PULLUP);
pinMode(Pin3, OUTPUT);
pinMode(modoPin3, INPUT_PULLUP);
pinMode(Pin4, OUTPUT);
pinMode(modoPin4, INPUT_PULLUP);
}
void loop() {
// Verifica o modo e ajusta o comportamento
int modo1 = (digitalRead(modoPin1) == LOW) ? 2 : 1;
int modo2 = (digitalRead(modoPin2) == LOW) ? 2 : 1;
int modo3 = (digitalRead(modoPin3) == LOW) ? 2 : 1;
int modo4 = (digitalRead(modoPin4) == LOW) ? 2 : 1;
// Controla motor 1
control(Pin1, modo1, tempoAnterior1);
// Controla motor 2
control(Pin2, modo2, tempoAnterior2);
// Controla motor 3
control(Pin3, modo3, tempoAnterior3);
// Controla motor 4
control(Pin4, modo4, tempoAnterior4);
}
void control(int pin, int modo, unsigned long& tempoAnterior) {
if (modo == 1) {
if (millis() - tempoAnterior >= tempoEspera) {
tempoAnterior = millis();
for (int i = 0; i < pulso; i++) {
comtinuo(pin, intervaloPulso);
}
}
} else if (modo == 2) {
comtinuo(pin, intervaloPulso);
}
}
void comtinuo(int pin, int intervalo) {
digitalWrite(pin, HIGH);
delay(1);
digitalWrite(pin, LOW);
delay(1);
}