Para cualquiera que esté viendo esto, la mayoría de nuestros problemas parecían ser el resultado de no tener el rango de pulso correcto. Eventualmente conectamos nuestros ESCs a un controlador RC estándar y usamos un osciloscopio para determinar el rango de pulso exacto al que responderían.
Estoy trabajando en un quadcopter controlado por Arduino usando Tower Pro W18A (que en realidad están etiquetados Hacia Pro). Estoy usando la biblioteca Arduino Servo para controlar los ESCs (Control de velocidad electrónico).
El problema es que los ESC no comienzan a responder de manera inmediata. Hay una secuencia de comandos de aceleración que deben enviarse antes de que se enciendan y comiencen a responder a los comandos.
Al principio, creé un programa que nos permite establecer el valor que se envía a los controladores de velocidad manualmente desde un control deslizante. Usando esto, descubrí que comenzando en 0, deslizando hasta alrededor de 70-90, y luego volviendo a cero, se activan los ESC. Después de eso, responden normalmente.
Sin embargo, por alguna razón, no he podido replicar esto en el código. Así es como se ve mi código en este momento.
Serial.println("Setting all to 0...");
setAllESCs(0);
delay(2000);
for(int i=0;i<70;i++){
setAllESCs(i);
delay(20);
}
for(int i=70;i>0;i--){
setAllESCs(i);
delay(20);
}
delay(2000);
Serial.println("Ok, trying at 50...");
setAllESCs(50);
delay(500);
Serial.println("Going in 1 sec...");
setAllESCs(0);
delay(1000);
He intentado varias variantes. 0 a 90 a 0. 0 a 180 (máx.) A 0. 0 deslizándose hasta 90 y volviendo a 0. Sin suerte todavía.
¿Alguien tiene experiencia en hacer funcionar esta activación del controlador de velocidad?
Hay numerosas menciones en línea de la documentación (limitada) que viene con el ESC que está equivocado, pero nada proporciona más detalles sobre esto.