const int pin1 = 25;
const int pin2 = 26;
const int pin3 = 27;
const int pin4 = 14;
int secuencia [8][4] = {
{1, 0, 0, 0},
{1, 1, 0, 0},
{0, 1, 0, 0},
{0, 1, 1, 0},
{0, 0, 1, 0},
{0, 0, 1, 1},
{0, 0, 0, 1},
{1, 0, 0, 1}
};
void setup() {
// put your setup code here, to run once:
pinMode(pin1, OUTPUT);
pinMode(pin2, OUTPUT);
pinMode(pin3, OUTPUT);
pinMode(pin4, OUTPUT);
Serial.begin(9600);
Serial.println("Ingrese los grados a girar: ");
}
void girarMotor(float grados){
float pasosPorGrado = 200.0 / 360.0; //en el motor real es 2025.0
int pasosTotales = int(pasosPorGrado * abs(grados));
int pasosReales = pasosTotales / 4;
int stepCount = sizeof (secuencia) / sizeof(secuencia [0]);
for (int i = 0; i < pasosReales; i++){
for (int j = 0; j <stepCount; j++){
digitalWrite(pin1, secuencia[j][0]);
digitalWrite(pin2, secuencia[j][1]);
digitalWrite(pin3, secuencia[j][2]);
digitalWrite(pin4, secuencia[j][3]);
delay(10);
}
}
}
void loop() {
if (Serial.available() > 0){
float grados = Serial.parseFloat();
if (Serial.read() == '\n'){
girarMotor(grados);
Serial.println("Ingrese los grados a girar: ");
}
}
delay(100);
}