Avr регулятор оборотов двигателя

Регулятор оборотов коллекторного микроэлектродвигателя для РУ модели

Желание собрать радиоуправление у меня созрело достаточно давно. Но дальше поиска схем, с последующим пониманием, что прошивку автор не даст, дело не продвинулось. В итоге, затея была похоронена в стадии развития. Но недавно мне на глаза попались модули, именуемые NRF24L01+ (стоит 0.6$ на Ali), и уже позабытое желание собрать радиоуправление загорелось с новой силой.

В конечном счете, была разработана схема радиоуправления, а так же несколько сопутствующих устройств. Об одном из них и пойдет речь в данной статье. К слову, в следующих статьях будет описано само радиоуправление, а так же зарядное устройство для li-ion аккумуляторов.

Регулятор оборотов двигателя — это название слышал любой моделист, а в особенности те, кто собирал авиа- и судомодели. Это устройство незаменимо, так как оно обеспечивает плавное управление скорость двигателя.

Существует множество вариантов исполнения таких регуляторов: на микроконтроллерах, на жесткой логике и даже на дискретных компонентах. После просмотра уже готовых схем, я понял что придется делать что-то свое — на логике собирать не хотелось, на дискретных компонентах выходило уж очень громоздко. Найденные схемы на микроконтроллерах были в общем-то неплохими, да вот только вариант собирать то, принцип действия чего я не смогу объяснить, меня не привлекал (а прошивку авторы выкладывать не спешили).

После всего этого и была разработана и собрана схема.

Итак, краткие характеристики (при номиналах деталей, указанных на схеме):

  • Диапазон питающих напряжений: 7 . 35В
  • Максимальный ток: 3А
  • Длительность управляющего импульса: 1 . 2мс
  • Рекомендованный период импульсов: 20мс

Силовая часть представляет собой Н-мост с дополнительными маломощными управляющими транзисторами. Управление оборотами двигателя производится ШИМ сигналом, генерируемым МК. Скважность ШИМ зависит от длительности импульса, поступающего на вход устройства.

Обработку сигналов и управление транзисторами в этой схеме выполняет микроконтроллер ATtiny2313. Этот выбор ничем не обусловлен, кроме того, что он у меня валялся под рукой на момент проектировки устройства. Изначально, в схеме планировалось использование полевых транзисторов, но позже я от них отказался в пользу более доступных советских биполярников (которых практически у каждого целый ящик). Конечно, это наложило свой отпечаток на параметры: максимальный ток значительно снизился, как и цена девайса.

Как уже упоминалось, напряжение питания устройства может варьироваться от 6 до 30 вольт. Это обусловлено границами напряжения, которое может выдержать интегральный стабилизатор LM7805, а так же двигатель (на него подается напряжение, отличное от питающего примерно на 1 вольт).

Максимальный ток зависит от применяемых транзисторов. В моем варианте — это КТ816/817, максимальный ток коллектора которых равен трем амперам.

В качестве маломощных управляющих транзисторов использованы распространенные КТ315.

Для более точного измерения длительности управляющего (серво) импульса был применен кварцевый резонатор на частоту 8МГц.

Диоды D1 — D4 желательно монтировать. Будет работать и без них, но вопрос в том, как долго.

Печатная плата устройства выполнена на одностороннем фольгированном материале (стеклотекстолит, гетинакс). Дорожки выделенные красным — перемычки с лицевой стороны. В моем варианте транзисторы монтируются вне платы на радиаторе.

Печатная плата устройства (синие проводники — обратная сторона):

Принцип работы

При получении импульса, запускается 16 битный таймер, который останавливается по спаду импульса. Таймер настроен таким образом, что каждый его такт — это 1мкс, что позволяет упростить вычисления. После определения длительности импульса происходит сравнение с заданной величиной. Результат записывается в регистр OCR1A/B в зависимости от положения джампера и длительности импульса.

Читайте также:  Как переделать муравей на другой двигатель

Исходный код приведен ниже. Так же его можно взять в приложении к статье.

