Botón de cambio de giro y botón encendido y apagado de un motor bipolar con arduino

Botón de cambio de giro y botón encendido y apagado de un motor bipolar con arduino

Objetivos:

  1. Tener un botón para apagar y prender el motor
  2. Tener un botón para cambiar el sentido de giro del motor

Diagrama:

Código:

// Desarrollado por microcontroladores.com.mx

#include <Stepper.h>

const int boton=2;
const int boton2=3;

int estadoboton=0;
int estadoboton2=0;

const int stepsPerRevolution = 4; // change this to fit the number of steps per revolution
// for your motor 360/ 1.8 = 200

// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

void setup() {
pinMode(boton, INPUT); //declaramos el boton como entrada
pinMode(boton2, INPUT); //declaramos el boton como entrada
// set the speed at 60 rpm:

myStepper.setSpeed(60);
// initialize the serial port:
Serial.begin(9600);
}

void loop() {

if((digitalRead(boton)==HIGH)&&(estadoboton==0)){ //si el boton es pulsado y el estado es cero
estadoboton=1; // cambia el estado a 1
delay(500); //pausa de 500 ms para evitar rebote
}

else if((digitalRead(boton)==HIGH)&&(estadoboton==1)) //si el boton es pulsado y el estado es uno
{
estadoboton=0; // cambia el estado a 0
delay(500); //pausa de 500 ms para evitar rebote
}

if((digitalRead(boton2)==HIGH)&&(estadoboton2==0)){ //si el boton es pulsado y el estado es cero
estadoboton2=1; // cambia el estado a 1
delay(500); //pausa de 500 ms para evitar rebote
}

else if((digitalRead(boton2)==HIGH)&&(estadoboton2==1)) //si el boton es pulsado y el estado es uno
{
estadoboton2=0; // cambia el estado a 0
delay(500); //pausa de 500 ms para evitar rebote
}

if (estadoboton2==1) {

if(estadoboton==0) { //si el estadoboton es 1

horario();
}
else{ //si el estadoboton es 0

antihorario();
}

}

}

void horario(){
myStepper.step(stepsPerRevolution);
}

void antihorario(){
myStepper.step(-stepsPerRevolution);

}

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *