top of page

El Código

​

//------------------------------------------------------------------------------------------------------------------

int Habilitador = 12;                                        //   Habilita Corriente con Enable.
int BotonGiroDerecho = 11;                                   //   Control de Giro.
int BotonGiroIzquierdo = 10;                                 //   Control de Giro.
int StepTiempo = 1.8;                                        //   Delay Tiempo del Step.
int LedGiraIzquierda = 7;                                    //   1° Led Verde, Aviso de Giro a la Izquierda.
int LedGiraDerecha = 6;                                      //   2° Led Verde, Aviso de Giro a la Derecha.
int LedNoGira = 5;                                           //   Led Rojo, Aviso sin Movimiento.
const int Step = 9;                                          //   Pin del Step.
const int Direccion = 8;                                     //   Pin del Dir.
//------------------------------------------------------------------------------------------------------------------
void setup() {
  pinMode( BotonGiroIzquierdo  , INPUT) ;                    //   Habilita Botón Entrada Digital.
  pinMode( BotonGiroDerecho  , INPUT) ;                      //   Habilita Botón Entrada Digital.
  pinMode(Habilitador, OUTPUT);                              //   Habilita Como Salida Digital.
  pinMode(Step, OUTPUT);                                     //   Habilita Como Salida Digital.
  pinMode(Direccion, OUTPUT);                                //   Habilita Como Salida Digital.
  pinMode(LedGiraIzquierda, OUTPUT);                         //   Habilita Como Salida Digital.
  pinMode(LedGiraDerecha, OUTPUT);                           //   Habilita Como Salida Digital.
  pinMode(LedNoGira, OUTPUT);                                //   Habilita Como Salida Digital.
  digitalWrite(Habilitador, LOW);                            //   Al Arranque pone en estado LOW. Habilita.
}
//------------------------------------------------------------------------------------------------------------------
void loop() {                                                //   Bucle Principal.
  int Valor1 = digitalRead(BotonGiroIzquierdo) ;             //   Leemos los Valores del Boton.
  int Valor2 = digitalRead(BotonGiroDerecho) ;               //   Leemos los Valores del Boton.

  if (Valor1 == HIGH && Valor2 == LOW ) {                    //   Verifica SI: Valor1 = X y Valor2 = X.
    digitalWrite(Habilitador, LOW);                          //   Habilita el Enable.
    GiraIzquierda();                                         //   Accion Giro Determinado.
    AvisoLedGiraIzquierda();                                 //   Accion Aviso de Giro Determinado.
  }
  if (Valor1 == LOW && Valor2 == HIGH ) {                    //   Verifica SI: Valor1 = X y Valor2 = X.
    digitalWrite(Habilitador, LOW);                          //   Habilita el Enable.
    GiraDerecha();                                           //   Accion Giro Determinado.
    AvisoLedGiraDerecha();                                   //   Accion Aviso de Giro Determinado.
  }

  if (Valor1 == HIGH && Valor2 == HIGH ) {                   //   Verifica SI: Valor1 = X y Valor2 = X.
    digitalWrite(Habilitador, HIGH);                         //   Deshabilita el Enable.
    AvisoLedNoGira();                                        //   Accion Aviso de Sin Giro.
}
  if (Valor1 == LOW && Valor2 == LOW ) {                     //   Verifica SI: Valor1 = X y Valor2 = X.
    digitalWrite(Habilitador, HIGH);                         //   Deshabilita el Enable.
    AvisoLedNoGira();                                        //   Accion Aviso de Sin Giro. 
}
}
//------------------------------------------------------------------------------------------------------------------
void GiraIzquierda() {                                       //   Accion para girar a la Izquierda.
  digitalWrite(Direccion, HIGH);                             //   Selecciona la Direccion de Giro.
  for (uint32_t i = 0; i < 1 ; i++) {                        //   Ciclor for en este caso solo cuenta 1.
    digitalWrite(Step, HIGH);                                //   Cambia estado del Step para exitar la bobina.
    delay(StepTiempo * 1 );                                  //   Retardo.
    digitalWrite(Step, LOW);                                 //   Cambia estado del Step para exitar la bobina.
    delay(StepTiempo * 1 );                                  //   Retardo.
  }
}
//------------------------------------------------------------------------------------------------------------------
void GiraDerecha() {                                         //   Accion para girar a la Derecha
  digitalWrite(Direccion, LOW);                              //   Selecciona la Direccion de Giro.
  for (uint32_t i = 0; i < 1 ; i++) {                        //   Ciclor for en este caso solo cuenta 1.
    digitalWrite(Step, HIGH);                                //   Cambia estado del Step para exitar la bobina.
    delay(StepTiempo * 1 );                                  //   Retardo.
    digitalWrite(Step, LOW);                                 //   Cambia estado del Step para exitar la bobina.
    delay(StepTiempo * 1 );                                  //   Retardo.
  }
}
//------------------------------------------------------------------------------------------------------------------
void AvisoLedNoGira() {                   //   Accion Aviso con Led Rojo Sin Giro del Motor.
  digitalWrite(LedGiraIzquierda, LOW);    //   Apaga Led.
  digitalWrite(LedGiraDerecha, LOW);      //   Apaga Led.
  digitalWrite(LedNoGira, HIGH);          //   Enciende Led.
}
//------------------------------------------------------------------------------------------------------------------
void AvisoLedGiraIzquierda() {            //   Accion Aviso con Led Verde Giro Izquierda del Motor.
  digitalWrite(LedGiraDerecha, LOW);      //   Apaga Led.
  digitalWrite(LedNoGira, LOW);           //   Apaga Led.
  digitalWrite(LedGiraIzquierda, HIGH);   //   Enciende Led.
}
//------------------------------------------------------------------------------------------------------------------
void AvisoLedGiraDerecha() {              //   Accion Aviso con Led Verde Giro Derecha del Motor.
  digitalWrite(LedNoGira, LOW);           //   Apaga Led.
  digitalWrite(LedGiraIzquierda, LOW);    //   Apaga Led.
  digitalWrite(LedGiraDerecha, HIGH);     //   Enciende Led.
}
//------------------------------------------------------------------------------------------------------------------

