Hobbylord UltraPWM Brushless ESC 20A Частота 500 Гц

Piranha

Рамы делаю потому что проще сделать самому под свои нужды чем за косорукими переделывать 😃

delfin000
int=:

Теоретически юзать вроде можно, но требует допиливания кода.

не нужно юзать. Давно проверено. На обычных мозгах сразу войтет в средний газ при положении газа на пульте в минимум 😉 И не дай бог кто с пропами это попробует. Нужен преобразователь сигнала для него смещающий диаппазон на понижение в 900-1000. И им все равно в каком канале работать. Вот тогда будет все Ок . А так регули конкретно шустрые. Но ХА политику идеотскую ведет. Если бы сделали их как как все делают 1100-2000. То на одних таких регулях наварились бы по полной. На ура бы пошли;)

int=
delfin000:

Нужен преобразователь сигнала для него смещающий диаппазон на понижение в 900-1000. И им все равно в каком канале работать. Вот тогда будет все Ок

Именно это я и пытался сделать в коде мультивия - (понизить управляющие импульсы с 1100-2000 до 200-1200 мс.
Пока правдо безуспешно. 😦

18 days later
int=

Ура! 😃
Вроде что-то получилось! 😃
Сегодня удалось поднять квадр в воздух 😃
Времени было мало, так что как следует все еще не отладил… Но, тем не менее, после небольшой правки кода UltraPWM регули с мультивием у меня заработали 😃

В вс буду тестить по полной 😃
Если кто-нибудь рискнет и проверит на своем квадре раньше, буду оч благодарен 😃

Код:

В config.h
добавить дефайн:

 #define ULTRAPWMOFFSET 900

поменять следущие значения:

 #define MINTHROTTLE 1150
 #define MINCOMMAND 1050
 #define MAXTHROTTLE 1990

в фалйе Output

функцию writeMotors заменить на следующее:

void writeMotors() { // [1000;2000] => [125;250]
      #if defined(MEGA)
        for(uint8_t i=0;i<NUMBER_MOTOR;i++)
          analogWrite(PWM_PIN[i], ((motor[i]-ULTRAPWMOFFSET)>>3));
      #else
        for(uint8_t i=0;i<min(NUMBER_MOTOR,4);i++)
          analogWrite(PWM_PIN[i], (motor[i]-ULTRAPWMOFFSET)>>3);
        #if (NUMBER_MOTOR == 6)
          atomicPWM_PIN5_highState = (motor[5]-ULTRAPWMOFFSET)/8;
          atomicPWM_PIN5_lowState = 255-atomicPWM_PIN5_highState;
          atomicPWM_PIN6_highState = (motor[4]-ULTRAPWMOFFSET)/8;
          atomicPWM_PIN6_lowState = 255-atomicPWM_PIN6_highState;
        #endif
      #endif
    }

В общем еще нужно поиграть со значениями MINTHROTTLE и MAXTHROTTLE, а то сейчас теряются последние 100 мс из диапозона 200-1200 мс…

Мне это не сильно критично (летать на макс газу приходится не так уж и часто 😃 ) Но всеж непорядок… Так что будем эксперементировать дальше 😃

И еще обязательно заменить в output

строку

writeAllMotors(1000);

заменить на

writeAllMotors(MINCOMMAND);