Bmw-rumyancevo.ru

БМВ Мастер — Автожурнал
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Сервоприводы: подключение, управление, примеры работы

Сервоприводы: подключение, управление, примеры работы

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

Что такое сервопривод?

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

Простыми словами, сервопривод — это механизм с электромотором, который может поворачиваться в заданный угол и удерживать текущее положение.

Элементы сервопривода

Рассмотрим составные части сервопривода.

Электромотор с редуктором

За преобразование электричества в механический поворот в сервоприводе отвечает электромотор. В асинхронных сервоприводах установлен коллекторный мотор, а в синхронных — бесколлекторный.

Однако зачастую скорость вращения мотора слишком большая для практического использования, а крутящий момент — наоборот слишком слабый. Для решения двух проблем используется редуктор: механизм из шестерней, передающий и преобразующий крутящий момент.

Включая и выключая электромотор, вращается выходной вал — конечная шестерня редуктора, к которой можно прикрепить нечто, чем мы хотим управлять.

Позиционер

Для контроля положения вала, на сервоприводе установлен датчик обратной связи, например потенциометр или энкодер. Позиционер преобразует угол поворота вала обратно в электрический сигнал.

Плата управления

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

Выходной вал

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

Выходной шлейф

Для работы сервопривода его необходимо подключить к источнику питания и к управляющей плате. Для коммуникации от сервопривода выходит шлейф из трёх проводов:

Если сервопривод питается напряжением от 5 вольт и потребляет ток менее 500 мА, то есть возможность обойтись без внешнего источника питания и подключить провод питания сервомотора непосредственно к питанию микроконтроллера.

Управление сервоприводом

Алгоритм работы

Интерфейс управления

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

То, какое положение должен занять сервопривод, зависит от длины импульсов. Когда сигнал от микроконтроллера поступает в управляющую схему сервопривода, имеющийся в нём генератор импульсов производит свой импульс, длительность которого определяется через датчик обратной связи. Далее схема сравнивает длительность двух импульсов:

Для управления хобби-сервоприводами подают импульсы с частотой 50 Гц, т.е. период равен 20 мс:

Обратите внимание, что на вашем конкретном устройстве заводские настройки могут оказаться отличными от стандартных. Некоторые сервоприводы используют ширину импульса 760 мкс. Среднее положение при этом соответствует 760 мкс, аналогично тому, как в обычных сервоприводах среднему положению соответствует 1520 мкс.

Это всего лишь общепринятые длины. Даже в рамках одной и той же модели сервопривода может существовать погрешность, допускаемая при производстве, которая приводит к тому, что рабочий диапазон длин импульсов отличается. Для точной работы каждый конкретный сервопривод должен быть откалиброван: путём экспериментов необходимо подобрать корректный диапазон, характерный именно для него.

Часто способ управления сервоприводами называют PWM (Pulse Width Modulation) или PPM (Pulse Position Modulation). Это не так, и использование этих способов может даже повредить привод. Корректный термин — PDM (Pulse Duration Modulation) в котором важна длина импульсов, а не частота.

Характеристики сервопривода

Рассмотрим основные характеристики сервоприводов.

Крутящий момент

Момент силы или крутящий момент показывает, насколько тяжёлый груз сервопривод способен удержать в покое на рычаге заданной длины. Если крутящий момент сервопривода равен 5 кг×см, то это значит, что сервопривод удержит на весу в горизонтальном положении рычаг длины 1 см, на свободный конец которого подвесили 5 кг. Или, что эквивалентно, рычаг длины 5 см, к которому подвесили 1 кг.

Скорость поворота

Скорость сервопривода — это время, которое требуется выходному валу повернуться на 60°. Характеристика 0,1 с/60° означает, что сервопривод поворачивается на 60° за 0,1 с. Из неё можно вычислить скорость в оборотах в минуту, но так сложилось, что при описании сервоприводов чаще всего используют именно интервал времени за 60°.

Форм-фактор

Сервоприводы различаются по размерам. И хотя официальной классификации не существует, производители давно придерживаются нескольких размеров с общепринятым расположением крепёжных элементов.

Форм-факторВесРазмеры
Микро8-25 г22×15×25 мм
Стандартный40-80 г40×20×37 мм
Большой50-90 г49×25×40 мм

Внутренний интерфейс

Сервоприводы бывают аналоговые и цифровые. Так в чём же их отличия, достоинства и недостатки?

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