В наладке устройство не нуждается, и должно работать сразу после правильной сборки и прошивки микроконтроллера. С последним будьте осторожны — не отключите ненароком бит RSTDISBL. Это может стоить вам нового микроконтроллера (если у вас конечно нет параллельного программатора).

Транзисторы КТ315 можно заменить любыми маломощными кремниевыми транзисторами структуры n-p-n. КТ816/817 — аналогичными по параметрам (или более мощными). К примеру, КТ818/819 и т.д. Резисторы можно заменить на аналогичные по мощности с допуском 20-30% от номинального сопротивления. Линейный стабилизатор LM7805 можно заменить на отечественный аналог КРЕН5А, а так же применить импульсный стабилизатор, но придется переработать печатную плату.

Фото , а так же видео работы устройства можно увидеть ниже.

Извиняюсь за не очень презентабельный вид платы — изначально это был тестовый вариант «на первое время». Но так как устройство с первого раза заработало так как от него требовалось, то «временный вариант» перерос в постоянный.

Источник

Простая схема управления двигателем постоянного тока

Простейшая схема управления двигателем постоянного тока состоит из полевого транзистора, на затвор которого подается ШИМ сигнал. Транзистор в данной схеме выполняет роль электронного ключа, коммутирующего один из выводов двигателя на землю. Транзистор открывается на момент длительности импульса.

Как будет вести себя двигатель в таком включении? Если частота ШИМ сигнала будет низкой (единицы Гц), то двигатель будет поворачиваться рывками. Это будет особенно заметно при маленьком коэффициенте заполнения ШИМ сигнала.
При частоте в сотни Гц мотор будет вращаться непрерывно и его скорость вращения будет изменяться пропорционально коэффициенту заполнения. Грубо говоря, двигатель будет «воспринимать» среднее значение подводимой к нему энергии.

Схема для генерации ШИМ сигнала

Существует много схем для генерации ШИМ сигнала. Одна из самых простых — это схема на основе 555-го таймера. Она требует минимум компонентов, не нуждается в настройке и собирается за один час.

Напряжение питания схемы VCC может быть в диапазоне 5 — 16 Вольт. В качестве диодов VD1 — VD3 можно взять практически любые диоды.

Если интересно разобраться, как работает эта схема, нужно обратиться к блок схеме 555-го таймера. Таймер состоит из делителя напряжения, двух компараторов, триггера, ключа с открытым коллектором и выходного буфера.

Вывод питания (VCC) и сброса (Reset) у нас заведены на плюс питания, допустим, +5 В, а земляной (GND) на минус. Открытый коллектор транзистора (вывод DISCH) подтянут к плюсу питания через резистор и с него снимается ШИМ сигнал. Вывод CONT не используется, к нему подключен конденсатор. Выводы компараторов THRES и TRIG объединены и подключены к RC цепочке, состоящей из переменного резистора, двух диодов и конденсатора. Средний вывод переменного резистора подключен к выводу OUT. Крайние выводы резистора подключены через диоды к конденсатору, который вторым выводом подключен к земле. Благодаря такому включению диодов, конденсатор заряжается через одну часть переменного резистора, а разряжается через другую.

В момент включения питания на выводе OUT низкий логический уровень, тогда на выводах THRES и TRIG, благодаря диоду VD2, тоже будет низкий уровень. Верхний компаратор переключит выход в ноль, а нижний в единицу. На выходе триггера установится нулевой уровень (потому что у него инвертор на выходе), транзисторный ключ закроется, а на выводе OUT установиться высокий уровень (потому что у него на инвертор на входе). Далее конденсатор С3 начнет заряжаться через диод VD1. Когда она зарядится до определенного уровня, нижний компаратор переключится в ноль, а затем верхний компаратор переключит выход в единицу. На выходе триггера установится единичный уровень, транзисторный ключ откроется, а на выводе OUT установится низкий уровень. Конденсатор C3 начнет разряжаться через диод VD2, до тех пор, пока полностью не разрядится и компараторы не переключат триггер в другое состояние. Далее цикл будет повторяться.

Приблизительную частоту ШИМ сигнала, формируемого этой схемой, можно рассчитать по следующей формуле:

Читайте также:  606 двигатель мерседес расход топлива

