Llevo una temporada jugando con el arduino UNO intentando controlar el giro de un motor de paso que recicle de un floppy. Escribi un programa para excitar los bobinados del motor en una secuencia concreta para hacer girar el motor, pero al lanzarlo, el motor gira unos 10 grados y en el siguiente cambio de excitacion de los bobinados vuelve a girar unos 10 grados devolviendolo al sitio donde estaba. He probado mil cosas y lo maximo que he conseguido es lo comentado. El susodicho programa es este:
int espera=100;
int i;
void setup()
{
pinMode(2, OUTPUT);//A1
pinMode(4, OUTPUT);//A3
pinMode(7, OUTPUT);//B1
pinMode(8, OUTPUT);//B3
digitalWrite(2,LOW);
digitalWrite(4,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
pinMode(13, OUTPUT);
Serial.begin(9600);
}
void loop ()
{
analogWrite(13,LOW);
int boton;
boton= analogRead(0)/4;
Serial.println(boton);
for(i=0;i<=3;i++)
{
if(i==0)
{
digitalWrite(2,HIGH);
digitalWrite(4,LOW);
digitalWrite(7,HIGH);
digitalWrite(8,LOW);
Serial.println("Step 0");
delay(espera);
}
if(i==1)
{
digitalWrite(2,HIGH);
digitalWrite(4,LOW);
digitalWrite(7,LOW);
digitalWrite(8,HIGH);
Serial.println("Step 1");
delay(espera);
}
if(i==2)
{
digitalWrite(2,LOW);
digitalWrite(4,HIGH);
digitalWrite(7,LOW);
digitalWrite(8,HIGH);
Serial.println("Step 2");
delay(espera);
}
if(i==3)
{
digitalWrite(2,LOW);
digitalWrite(4,HIGH);
digitalWrite(7,HIGH);
digitalWrite(8,LOW);
Serial.println("Step 3");
delay(espera);
}
analogWrite(13,HIGH);
}
Serial.println("Fuera");
digitalWrite(2,LOW);
digitalWrite(4,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
}
No se si estoy haciendo algo mal o es que el arduino no tiene suficiente potencia como para excitar los bobinados, espero que alguien me pueda ayudar ![]()
Edit: Me olvide de comentar, el motor del floppy tiene cuatro cables, segun entiendo cada par de cables corresponde a un bobinado del motor. He conectado la primera bobina a las salidas 2 y 4 del arduino y la segunda bobina a las salidas 7 y 8 del bobinado.