Оба типа сервопривода принимают одинаковые управляющие импульсы. После этого аналоговый сервопривод принимает решение, надо ли изменять положение, и в случае необходимости посылает сигнал на мотор. Происходит это обычно с частотой 50 Гц. Таким образом получаем 20 мс — минимальное время реакции. В это время любое внешнее воздействие способно изменить положение сервопривода. Но это не единственная проблема. В состоянии покоя на электромотор не подаётся напряжение, в случае небольшого отклонения от равновесия на электромотор подаётся короткий сигнал малой мощности. Чем больше отклонение, тем мощнее сигнал. Таким образом, при малых отклонениях сервопривод не сможет быстро вращать мотор или развивать большой момент. Образуются «мёртвые зоны» по времени и расстоянию.

Эти проблемы можно решать за счёт увеличения частоты приёма, обработки сигнала и управления электромотором. Цифровые сервприводы используют специальный процессор, который получает управляющие импульсы, обрабатывает их и посылает сигналы на мотор с частотой 200 Гц и более. Получается, что цифровой сервопривод способен быстрее реагировать на внешние воздействия, быстрее развивать необходимые скорость и крутящий момент, а значит, лучше удерживать заданную позицию, что хорошо. Конечно, при этом он потребляет больше электроэнергии. Также цифровые сервоприводы сложнее в производстве, а потому стоят заметно дороже. Собственно, эти два недостатка — все минусы, которые есть у цифровых сервоприводов. В техническом плане они безоговорочно побеждают аналоговые сервоприводы.

Материалы шестерней

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

Пластиковые, чаще всего нейлоновые, шестерни очень лёгкие, не подвержены износу, более всего распространены в сервоприводах. Они не выдерживают больших нагрузок, однако если нагрузки предполагаются небольшие, то нейлоновые шестерни — лучший выбор.

Карбоновые шестерни более долговечны, практически не изнашиваются, в несколько раз прочнее нейлоновых. Основной недостатой — дороговизна.

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

Коллекторные и бесколлекторные моторы

Существует три типа моторов сервоприводов: обычный мотор с сердечником, мотор без сердечника и бесколлекторный мотор.

Обычный мотор с сердечником (справа) обладает плотным железным ротором с проволочной обмоткой и магнитами вокруг него. Ротор имеет несколько секций, поэтому когда мотор вращается, ротор вызывает небольшие колебания мотора при прохождении секций мимо магнитов, а в результате получается сервопривод, который вибрирует и является менее точным, чем сервопривод с мотором без сердечника. Мотор с полым ротором (слева) обладает единым магнитным сердечником с обмоткой в форме цилиндра или колокола вокруг магнита. Конструкция без сердечника легче по весу и не имеет секций, что приводит к более быстрому отклику и ровной работе без вибраций. Такие моторы дороже, но они обеспечивают более высокий уровень контроля, вращающего момента и скорости по сравнения со стандартными.

Сервоприводы с бесколлекторным мотором появились сравнительно недавно. Преимущества те же что и у остальных бесколлекторных моторов: нет щёток, а значит они не создают сопротивление вращению и не изнашиваются, скорость и момент выше при токопотреблении равном коллекторным моторам. Сервоприводы с бесколлекторным мотором — самые дорогие сервоприводы, однако при этом они обладают лучшими характеристиками по сравнению с сервоприводами с другими типами моторов.

Сервопривод постоянного вращения

Сервоприводы обычно имеют ограниченный угол вращения 180 градусов, их так и называют «сервопривод 180°».

Но существуют сервоприводы с неограниченным углом поворота оси. Это сервоприводы постоянного вращения или «сервоприводы 360°».

Сервопривод постоянного вращения можно управлять с помощью библиотек Servo или Servo2 . Отличие заключается в том, что функция Servo.write(angle) задаёт не угол, а скорость вращения привода:

Функция ArduinoСервопривод 180°Сервопривод 360°
Servo.write(0)Крайне левое положениеПолный ход в одном направлении
Servo.write(90)Середнее положениеОстановка сервопривода
Servo.write(180)Крайне правое положениеПолный ход в обратном направлении

Для иллюстрации работы с сервами постоянного вращения мы собрали двух мобильных ботов — на Arduino Uno и Iskra JS. Инструкции по сборке и примеры скетчей смотрите в статье собираем ИК-бота.

Примеры работы с Arduino

Схема подключения

Многие сервоприводы могут быть подключены к Arduino непосредственно. Для этого от них идёт шлейф из трёх проводов:

Для подключения к Arduino будет удобно воспользоваться платой-расширителем портов, такой как Troyka Shield. Хотя с несколькими дополнительными проводами можно подключить серву и через breadboard или непосредственно к контактам Arduino.