Motor Paso a Paso Manual 2 Pulsadores

​

​

​

​

​

​

​

​

Manejo de un Motor Paso a Paso, mediante 2 pulsadores. Manual.
2 Giros, Sentido Horario y Sentido AntiHorario.
​
Materiales para el proyecto:
​
Arduino Uno.
Driver A4988
Motor Paso a Paso Nema 17.
1 Capacitor Electrolítico 1000uf 25V, Para La entrada de 12 Volts del A4988.
2 Botones Pulsadores. Para los Giros.
2 Resistencias de 470 ohms,  Para los Leds Verdes.
1 Resistencia de 1K ohm,  Para el Led Rojo.
2 Resistencias de 10K ohm,  Para los Botones Pulsadores.
2 Leds Verdes. Para Aviso de Giro.
1 Led Rojo. Para Aviso de Sin Giro.
Conexión:
​
Pin 12 del Arduino al Enable del A4988.
Pin 11 del Arduino al Botón Giro Derecho.
Pin 10 del Arduino al Botón Giro Izquierda.
Pin 9 del Arduino al Step del A4988.
Pin 8 del Arduino al Dir del A4988.
Pin 7 del Arduino al Led Verde Aviso Giro Izquierda.
Pin 6 del Arduino al Led Verde Aviso Giro Derecha.
Pin 5 del Arduino al Led Rojo Aviso No Giro.
A4988 : Reset y Sleeep Conectar en puente entre si.
A4988 : M1, M2, M3 Responsables de Micro Pasos no usaremos, dejarlos desconectados.
A4988 : A1, A2, B1 y B2 Conectar el Motor Nema 17.
A4988 : Alimentacion 0 y 5 Volts, 0 y 12 Volts.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
​
​
bottom of page