88 lines
2.4 KiB
Arduino
88 lines
2.4 KiB
Arduino
|
#include <Stepper.h>
|
||
|
const int StepsPerRevolution = 200;
|
||
|
const int dirA = 12;
|
||
|
const int dirB = 13;
|
||
|
const int pulso = 7; //este es el pin que lee arduino y le ordena una vuelta (morado)
|
||
|
const int adelante = 6; //pin que recibe orden de avance (blanco)
|
||
|
const int atras= 5; //pin que recibe orden de retroceso (gris)
|
||
|
|
||
|
Stepper myStepper(StepsPerRevolution,dirA,dirB);
|
||
|
|
||
|
const int pwmA = 3;
|
||
|
const int pwmB = 11;
|
||
|
const int brakeA = 9;
|
||
|
const int brakeB = 8;
|
||
|
|
||
|
//******PARAMETROS****************************************
|
||
|
//POTENCIA
|
||
|
int power=90; //valor depotencia min y max entre 0 y 255
|
||
|
//VELOCIDAD
|
||
|
int rpm=60; //velocidad en rpm
|
||
|
//********************************************************
|
||
|
|
||
|
|
||
|
void setup() {
|
||
|
// put your setup code here, to run once:
|
||
|
Serial.begin(9600);
|
||
|
pinMode(dirA, OUTPUT);
|
||
|
pinMode(dirB, OUTPUT);
|
||
|
pinMode(pwmA, OUTPUT);
|
||
|
pinMode(pwmB, OUTPUT);
|
||
|
pinMode(brakeA, OUTPUT);
|
||
|
pinMode(brakeB, OUTPUT);
|
||
|
|
||
|
|
||
|
pinMode(pulso, INPUT);
|
||
|
pinMode(adelante, INPUT);
|
||
|
// pinMode(atras, INPUT);
|
||
|
|
||
|
|
||
|
//digitalWrite(pwmA, HIGH);
|
||
|
// analogWrite(pwmA, 63);
|
||
|
//digitalWrite(pwmB, HIGH);
|
||
|
// analogWrite(pwmB, 63);
|
||
|
digitalWrite(brakeA, LOW);
|
||
|
digitalWrite(brakeB, LOW);
|
||
|
|
||
|
Serial.begin(9600);
|
||
|
|
||
|
myStepper.setSpeed(rpm); // aqui se controla la velocidad en rpm
|
||
|
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
void loop() {
|
||
|
// put your main code here, to run repeatedly:
|
||
|
|
||
|
if(digitalRead(adelante)==LOW)
|
||
|
{
|
||
|
if(digitalRead(pulso)==LOW)
|
||
|
{
|
||
|
analogWrite(pwmA, power); //potencia del motor: el valor se puede mover entre 0-255, para min y max
|
||
|
analogWrite(pwmB, power); //potencia del motor: el valor se puede mover entre 0-255, para min y max
|
||
|
myStepper.step(-200);
|
||
|
delay(250);
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
if(digitalRead(atras)==LOW)
|
||
|
{
|
||
|
if(digitalRead(pulso)==LOW)
|
||
|
{
|
||
|
analogWrite(pwmA, power); //potencia del motor: se puede mover entre 0-255, para min y max
|
||
|
analogWrite(pwmB, power); //potencia del motor: se puede mover entre 0-255, para min y max
|
||
|
myStepper.step(200);
|
||
|
delay(250);
|
||
|
}
|
||
|
}
|
||
|
// myStepper.step(0); //esta orden no produce movimiento, pero mantiene corriente alimentada a las bobinas
|
||
|
digitalWrite(dirA, LOW);
|
||
|
digitalWrite(dirB, LOW);
|
||
|
analogWrite(pwmA, 0);
|
||
|
analogWrite(pwmB, 0);
|
||
|
delay(250);
|
||
|
}
|
||
|
}
|