Можно генерировать управляющие импульсы самостоятельно, но это настолько распространённая задача, что для её упрощения существует стандартная библиотека Servo .

Ограничение по питанию

Обычный хобби-сервопривод во время работы потребляет более 100 мА. При этом Arduino способно выдавать до 500 мА. Поэтому, если вам в проекте необходимо использовать мощный сервопривод, есть смысл задуматься о выделении его в контур с дополнительным питанием.

Рассмотрим на примере подключения 12V сервопривода:

Ограничение по количеству подключаемых сервоприводов

На большинстве плат Arduino библиотека Servo поддерживает управление не более 12 сервоприводами, на Arduino Mega это число вырастает до значения 48. При этом есть небольшой побочный эффект использования этой библиотеки: если вы работаете не с Arduino Mega, то становится невозможным использовать функцию analogWrite() на 9 и 10 контактах независимо от того, подключены сервоприводы к этим контактам или нет. На Arduino Mega можно подключить до 12 сервоприводов без нарушения функционирования ШИМ/PWM, при использовании большего количества сервоприводов мы не сможем использовать analogWrite() на 11 и 12 контактах.

Пример использования библиотеки Servo

По аналогии подключим 2 сервопривода

Библиотека Servo не совместима с библиотекой VirtualWire для работы с приёмником и передатчиком на 433 МГц.

Альтернативная библиотека Servo2

Библиотеки для управления сервоприводами (Servo) и для работы с приёмниками / передатчиками на 433 МГц VirtualWire используют одно и то же прерывание. Это означает, что их нельзя использовать в одном проекте одновременно. Существует альтернативная библиотека для управления сервомоторами — Servo2.

Все методы библиотеки Servo2 совпадают с методами Servo.

Пример использования библиотеки Servo

Примеры работы с Espruino

Примеры работы с Raspberry Pi

Вывод

Сервоприводы бывают разные, одни получше — другие подешевле, одни надёжнее — другие точнее. И перед тем, как купить сервопривод, стоит иметь в виду, что он может не обладать лучшими характеристиками, главное, чтобы подходил для вашего проекта. Удачи в ваших начинаниях!

Digitrode

цифровая электроника вычислительная техника встраиваемые системы

  • Вычислительная техника
    • Микроконтроллеры микропроцессоры
    • ПЛИС
    • Мини-ПК
  • Силовая электроника
  • Датчики
  • Интерфейсы
  • Теория
    • Программирование
    • ТАУ и ЦОС
  • Перспективные технологии
    • 3D печать
    • Робототехника
    • Искусственный интеллект
    • Криптовалюты

Чтение RSS

Arduino и модуль фотоимпульсного датчика скорости вращения двигателя

Модуль датчика оборотов двигателя предназначен главным образом для определения скорости вращения вала электродвигателя. Этот модуль в совокупности с микроконтроллером может определять помимо скорости также количество импульсов и положение вала.

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

Так в данном случае измеряется скорость – под событиями здесь понимаются импульсы, полученные в результате срабатывания оптического датчика во время вращения диска с прорезями. Датчик состоит из светодиода и фототранзистора, который воспринимает наличие или отсутствие излучения светодиода.

Представленная схема может быть использована для отправки зарегистрированных импульсов в микроконтроллер. Основой схемы является оптический датчик OS25B10 (OC1) со светодиодом и фототранзисторным выходом.

Далее идет микросхема сдвоенного компаратора LM393 (IC1), настроенная в качестве простого триггера Шмита. Зелёный светодиод (LED1) показывает наличие приложенного к схеме напряжения, а красный светодиод (LED2) контролирует выход модуля датчика скорости двигателя. Рекомендуемое рабочее напряжение модуля составляет от 4.5 до 5.5 В.

Обратите внимание, что резистор R1 (180 Ом) используется здесь для ограничения рабочего тока светодиода внутри оптического датчика OS25B10 (OC1). При необходимости вы можете изменить его номинал для вашего прототипа. Также вы можете подкорректировать значение резистора R2 (10 КОм) для получения необходимого напряжения для вашей схемы. Резистор R7 (10 КОм) является опциональным подтягивающим резистором.

Энкодерный диск

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

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

Датчик обороты для двигателя ардуино

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

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

1. читать с датчика коленвала, как это делает штатный прибор
2. читать наводки на высоковольтных проводах.

эти методы были отсеяны сразу же ввиду громоздкости и непростости. потому был выбран третий метод

3. считывание датчика давления воздуха, подключенного к вакуумной трубке карбюработа

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

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

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

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

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

