allegro current sensor

Почему именно датчик "allegro", его отличия от датчиков предлагаемых для Ardupilot
  • относительно дешевый (порядка 200р в элитане http://www.elitan.ru/price/index.php?seenform=y&find=+ACS756SCA)
  • доступны чипы со шкалой на +-50  и +-100 ампер
  • высокая точность измерения, линеризованый выход
  • низкое внутреннее сопротивление (порядка 130 наноом)
  • гальваническая развязка (исключение импульсных помех, изоляция от силовой цепи)
  • возможность измерения и заряда и разряда (рекуперация энергии на самолете)
  • минимальная обвязка (rc-фильтр в цепи выхода)
     









Сенсор имеет гальваническую развязку от измеряемой цепи, но в отличие от классических датчиков тока показывает не только разряд батареи но и ее заряд (например рекуперация энергии на самолетах)
однако изза этого при нулевом значении тока на выходе ровно половина питающего напряжения (у классических датчиков автопилота 0) тоесть 2,5 вольта.

чтобы исправить это недоразумение необходимо изменить код прошивки


defines.h  change

#define CURRENT_AMPS(x) ((x*(g.input_voltage/1024.0))-g.curr_amps_offset)*g.curr_amp_per_volt

 
parameters.pde add

    // @Param: AMP_OFFSET
    // @DisplayName: current sensor zero calibration
    // @Description: in volts
    GSCALAR(curr_amps_offset,      "AMP_OFFSET", CURR_AMPS_OFFSET),



parameters.h  added
 
      k_param_curr_amps_offset = 193,



      AP_Float        curr_amps_offset;




//#ifndef CURR_AMPS_OFFSET   
 # define CURR_AMPS_OFFSET               0.0
//#endif


архив с измененными исходниками и HEX файлом прошивки квадрокоптера "x" для APM2 приложен

SelectionFile type iconFile nameDescriptionSizeRevisionTimeUser
ċ

Скачать
  1448 кб версия 1 7 нояб. 2012 г., 11:03 Alexey Kozin
Comments