где R1 в омах, C1 в фарадах.

При номиналах указанных на схеме выше, частота ШИМ сигнала будет равна:

F = 1.44/(50000*0.0000001) = 288 Гц.

ШИМ регулятор оборотов двигателя постоянного тока

Объединим две представленные выше схемы, и мы получим простую схему регулятора оборотов двигателя постоянного тока, которую можно применить для управления оборотами двигателя игрушки, робота, микродрели и т.д.

VT1 — полевой транзистор n-типа, способный выдерживать максимальный ток двигателя при заданном напряжении и нагрузке на валу. VCC1 от 5 до 16 В, VCC2 больше или равно VCC1.

Вместо полевого транзистора можно использовать биполярный n-p-n транзистор, транзистор дарлингтона, оптореле соответствующей мощности.

Источник

AVR Lab устройства на микроконтроллерах AVR

Форум по AVR

Регулируем скорость вращения двигателя с помощью ШИМ(PWM) на ATtiny2313

Реализация регулировки скорости вращения двигателя довольно не сложная. Для этого необходимо знать что такое Широтно Импульсная Модуляция (ШИМ по английски PWM), иметь понятие о возможных вариантах её реализации.

В данном примере я расскажу как использовать программную ШИМ, то есть специальные таймеры-счетчики при программной ШИМ не будут задействованы. ШИМ с применением аппаратного ресурса таймеров-счетчиков называется аппаратной ШИМ про нее хорошо рассказал мой коллега.

И так, алгоритм следующий, необходимо организовать уменьшение и увеличение заполненности импульсов, при нажатии на кнопки «+» и соответственно «-«. Подпрограммы уменьшения и увеличения скорости вращения будет включаться двумя кнопками, которые в свою очередь будут присоединены к прерываниям int0 и int1. Такое решение в связи с тем что управляющих кнопок больше не будет, а значит прерывания просто грех не использовать. Соответственно скорость будет увеличиваться или уменьшаться в зависимости от заполненности импульсов коммутирующих силовую схему управления двигателем.

Схема устройства представляет из себя следующее:

Используется только один полевой транзистор из сборки.

В основном цикле программы будет сама непосредственно программа реализации программной ШИМ.

Вывод 12 микроконтроллера AtTiny2313 необходимо соединить с силовой схемой. Силовую схему для управления двигателем предлагаю построить на сборке из двух полевых транзисторов IRF7105. Довольно дешевая, компактная и доступная в продаже сборка. Преимущество применения именно полевых транзисторов в том что на них практически нету падения напряжения, и собственно они за счет этого не греются. Небольшим недостатком является напряжение открытия полевых транзисторов этой сборки оно составляет по паспорту 5В, но экспериментально проверено что оно порядка 4В.

А это значит что мы будем иметь довольно узкий диапазон изменения скорости вращения двигателя от 4В до 5В. В принципе можно использовать любую другую схему для управления мощной нагрузкой, применение такой схемы обусловлено маленькой мощностью портов микроконтроллера ATTiny2313 да и вообще всех микроконтроллеров семейства AVR. Что бы не сжечь порты микроконтроллера как-раз и применяется силовая схема управления нагрузкой а в данном случаи коллекторным двигателем.

На фотографии:
— макетная плата для attiny2313;
— сборка IRF7105 на полевых транзисторах;
— маломощный коллекторный двигатель.

Видео работы регулятора:

Это круто! 🙂 Спасибо за

Это круто! 🙂 Спасибо за статью и исходник. Запустил свой движок. Конешно не обошлось без танцев с бубном. Но это главным образом из-за самого движка. Движок у меня достаточно мощный (из таких часто делают мини дрели для сверления плат). Проблема в том что он никак не хотел запускаться на малых оборотах и при понижении оборотов глох, ну и сам режим ШИМ не подходил-работало не так как хотелось бы. Плюс в программе не предусмотрены «ограничители» по скорости. Т.е. нажимаем например все время кнопку уменьшения громкости. Скорость уменьшается, уменьшается. И потом наступает момент когда переменная для ШИМ переходит через нуль в отрицательные значения. В этот момент мой практически остановившийся движок. можно сказать «Взлетел» со стола на максимальных оборотах. Я мягко говоря был в шоке. Хорошо что к оси был преклеен всего-лишь листочек бумаги, а не что-то «по-тяжелее». В общем через пару часов копания в программе, изменения переменных, диапазона, удалось добиться более-менее нормальных результатов. В целом проблема с малыми оборотами осталась (ну такой движок, ничего не поделаешь), но шим работает шикарно. С прерываниями все тоже гуд! 🙂