внешний вид синусоиды на одном из двигателей был таким (на холостых оборотах)

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

с одной оговоркой, что изначально конденсатор стоял на 10 мкф и в качестве логики использовали микросхему 4011

основная идея схемы
1. делителем опускаем синусоиду с оффсетов 2 вольта на уровень около 0.7 вольт, когда транзистор начинает приоткрываться
2. транзистором сигнал усиливается
3. 4011 выравнивает усиленную синусоиду в прямоугольники (меандр)

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

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

но здесь возникли две проблемы

1. мне очень не нравилось, что узкий прямоугольник имеет ширину около 5 мс, а широкий — около 100 мс.
2. при масштабировании меандра по времени выяснилось, что по фронтам наблюдается шум


в поисках ответа, почему такая маленькая скважность у меандра по итогу была найдена ошибка в вычислениях. я то проектировал схему исходя из расчетов, что частоты входной синусоиды 1кГц-5кГц, мол ну если коленвал вращается с частотой 1000 оборотов, значит частота 1кГц. поняв свой затуп, пересчитал, что 1000 оборотов — это 1000 / (60*2) = 8 Гц. протеус также показал, что при заданном конденсаторе 10 мкц это практически нижный предел работы схемы. при частоте 5Гц схема перестает работать. замена конденсатора на 100 мкф полностью устранила проблему, скажность стала около 0.5, как это и ожидалось.

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

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


задача решена, самодельный тахометр с себестоимостью два бакса (не считая датчика и экранчика) работает.

ОБОРУДОВАНИЕ
ТЕХНОЛОГИИ
РАЗРАБОТКИ

Блог технической поддержки моих разработок

Урок 73. ПИД-регулятор скорости вращения двигателя постоянного тока. Разработка аппаратной части.

Первый из серии уроков, посвященных разработке регулятора скорости вращения коллекторного двигателя постоянного тока. Рассматривается аппаратное подключение двигателя к плате Ардуино.

Игорь из Москвы заказал мне разработку контроллера- регулятора скорости вращения двигателя постоянного тока.

Это продолжение бесконечной разработки интеллектуального сверлильного станка. Сначала я написал для него общую управляющую программу. Затем мы создали электронный прицел для станка на OSD-генераторе. Пришла очередь до двигателя, который вращает шпиндель.

Используется коллекторный двигатель постоянного тока мощностью 500 Вт и номинальным напряжением 100 В. Необходимо задавать и стабилизировать его скорость вращения.

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

Должен получиться учебный материал на несколько разных тем:

  • аппаратное подключение двигателя постоянного тока к Ардуино;
  • измерение частоты и периода сигнала ;
  • управление нагрузкой с помощью ШИМ;
  • ПИД-регулятор;
  • этапы разработки подобных устройств.

Кроме того, я надеюсь, что получится законченный аппаратно-программный блок – ПИД-регулятор скорости вращения двигателя постоянного тока. Его можно будет использовать в различных приложениях.

У Игоря используется достаточно мощный мотор 500 Вт, с номинальным напряжением питания 100 В. У меня такого двигателя нет. Поэтому я проведу разработку и испытания на компьютерном вентиляторе с номинальным напряжением 12 В. Не сомневаюсь, что все написанное и разработанное будет справедливо и для гораздо более мощных устройств. По крайней мере, Игорь проверит контроллер на 500 ваттном моторе.

Аппаратное подключение двигателя постоянного тока к Ардуино.

Существуют две основные задачи:

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

Сошлюсь на Урок 39, раздел ”Общие сведения о регуляторах”. Там написано, что необходимо выделить:

  • регулируемый параметр – что мы регулируем;
  • регулирующий элемент – с помощью чего мы регулируем.

Аппаратную часть этих компонентов регулятора и будем разрабатывать в этом уроке.

Подключение двигателя к ШИМ Arduino.

Естественно для управления двигателем будем использовать ШИМ. Это значительно упростит схему, повысит КПД. Практически, независимо от мощности и напряжения мотора, для управления им достаточно одного ключа. Конечно, передельно-допустимые параметры ключа должны соответствовать двигателю. Для моего двигателя-вентилятора я выбрал такие элементы.

ШИМ с выхода Ардуино открывает и закрывает ключ, собранный на MOSFET-транзисторе. Можно, конечно, использовать и биполярный транзистор, но:

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

Я выбрал MOSFET-транзистор IRF7341: N-канал, 55 В, 4 А. Кроме предельно-допустимых параметров необходимо учитывать то, что транзистор должен быть низкопороговым, т.е. открываться при небольшом напряжении (не более 5 В). Иначе необходимо использовать дополнительный элемент – драйвер.

