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

Escrito Por: admin Publicado En: Arduino Fecha de Creación: 2016-09-09 visitas: 2633

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);


}