// Definición de pines
const int stepPin = 18; // Pin para enviar los pasos
const int relayPin = 19; // Pin relé de dirección
const int SW1 = 21; // Pin interruptor inversor de giro
// No mover valores
const int steps_1 = 1; // Número de pasos en grio horario
const int steps_2 = 1; // Número de pasos en grio antihorario
// Valores de prueba para variar (200 pulsos = 1 revolución)
bool S_SW1; //Estado del interruptor (Cambio auto)
//Giro horario del motor
void JOG_CW(){
for (int i = 0; i < steps_1; i++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(500);
digitalWrite(stepPin, LOW);
delayMicroseconds(500);
}
}
//Giro antihorario del motor
void JOG_CCW(){
for (int j = 0; j < steps_2; j++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(500);
digitalWrite(stepPin, LOW);
delayMicroseconds(500);
}
}
void setup() {
// Configuración de los pines como salida
pinMode(stepPin, OUTPUT);
pinMode(relayPin, OUTPUT);
// Configuración de pin como entrada
pinMode(SW1, INPUT);
// Iniciar el motor apagado
digitalWrite(stepPin, LOW);
digitalWrite(relayPin, LOW);
}
void loop() {
// Esperar un momento
delay(1);
// Leer el interruptor
S_SW1 = digitalRead(SW1);
// Hacer que el motor dé pasos en CCW
if (S_SW1){
digitalWrite(relayPin, HIGH);
JOG_CCW();
}
// Hacer que el motor dé pasos en CW
else{
digitalWrite(relayPin, LOW);
JOG_CW();
}
// Esperar antes de repetir
delay(1);
}