Читайте также:  Kia venga запуск двигателя

необходима помощь

не подскажете как можно при помощи подобного схемного решения управлять двигателем мн-145А с номинальными характеристиками напряжения 27 вольт и током 0.6-0.7 ампера

Да собственно схема остается

Да собственно схема остается той же, единственное что полевой транзистор надо взять мощнее, можно взять например irfz44. И обрати внимание на микроконтроллер больше 5 Вольт нельзя подавать!

Помогите на tiny85 сделать

Помогите на tiny85 сделать управление сервомашинкой через USB (без дополнительных микросхем и кварцев) — чтобы можно было открывать com порт и писать туда нужный мне угол?

И я хочу чтобы в сутках было

И я хочу чтобы в сутках было 34 часа.
Фраза «. через USB. » «. открывать com порт. » убила

ну а чего такого? виртуальный

ну а чего такого? виртуальный ком-порт — разве нельзя?

«. через USB (без

«. через USB (без дополнительных микросхем и кварцев). » — нуууууу, с такими условиями.

ну делают

ну делают же)
obdev.at/products/vusb/easylogger.html
только задача несколько другая, и документации мало)) или переделка аналогового входа в цифровой — намного сложнее?

Оцени по сложности этот

Оцени по сложности этот проект с учетом того, что исходника нету.
От 1 до 100. Если помигать светодиодом это к примеру 5-ть!
И скажи, много ты знаешь людей, которые могут сами написать софтовый протокол USB .

некорректная постановка

некорректная постановка задачи. что брать за 95? (у меня фантазии не хватает)))
этот — USB ШИМ?
исходник USB части вроде как раз есть (на том самом V-USB), причем вроде бы встречались реализации именно подобных вещей с передачи данных от компьютера к устройству. остается только повесить шим и все это объединить в одном проекте.
меня для начала не хватает разобраться с работой программного USB))) нужно, чтобы это было хорошо разжевано) — поэтому и спрашиваю)))

Нужен совет!

Кто подскажет в чём трабла собрал эту схему мотор молотит постоянно на кнопки не гу гу!фузы?
программу копировал прямо с этой страничке ! разводку кнопок с http://avrlab.com/node/37 как я понял. прошивка льётся нормально и компелируется гуд!

Код с сайта если взять и

Код с сайта если взять и скопировать то работать не будет, надо удалить нумерацию строк.
Глянь на всякий случай не включена ли оптимизация кода, она может лишние паузы убирать и будет плохо работать программа.

Кнопки действительно подтянуты резисторами +5Вольт.

Нумирация строк не копируется

Нумирация строк не копируется при копировани копируется чистый код !

Тут же все основано на

Тут же все основано на прерывании!
Просто для проверки прерывания напии програмку простенькую, которая по нажатию на кнопку внешнего прерывания включает светодиод или типа того. Таким образом проверишь работает ли у тебя в самом микроконтроллере прерывания.
Обрати внимние на подключение библиотеки прерываний, конфигурирование прерываний и само глобальное разрешение прерываний. Все должно быть как в листинге программы на страничке сайта.

Эх если бы я умел писать программ!

Эх если бы я умел писать програмы ! почему эта не работает вот в чём секрет ?

Эх если бы я умел чаво

Эх если бы я умел чаво писать)) для мено писать код это как в космос)

Не ну есть такое выражение

Не ну есть такое выражение «. высраться и не надуться. »
Не в обиду сказано, но без труда ичего не будет.
Если есть проблема — её верное решение лежит в понимании её решения и умении сделать то, что необходимо для решения.
Без этого никак.

Я понимаю всё! просто новичёк

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

Источник

Adblock
detector