Запуск бесколлекторного двигателя
Дата публикации: Jul 22, 2012 4:29:1 PM
На днях наконец пришли четыре ESC Hobbywing skywalker 20А блока для ранее добытых бесколлекторных двигателей RCTimer 750KV. Теперь имеется полный комплект для тестового запуска.
В качестве источника питания использовалась GePower LiPo батарея 3s1p (11.1В, 30С). Запуск производился с контроллера mbed LPC1768. Код программы представлен ниже.
ESC тест
#include "mbed.h"
#include "Servo.h"
DigitalOut led1(LED1);
DigitalOut led2(LED2);
DigitalOut led3(LED3);
AnalogIn stick(p20);
Servo ESC[4] = {p21,p22,p23,p24};
const bool ESC_E[4] = {1,0,0,0};
const bool mode = 0; // 0 - calibration; 1 - work;
float thr[4];
void initESC_0(){
int i;
for( i=0; i<4; i++ ){
if( !ESC_E[i] )
continue; // skip disabled ESCs
ESC[i].calibrate(0.0005, 90.0, 0.0025);
ESC[i] = 1.0; // set max throttle
}
for( i=0; i<50; i++ ){
wait(0.1); // wait 5 seconds to connect battery
led1 = !led1;
}
led1 = 1;
wait(2); // wait 2 seconds to confirm max
led1 = 0;
for( i=0; i<4; i++ ){
if( !ESC_E[i] )
continue; // skip disabled ESCs
ESC[i] = 0.0; // set min throttle
}
wait(2);
}
void initESC_1(){
int i;
for( i=0; i<4; i++ ){
if( !ESC_E[i] )
continue; // skip disabled ESCs
ESC[i].calibrate(0.0005, 90.0, 0.020);
ESC[i] = 0.0; // set min throttle
}
for( i=0; i<50; i++ ){
wait(0.1); // wait 5 seconds to connect battery
led1 = !led1;
}
led1 = 1;
wait(2);
led1 = 0;
}
int main() {
int i;
if( !mode )
initESC_0();
else
initESC_1();
while(1){
thr[0] = (stick - 0.5)*2;
//printf("%.3f\r\n", thr[0]);
for( i=0; i<4; i++ ){
if( !ESC_E[i] )
continue; // skip disabled ESCs
ESC[i] = thr[i];
}
wait_ms(1);
}
}
В зависимости от флага "mode", можно включить режим калибровки (0) либо рабочий режим (1). В режиме калибровки, согласно инструкции для данного ESC, выполняется следующая последовательность действий:
-> сигнал газа на максимум;
-> подключение батареи и ожидание 2 сек;
<- ESC издает два бипа;
-> сигнал газа на минимум;
<- ESC издает несколько бипов, в зависимости от кол-ва ячеек батареи;
<- ESC издает один длинный бип.
В режиме работы:
-> сигнал газа на минимум;
<- ESC издает три бипа;
<- ESC издает несколько бипов, в зависимости от кол-ва ячеек батареи;
<- ESC издает один длинный бип.
Суть работы программы сводится к приему некоторого уровня с джойстика через аналоговый вход, расчет ширины управляющего импульса для PPM и передача сигнала через PWM выход на ESC.