Hola buenas, estoy tratando de construir un dron controlado con arduino. Ya me han llegado las piezas y tal y estoy intentando probar uno de los brazos por separado para aprender a controlar los ESC.
Tengo un problema y es que el motor funciona unos dos segundos y se para, a pesar que en el programa está constantemente ejecutando "esc.writeMicroseconds(val);".
A continuación os dejo el código y los dispositivos que estoy usando.
#include <Servo.h>//Using servo library to control ESC
Servo esc; //Creating a servo class with name as esc
int val; //Creating a variable val
void setup()
{
esc.attach(9);
esc.writeMicroseconds(1000); //initialize the signal to 1000
Serial.begin(9600);
}
void loop()
{
val= analogRead(A0);
val= map(val, 0, 1023,1000,2000); //mapping val to minimum and maximum(Change if needed)
esc.writeMicroseconds(val);
Serial.print("Valor: ");
Serial.println(val);
}
Estos son los ESC que estoy usando, soporta un rango de voltaje de 4 V a 16 V.
Los motores son motores brushless A2212/13T, 1000Kv, los mas comunes.
Es curioso porque el ESC se inicia con un pulso de 1ms, al mínimo y puedo subir hasta 2ms lo que quiera y responde pero a los 2 segundos mas o menos se para y para volver a arrancarlo tengo que llevarlo a 1ms y después aumentarlo, para que de nuevo vuelva a pararse. El ancho de pulso lo controlo con un potenciómetro y los ESC los estoy alimentando con una batería NI-MH de 9.6V.
Por favor si pueden ayudarme lo agradecería mucho, Gracias.