Control de un Motor Brushless+ESC

Hola muy buenas a todos los miembros del foro, soy nuevo trabajando con Arduino 1 y tengo un problema con la programación de un proyecto en el que estoy trabajando, les pido ayuda de antemano sobre el tema y le estaría muy agradecido con cualquier aporte, les planteo el problema. Recientemente me hice con un Motor Brushless, una batería Lipo y un ESC de Hobbypower. Pero no tengo idea de como calibrar el ESC con Arduino, ademas que busco con la programación para poder variar la velocidad del motor sin la necesidad de un potenciometro ni el monitor serial, los cuales son las formas que he encontrado en internet para esta acciòn. He revisado foros donde muestran el control de la velocidad de estos motores con los puertos PWM del arduino, haciendo pruebas lo unico que logrado es variar las velocidades con este código;

int motorPin = 9;

void setup()

{

pinMode(motorPin, OUTPUT);

}

void loop()

{

int onSpeed = 200;

int onTime = 2500;

int offSpeed = 50; // a number between 0 (stopped) and 255 (full speed)

int offTime = 1000; //the number of milliseconds for the motor to turn off for

analogWrite(motorPin, onSpeed); // turns the motor On

delay(onTime); // waits for onTime milliseconds

analogWrite(motorPin, offSpeed); // turns the motor Off

delay(offTime); // waits for offTime milliseconds

}

Me ha funcionado pero cada vez que quito la fuente de energía el rango mínimo al que comienza a girar el motor varia y supongo que se debe a la falta de calibración entre el arduino y el ESC. Otro de los objetivo que busco alcanzar es lograr que el motor se incremente progresivamente su velocidad, lo había logrado con el motor, con esta programación;

int motorPin = 9;

void setup()

{

pinMode(motorPin, OUTPUT);

}

void loop()

{

int delayTime = 50;

tor

for(int i = 0; i < 256; i++){ //aceleramos

analogWrite(motorPin, i);

delay(delayTime);

}

for(int i = 255; i >= 0; i–){ //frenamos

analogWrite(motorPin, i);

delay(delayTime);

}

}

pero me ocurre lo mismo que con la programación anterior. De verdad agradezco cualquier información.

Hola.
Si he entendido lo que explicas que ocurre, es que la velocidad del motor difiere de unas veces a otras, para la misma salida. Seguramente se debe a que la frecuencia a la que trabaja el PWM no es la adecuada. Prueba utilizando la librería servo. Aquí tienes un ejemplo para manejar tu motor por Serial que debería ser bastante ilustrativo.
Saludos.