Диод в схеме абсолютно необходим. Двигатель – это индуктивная нагрузка, а иногда и электрогенератор. Поэтому при закрытии транзистора на выводах двигателя могут возникать броски высокого напряжения. Они должны замыкаться через диод, чтобы не сжечь транзистор.

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

При закрытом транзисторе диод находится в открытом состоянии, через него течет ток размагничивания обмотки двигателя. Затем транзистор открывается. А диод закрывается только через время восстановления обратного сопротивления. Даже у “быстрых” (FR307) диодов это время составляет 150-500 нс, у “супербыстрых” 35 нс, а у выпрямительных 1N4007 этот параметр не нормируется. Представьте себе, что при частоте ШИМ 100 кГц 100000 раз в секунду будет происходить короткое замыкание. Это приведет к жутким помехам, уменьшению КПД и нагреву диода и транзистора.

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

  • Лучше всего диод Шоттки.
  • Если высокое напряжение (более 150 В) не позволяет использовать диод Шоттки, то лучшим вариантом будет карбидокремиевые диоды Шоттки.
  • Следующим приемлемым вариантом могут быть HEXFRED-диоды с ограничением обратного тока обратного восстановления;
  • На крайний случай остаются супербыстрые и ультрабыстрые диоды.

У меня напряжение всего 12 В. Я выбрал диод Шоттки SS16.

Наверное, понятно, что меняя коэффициент заполнения ШИМ, мы будем изменять среднее напряжения на двигателе, я значит, и его мощность. Частоту ШИМ определим экспериментально.

Измерение скорости вращения.

Традиционным компонентом для измерения числа оборотов мотора служит датчик Холла. Это датчик, который показывает наличие магнитного поля, например, присутствие рядом с ним постоянного магнита. Для наших целей необходимы цифровые или дискретные датчики Холла. В отличие от аналоговых они срабатывают при превышении магнитным полем определенного порога и имеют гистерезис.

Конструкции измерителей скорости могут быть самыми разными. Можно закрепить на валу двигателя металлический диск с радиальными прорезями и использовать автомобильный датчик Холла.

Диск будет прерывать магнитное поле между датчиком Холла и постоянным магнитом. На прорезях магнитное поле будет проходить к датчику и таким образом, при вращении, будут формироваться импульсы.

Я поступил проще. Использовал дешевый, миниатюрный датчик Холла TLE4905L. В самых дорогих магазинах он стоит до 50 руб, а на АлиЭкспресс от 25 руб.

Это цифровой датчик Холла, настроенный на определенный порог магнитного поля. Он прекрасно срабатывает на расстоянии 8 мм от миниатюрного магнита диаметром 5 мм и толщиной 1 мм.

Конструкция измерителя очевидна. Я приклеил 2 магнита к диску вентилятора и над линией, по которой они двигаются при вращении, расположил датчик Холла.

Когда магниты проходят под датчиком, на его выходе формируются импульсы. Измерив частоту этих импульсов можно определить скорость вращения двигателя. На один оборот вырабатываются 2 импульса. Я использовал 2 магнита для того чтобы не нарушить балансировку вентилятора. Возможно, хватило бы и одного.

Как у датчика, так и у магнитов есть полярности. Поэтому перед тем, как устанавливать эти компоненты надо проверить в каком положении срабатывает датчик.

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

Подключение датчика необходимо производить отдельными проводами. Все связи должны соединяться непосредственно на плате Ардуино. С точки зрения помехозащищенности это самое узкое место в системе.

Для задания скорости будем использовать переменный резистор. Подключим его к аналоговому входу платы Ардуино. Добавим еще сигнал включения/выключения двигателя и выход для тестовых импульсов. С помощью него будем проверять работу устройства без мотора.

С учетом всего вышесказанного окончательная схема контроллера-регулятора оборотов двигателя будет выглядеть так.

В реальных приложениях обороты можно задавать напряжением на аналоговом входе A0. Получится стандартный аналоговый интерфейс 0…5 В. Если необходим диапазон 0…10 В, то достаточно добавить резисторный делитель напряжения.

Состояние контроллера для отладки ПИД-регулятора будем передавать на компьютер через последовательный порт. Я разработаю программу верхнего уровня с регистрацией данных и отображением их в графическом виде. Регистратор значительно облегчает настройку любого ПИД-регулятора.

В следующем уроке начнем “оживлять” контроллер.

Читать еще:  Что является тактом двигателя
Ссылка на основную публикацию
Adblock
detector