Регулято Fly-25 и Микроконтроллер

Roman_irk

Доброго времени суток! Приобрел регулятор Fly-25A и бесколлекторный двигатель, стоит задача управлять этим двигателем через микроконтроллер (в данном случае ATmega16), с распиновкой управляющий проводов на регуляторе разобрался, остался вопрос временной диаграммы какой длительности должны быть управляющие импульсы? погугли данную тему, так до конца некоторые моменты и не понял. Написано что длина импульса на один канал в стандартном РРМ передатчики равна (1-2мс), сразу возникает вопрос приемник получив пакет данных и видя что длина первого импульса равна 1мс выдает такой же по времени сигнал на регулятор первого двигателя (№1), длина второго импульса равно 1.2мс приемник выдает сигнал на регулятор второго двигателя(№2) и т.д. Вот хотелось бы уточнить эти моменты.

AndyBig

А зачем Вам работа приемника? Просто выдавайте на регулятор ШИМ с периодом 1.5 ms и с длиной импульса от 1 до 2 us. Чем длиннее импульс, тем выше обороты будет держать регулятор.

Roman_irk

ну то есть я все правильно понял если длина импульсяа 1.5мс двигатель стоит, если она лежит в диапазоне 1<PWM<1.5мс двигатель грубо сказать вращается по часовой стрелки, если в диапазоне 1.5<PWM<2мс двигатель вращается против часов стрелки?? сразу возникает вопрос какова чувствительность регулятора если двигатель примерно на 9000 оборотов то получается весь диапазон регулирования укладывается в 0.5мс???

AndyBig

Ну если регулятор с реверсом, то да, все правильно. Чувствительность - фиг знает… Некоторые производители указывают в параметрах дискретность, некоторые нет… Смотрите по конкретному регулятору 😃
Да, все правильно. Если регулятор с реверсом, то весь диапазон оборотов в одну сторону укладывается в 0.5 ms. Я не помню точно, но по-моему Атмега способна выдавать ШИМ с дискретностью 1 такта. Так что при кварце 16 МГц получается 500 us / 0.065 us = 7692 шага регулировки. Думаю, что этого с десятикратным запасом хватит, если не требуется прецизионное регулирование 😃 Скорее всего, недорогие регуляторы и не обладают такой точностью.

Roman_irk

про mege вы все правильно помните;), еще один маленький вопросик весь период ШИМ получается у меня будет 2мс и нога контролера будет всегда в высоком логическом уровне, регуляторы не нужны паузы между управляющими импульсами?? или это уже от модели регулятора зависит??

V_Alex

Импульсы должны следовать с периодом 20-25 мс.

Roman_irk

получается своеобразный протокол: первая часть это управляющий сигнал длительностью от 1мс до 2мс а потом необходимо опустить ногу МК в низкий уровень подождать 18мс и снова повторить первую часть???

AndyBig

Прошу прощения, запутался в ms и us 😃
Длительность импульса - от 1 до 2 миллисекунд, период повторения - 50-80 Гц, то есть каждые 12-20 милисекунд.

V_Alex:

Импульсы должны следовать с периодом 20-25 мс.

Да-да, точно.

Roman_irk:

еще один маленький вопросик весь период ШИМ получается у меня будет 2мс и нога контролера будет всегда в высоком логическом уровне, регуляторы не нужны паузы между управляющими импульсами??

Заводите таймер на каждые 20 милисекунд, по таймеру включаете ШИМ, по прерыванию от ШИМа выключаете его.
Полярность импульсов, по-моему, как правило положительная.

Roman_irk:

управляющий сигнал длительностью от 1мс до 2мс а потом необходимо опустить ногу МК в низкий уровень подождать 18мс и снова повторить первую часть???

Ага.

Roman_irk

ну все теперь все понятно большое спасибо!

AndyBig

В принципе, можно завести 16-битный ШИМ и так, что бы его полный период составлял примерно 20 миллисекунд, из которых длительность активного импульса от 1 до 2 миллисекунд, то есть пределы регулировки - 1 миллисекунда. Тогда у Вас дискретность шага составит 65536 / 20 = 3276 шагов в обе стороны, по 1638 шагов в каждом направлении. Если этой дискретности хватает, то это самый простой вариант. Нужно изменить обороты - закинули в ШИМ новое значение и на этом все.

Roman_irk

да я буду делать программный ШИМ, пока для микроконтроллера нету других задач, пусть крутит двигателем, а если буду другие задачи то можно и перейти на аппаратный, хотя учитывая длительность 18мс за это время можно успеть много сделать даже на 8Mhz)

AndyBig
Roman_irk:

да я буду делать программный ШИМ

Аппаратный намного проще 😃

Roman_irk

Все запустил двигатель, оказывается не имеет большой разница какой длины импульс подавать на контроллер двигателя, принцип следующий получается в момент включения контроллер ловит импульс и считает эту длину импульса за нулевую скорость при изменении длины в большую сторону двигатель набирает обороты, в меньшую сторону контроллер двигателя ни как не реагирует. Поэтому длительность в 1,5мс это используется в РРМ сигнале что бы за один раз можно было передать 8 управляющий импульсов на 8 регуляторов. А так регулятор не плохо работает в диапазоне управляющих импульсов начина от 1мс(скорость вращения равна 0) и с увеличение увеличивает скорость вращения, или это го же можно добится послав первый управляющий импульс длинно 3мс(скорость вращения равна нулю) ну это будет работать только при условии что с контроллера двигателя будет снято питание а импульсы будут поступать и во время включения контроллер двигателя посчитает что длительность импульса равная 3мс это нулевая скорость вращения. Во только еще не до конца разобрался до какого предела изменения длины импульса контроллер двигателя реагирует на него. Если допустим 1мс-скорость двигателя равна 0, то при каком значении длины импульса она будет максимально. завтра проведу эксперимент надеюсь не спалю контроллер двигателя)

AndyBig
Roman_irk:

большую сторону двигатель набирает обороты, в меньшую сторону контроллер двигателя ни как не реагирует

А реверс?

Roman_irk:

Во только еще не до конца разобрался до какого предела изменения длины импульса контроллер двигателя реагирует на него

Ну по идее, разница в длительности минимального и максимального значения должна быть 1 мс 😃 Это ж вроде как стандартно.

Roman_irk

для реверса необходимо перекинуть две “фазы” местами между собой, двигатель бес коллекторный постоянного тока, ну завтра еще с длинами импульсов поиграю отпишусь, может даже энкодер поставлю что бы точную частоту вращения замерить.

AndyBig

А… Я думал, у Вас регуль с реверсом.
Кстати, многие регули импульсы больше 1 мс при включении могут воспринять как калибровку газа. И запомнят эту длительность именно как максимальный газ.

Roman_irk

а этот регулятор получается на оборот первый импульс воспринимает как минимальный газ, получается так, ну прочитав оригинальную документацию на контроллер двигателя я там не нашел реврса только тормоз и методику настрой газа, теперь картина стало полость ясна)

AndyBig

У меня регуль наоборот - если при включении стик газа не в нуле, то регуль входит в калибровку максимума до опускания стика в ноль 😃