Hola, chicos, y lamento haberlos molestado con mis problemas con el motor paso a paso)
video: enlace
Aquí está mi código Arduino que se supone que hace que el motor funcione suavizando medio paso a la vez y luego se detenga por un segundo.
int pin1 = 2;
int pin2 = 3;
int pin3 = 5;
int pin4 = 6;
int delayMin = 10;
int delayTime = 1000;
void setup() {
pinMode(pin1, OUTPUT);
pinMode(pin2, OUTPUT);
pinMode(pin4, OUTPUT);
pinMode(pin3, OUTPUT);
Serial.begin(9600);
pwm();
}
void loop() {}
void pwm()
{
///////////////////////////////////////////////
Serial.println("COIL ONE->TWO STARTING!");
for ( int i = 0; i<=250; i=i+25 )
{
Serial.print("COIL ONE->TWO : ");
Serial.println(i);
analogWrite(pin1, 0);
analogWrite(pin2, 250);
analogWrite(pin3, 250);
analogWrite(pin4, i);
delay(delayMin);
}
Serial.println("COIL ONE->TWO FINISHED!");
delay(delayTime);
Serial.println(" - - - ");
///////////////////////////////////////////////
///////////////////////////////////////////////
Serial.println("COIL TWO->THREE STARTING!");
for ( int i = 0; i<=250; i=i+25 )
{
Serial.print("COIL TWO->THREE : ");
Serial.println(i);
analogWrite(pin1, 0);
analogWrite(pin2, 250);
analogWrite(pin3, 250-i);
analogWrite(pin4, 250);
delay(delayMin);
}
Serial.println("COIL TWO->THREE FINISHED!");
delay(delayTime);
Serial.println(" - - - ");
///////////////////////////////////////////////
///////////////////////////////////////////////
Serial.println("COIL THREE->FOUR STARTING!");
for ( int i = 0; i<=250; i=i+25 )
{
Serial.print("COIL THREE->FOUR : ");
Serial.println(i);
analogWrite(pin1, i);
analogWrite(pin2, 250);
analogWrite(pin3, 0);
analogWrite(pin4, 250);
delay(delayMin);
}
Serial.println("COIL THREE->FOUR FINISHED!");
delay(delayTime);
Serial.println(" - - - ");
///////////////////////////////////////////////
///////////////////////////////////////////////
Serial.println("COIL FOUR->FIVE STARTING!");
for ( int i = 0; i<=250; i=i+25 )
{
Serial.print("COIL FOUR->FIVE : ");
Serial.println(i);
analogWrite(pin1, 250);
analogWrite(pin2, 250-i);
analogWrite(pin3, 0);
analogWrite(pin4, 250);
delay(delayMin);
}
Serial.println("COIL FOUR->FIVE FINISHED!");
delay(delayTime);
Serial.println(" - - - ");
///////////////////////////////////////////////
///////////////////////////////////////////////
Serial.println("COIL FIVE->SIX STARTING!");
for ( int i = 0; i<=250; i=i+25 )
{
Serial.print("COIL FIVE->SIX : ");
Serial.println(i);
analogWrite(pin1, 250);
analogWrite(pin2, 0);
analogWrite(pin3, i);
analogWrite(pin4, 250);
delay(delayMin);
}
Serial.println("COIL FIVE->SIX FINISHED!");
delay(delayTime);
Serial.println(" - - - ");
///////////////////////////////////////////////
///////////////////////////////////////////////
Serial.println("COIL SIX->SEVEN STARTING!");
for ( int i = 0; i<=250; i=i+25 )
{
Serial.print("COIL SIX->SEVEN : ");
Serial.println(i);
analogWrite(pin1, 250);
analogWrite(pin2, 0);
analogWrite(pin3, 250);
analogWrite(pin4, 250-i);
delay(delayMin);
}
Serial.println("COIL SIX->SEVEN FINISHED!");
delay(delayTime);
Serial.println(" - - - ");
///////////////////////////////////////////////
///////////////////////////////////////////////
Serial.println("COIL SEVEN->EIGHT STARTING!");
for ( int i = 0; i<=250; i=i+25 )
{
Serial.print("COIL SEVEN->EIGHT : ");
Serial.println(i);
analogWrite(pin1, 250);
analogWrite(pin2, i);
analogWrite(pin3, 250);
analogWrite(pin4, 0);
delay(delayMin);
}
Serial.println("COIL SEVEN->EIGHT FINISHED!");
delay(delayTime);
Serial.println(" - - - ");
///////////////////////////////////////////////
///////////////////////////////////////////////
Serial.println("COIL EIGHT->ONE STARTING!");
for ( int i = 0; i<=250; i=i+25 )
{
Serial.print("COIL EIGHT->ONE : ");
Serial.println(i);
analogWrite(pin1, 250-i);
analogWrite(pin2, 250);
analogWrite(pin3, 250);
analogWrite(pin4, 0);
delay(delayMin);
}
Serial.println("COIL EIGHT->ONE FINISHED!");
delay(delayTime);
Serial.println(" - - - ");
///////////////////////////////////////////////
pwm();
}
Y el tránsito suave funciona la mayoría de las veces, excepto en los tránsitos 3-4 y 8-1, en este momento se puede ver sacudidas.
¿Alguna idea de lo que podría estar haciendo mal? ¿También es normal este sonido de alta frecuencia?