Валкодер из шагового двигателя схема
Валкодер из шагового двигателя схема
Тут я попробую выкладывать не готовые конструкции, а и просто идеи. Как свои, так и своих друзей, как «воплощенные» так и «только идеи». Если кто раньше авторов идей воплотит это в жизнь (точнее в «железо»), или повторит — you are welcome, единственная просьба — сообщите что получилось Впрочем, если не воплотите но будут какие-то мысли по поводу здесь написанного — тоже напишите.
ИТУН из Зена
Класический вариант Зена Нельсона Пасса:
![]() |
Огромным достоинством этой схемы, которое не поколебит даже наличие выходного конденсатора (который все-же, необходимо ставить электролит высокого качества и обязательно шунтировать его пленочным 10-40мкФ), является нечуствительность к источнику питания. Происходит это благодаря тому, что последовательно с БП оказывается включенным источник тока V1 ( только в том случае, когда нагрузка подключена к минусу. Достаточно подключить ее к плюсу источника питания — и все достоинство пройдет). Не портит качество усилителя даже наличие обратной связи по напряжению — глубина ООС достаточна для уменьшения искажений, и достаточно мала, и к тому-же охватывет всего один каскад, т.е. является «местной», чтобы пагубно влиять на звук.
В последнее время, большой популярностью пользуются усилители, построенные как источник тока (ИТУН), что связано с улучшением характеристик акустических систем, при их питании от усилителя, с высоким выходным сопротивлением. Очень легко превратить и классические Зен в ИТУН — для этого нужно всего-лишь вместо ООС по напряжению, ввести ООС по току — установив небольшой резистор в source основного мосфета.
При этом следует уделить особое внимание каскаду, стоящему перед выходным — поскольку в этой схеме отсутствует резистор R1, который уменьшает влияние входной емкости мосфета, этот каскад должен быть достаточно мощным, т.е. быть с небольшим выходным сопротивлением и быть способным работать на емкостную нагрузку. А теперь самое прикольное -если “холодный” конец нагрузки включить не на миус питания а в точку соединения сорса мосфета с резистором у него в сорсе, то получится интересная зависимость тока нагрузки от входного сигнала.
![]() |
Дополнительная фильтрация в ЦАП
Хорошую идею, подал Дима Харций: использованный в моем фильтре для сабвуфера фильтр Бесселя 8 порядка, на переключаемых конденсаторах, можно попробовать применить для пост-фильтрации в ЦАП, что я ему на это только заметил — тактовую частоту необходимо выбрать весьма хитрым образом, и обязательно синхронную с тактовой частотой ЦАПа.
Валкодер — шаговый двигатель
Использование шагового двигателя в качестве валкодера не ново:
![]() |
в интернете достаточно схем на эту тему. При практическом использовании, удобно завести одну фазу на обычный вход микроконтроллера, а вторую — на вход, генерирующий прерывание при изменении состояния.
При этом прерывание генерируется при любом изменении — как фронте так и срезе сигнала одной фазы, и в обработчике прерывания достаточно сравнить состояние двух фаз — если они одинаковые, то значит происходит вращение в одну сторону, если они разные — в другую.
Такой валкодер удобно использовать например как регулятор громкости с электронным управлением. (С другой стороны — многие, кто не признает электронных регуляторов, используют моторизированные регуляторы громкости, т.е. обычный потенциометр, на одном валу с моторчиком — для возможности реализации дистанционного управления, в этом случае, при отсутствии готового ALPS или другого «моторизированного» регулятора, можно использовать как обычный моторчик постоянного тока, так и шаговый двигатель).
В первом случае, для электронной регулировки, возникает проблема индикации, поскольку валкодер не имеет ограничений на угол поворота — его вал свободно вращающийся. Как конкретно сделать индикацию — дело вкуса и предпочтений конструктор. Это может быть светодиодный/ЖКИ индикатор, с отображением значения цифрами (в децибеллах или абстрактных величинах), линейный индикатор («полоска» и т.д.). При наличии дистанционного управления, и использовании в качества валкодера шагового двигателя (например я использовал двигатели привода головок со старых 5″ дисководов) — можно сделать интересный вариант, когда двигатель используется и как валкодер, и как двигатель. Технически — это просто соединение схемы валкодера с ключами управления шаговиком:
![]() |
Но есть один ньюанс — как Вы видите, выходы компараторов обьединены со входами ключей. Что это дает ? В большинстве микроконтроллеров, выводы могут быть запрограммированы как входы так и выходы, причем те выводы, который способны генерировать прерывание при изменении состояния, делаю.т это в любом случае — что они работают как входы и изменяются внешним сигналом, что они работают как выходы, и управляются самим микроконтроллером. В данном случае, один из сигналов управления должен быть подключен к такому выводу. В номальном состоянии, выводы запрограммированы как входы, и шаговый двигатель работает как валкодер, генерируя прерывания одной фазой, и обработчик прерывания проверяет состояние двух фаз как описано выше и выдает сигналы на индикацию и на сам регулятор громкости
Как только начинает работать дистанционное управление — микроконтроллер переводит выводы в состояние «выход», и управляет шаговиком как обычным шаговым двигателем. Передачи информации на индикацию и регулятор громкости при этом не требуется — ведь одна из фаз генерирует прерывание при своем изменении, а далее — см. выше!
Если на рукоятке имеются отчетливо видимые метки, то вращение рукоятки при регулировке громкости при помощи ДУ- производит неизгладимое впечатление на впервые это видящих 🙂
Допплеровский датчик ЭМОС
Тот-же пьезик, который применяют в качестве микрофонного датчика ЭМОС, что укреплен на пятаке динамика, только использовать его не как микрофон, а как излучатель, на него кварцованные килогерц 50, второй такой-же пьезик — над ним как микрофон. Как обрабатывать все это — понятно, например PLL на 4046.
Еще одна идея Дмитрия Харция, она посвящается любителям
мультибитных ЦАП-ов.
Есть у них забота — сделать «правостороннее выравнивание» данных между S/PDIF-приемником (типа там CS84xx, работающим на выход в формате Left Justified) и собственно ЦАП-ом (множество мультибитников только Right Justified и понимают). И тулят туда всякие батареи регистров сдвиговых (правда, периодически им не хватает скорости выбраных чипов). С другой стороны, есть чип AD1895 от Analog Devices, который они должны любить, а вместо этого ненавидят «лютой ненавистью» — там ведь слово ASRC (Asynchronous Sample Rate Converter) написано! Чем же может быть полезен чип сей? Да все просто — на его вход, сконфигурированный «славиком» подаются данные от CS84xx, работающего «мастером». Выход AD1895 конфигурируем на работу в формате Right Justified (вот и преобразовали форматы), плюс формат Right Justified единственный позволяет ограничивать длинну выходного слова 16-ю битами (что собственно и делаем — вот и отключили «дишеринг»). И еще «чудо» — AD1895 синхронизуем (хотите, кварцем, подключенным к ее соответсвующим ногам, хотите, внешним генератором: хоть ЭСЛ, хоть «трехточкой») частотой равной 44,1*256=11,2896 МГц — вот и нет преобразования частот — 44,1 въезжает — 44,1 выезжает! В итоге от AD1895 остается только FIFO-буфер, НО, синхронизующий выходные данные петлей своей внутренней ФАПЧ, ошибка которой не превышает 5 пс.! Да плюс преобразователь интерфейсов. Ну где еще такой джиттер найти? У CS84xx, например нормировано не более 200 пс.
Bi-wirering в Фолловере А.Чуффоли и подобных схемах.
Оригинальная функциональная схема Фолловера-99 Андреа Чуфолли показана ниже:
![]() |
Она очень похожа на схему усилителя Зена (Нельсона Пасса), как будто «вверх ногами». На самом же деле, она весьма отличается по работе, но в даном случае — хотелось-бы остановится на одной возможности.
Как и для Зена, одним из недостатков Фолловера-99 считают наличие выходного конденсатора. Я не отношусь к сторонникам такой уж «сильной критики» этого конденсатора, поскольку при использовании конденсаторов хорошего качества, работающих при сильной поляризации, да еще и набранных «бутербродом» (большой электролит+электролит поменьше+ пленочный конденсатор) — ничего пагубного со звуком не происходит. Но (!) в Фоловере есть возможность реализовать то, что нельзя реализовать в Зене из-за наличия резисторов обратной связи, стоящих после конденсатора (без изменений в схеме)
Основные проблемы с конденсатором — связаны с диэлектрической адсорбцией, влияющей на воспроизведение средних и высоких частот. Вместе с тем, в кроссоверах 2-х и 3-х полосных АС обязательно присутствуют конденсаторы, включенные последовательно.
Но ведь они оказываются включены последовательно и с выходным конденсатором Фоловера! Поэтому само напрашивается решение — перенести эти конденсаторы в усилитель, и заставить играть роль не только кроссоверных, но и разделительных конденсаторов. При этом, к большому электролитическому конденсатору С2 нужно подключать НЧ динамик, а СЧ/НЧ — через отдельный, гораздо меньший пленочный конденсатор С3, как показано на рисунке:
![]() |
Таким образом и реализуется би-ваеринг, и снижается влияние электролита на СЧ и ВЧ, а в случае эксплуатации с имеющими полный кроссеверы АС (или однополосных) — можно просто замкнуть перемычкой разьемы НЧ и СЧ/ВЧ между собой, и исползовать все как было раньше.
А это — не столько идея, сколько пример «цифрового бреда» :
> Только тут есть маленькая деталь — разработчик полностью поменял идеологию работы со звуком .
> Ничего я не менял. В то время просто не было нужной элементной базы и технологий. Усилитель 70-х и 90-х — аналоговый, потому что тогда только так умели. Технология развивалась и в те годы, но ее уровень был недостаточен для революции в усилителестроении. Усилитель 2000-х будет цифровым, только сейчас уровень технологии подходит к требуемому для этого уровню. Пока еще цифровые усилители уступают аналоговым, но это дело времени. У меня пока эксплуатируется аналоговый усилитель, потому что сделать полностью цифровой усилитель приемлемого качества я пока не могу (могу только предварительный). Но вкладывать силы в дальнейшее развитие схемотехники усилителей класса AB на сегодняшний день нерационально. Вот этот труд точно пропадет даром. Раньше я слушал в основном компакт-кассеты, но когда появились компакт-диски, я перешел на них, так как они по всем параметрам лучше. Да, в кассетную деку вложено много труда, который пропадает. Но что Вы хотите предложить, чтобы он не пропал? Вернуться к компакт-кассетам? Не хочу. Я считаю, что свое дека отработала, труд не пропал полностью. К тому же, остался опыт, полученный при конструировании. Но вкладывать сегодня силы в разработку новой кассетной деки нерационально, если, конечно, не преследовать учебную цель.
> Весь опыт и знания мгновенно перечёркнуты абсолютно другими идеологиями
> Вот тут Вы не правы. Опыт никуда не делся. Другое дело, что для создания современной аудиотехники требуются дополнительные знания (в основном в области цифровой обработки сигналов), а некоторые знания из области аналоговой схемотехники могут не пригодиться.
> всё в этом мире пытаются квантовать
> И что в этом плохого? В результате получается более точное воспроизведение аналоговой величины, чем это было при использовании только аналоговых методов.
> даже то, что изначально аналоговое.
> Ну это еще вопрос. Мир имеет квантовую природу. Правда, квантовые свойства проявляются лишь в микромире. Есть примеры и более грубого квантования. Например, физиология слуха человека является дискретной как минимум в плане частотного разделения звуков. Кстати, процесс записи на магнитную ленту с высокочастотным подмагничиванием не является непрерывным, он квантован доменной структурой рабочего слоя ленты и дискретизирован частотой подмагничивания. Артефактов мы не замечаем только потому, что тракт записи-воспроизведения представляет собой хороший antialiasing фильтр.
> Скоро динамики начнут квантовать — диффузор будет передвигаться ступеньками и управляться процессором.
> Очень может быть. Цифровая ЭМОС позволила бы намного точнее контролировать положение диффузора.
LM1036 знаете? Полная дрянь, если ее по прямому назначению использовать.
А если не по прямому?
Сдвигаем ей соответсующим образом частоты перегиба регулятора тембра НЧ и ВЧ, сам регулятор ВЧ ставим на макс. подавление. Оба канала включаем последовательно — для увеличения крутизны фильтров (т.е увеличиваем порядок фильтров вдвое).
Далее — регуляторы громкости и тембра НЧ выводим на переднюю панель, для оперативной регулировки. После ЛМ-ки — ставит еще дополнительный ФНЧ 2-го порядка, герц на 200 — чтобы дополнительно подфильтровать СЧ/ВЧ вместе с шумами самой ЛМ-ки.
Да, а собственно чего мы получили, догадались?
Какой-никакой фильтр для саба. Авось получится 🙂
Валкодер принцип работы
Самый простой вариант — механический валкодер или датчик поворота, в нем всего три контакта, один общий и два сигнальных. Простейший такой датчик имеет ручку, которая поворачивается против или по часовой стрелке. В зависимости от угла поворота и направления вращения выдается цифровой код, содержащий информацию о том, в каком положении находится ручка валкодера и в какую сторону она была повернута.
В отличие от переменного резистора, положение ручки валкодера меняется дискретно, “щелчками”, при этом идет несколько коммутаций, последовательность которых зависит от выбранного пользователем направления вращения. На один полный оборот может быть разное число дискретных положений (12, 20, 24), в зависимости от типа устройства.
Принцип работы такого валкодера становится понятным из его таблицы истинности, графика и функциональной схемы:
Сигналы с этого трехконтактного датчика поворота идут со сдвигом фазы в 90 градусов. Обычно один из сигналов (А или В) используется для счёта импульсов, а другой для определения направления. Например, при вращении ручки вправо, в момент появления напряжения на А, на И оно еще отсутствует. А при вращении влево, в момент появления напряжения на В, на А оно уже есть. То есть дополнительно подключенная схема или микроконтроллер легко поймет направление вращения, как и сосчитает количество импульсов во время вращения ручки.
Как видно из временных диаграмм на рисунке выше, при повороте на одно дискретное положение (на один “щелчок”), на выводах A и B появляются импульсы отрицательной полярности, сдвинутые по фазе между собой. Сдвиг фаз зависит от выбранного направления вращения. На ВД можно обозначить четыре состояния, которые составляют период одного дискретного изменения (“щелчка”), длительность периода изменяется примерно от 2 мс до 4 мс.
На рисунке ниже показан пример схемы подключения валкодера к микроконтроллеру:
Выводы A и B нужно обязательно подтянуть к линии питания +5В с помощью подтягивающих резисторов, также необходимо установить емкости C1 и C2 которые снижают влияние дребезга контактов.
Практический пример такого подключения хорошо описан здесь:
Аналогичную схему можно легко собрать и своими руками, например на отечественной цифровой микросхеме и двух оптронах (АОТ147Б):
На логических элементах ИЛИ-НЕ DD1.1 и DD1.4 собрана схема, укорачивающая импульсы идущие с вывода VAL0, длина импульса подбирается, номиналами конденсатора C2 и резистора R4, чтобы микроконтроллер смог зафиксировать импульс. DD1.2 и DD1.3 используются в роли буферных элементов.
Электродвигатель имеет две обмотки. При вращении вала в одну или другую сторону на выводах этих обмоток будут генерироваться импульсы ,сдвинутые по фазе относительно друг-друга, которые можно усилить до уровня логической «1». Для этого предлагается вариант схемы ниже:
При испытаниях такой схемы получилось около 200 импульсов на оборот . Ненужную алюминиевую втулку с оси двигателя проще всего удалить, для этого потребуется слегка подогреть ее. Печатная плата размером 35х35 мм крепится к задней части электродвигателя, с помощью клея.
Валкодер из шагового двигателя схема
Валкодер для «домашнего» применения.
В общем-то, целесообразность использования валкодера для регулировки обсуждать бессмысленно. На мой взгдяд, при переходе от управления кнопками на управление валкодером существует лишь один недостаток — это ЗАТРАТНОСТЬ такого «перехода». Все остальные моменты только со знаком плюс: удобство, «привычность» (всю жизнь мы крутим водопроводные краны, ручки газовых (электрических) плит. и т.д.), эстетичность внешнего вида всей конструкции. и еще, еще, еще. 🙂
Однако, после принятия решения о применении валкодера в своем устройстве, возникает вопрос — какую конструкцию выбрать? Самой главной характеристикой валкодера является его разрешающая способность (количество. или число импульсов на оборот). И возможность применения валкодера в том или ином устройстве определяется именно этим параметром. Так, если предполагается применение валкодера для перестройки частоты трансивера, да еще с шагом 1. 3 Гц, то число импулсов на оборот должно быть максимально возможным . и совсем другие требования к разрешающей частоте валкодера при использовании последнего для регулировки громкости в муз.центре или настройке FM приемника с шагом 50 кГц.
И если, для трансивера могут применяться валкодеры с разрешением >200 имп/об (датчики положения станков с ЧПУ, например ВЕ-178А у которого z=1000 или 2500. правда, этот датчик размером с банку от кофе. и схема питания и синхронизации еще должна быть) или должно вводиться программное «умножение» разрешающей способности, то для второго случая, вполне подходят «обычные» конструкции (датчики от «мыши», шаговые двигатели . ) с разрешением от 30. до 100 (чаще 60) импульсов на оборот. Кстати, валкодеры, применяемые в муз.центрах имеют близкое к 60 имп/об разрещение.
Рассмотрим второй вариант применения валкодера.
Что же такое, в моем понимании, ВАЛКОДЕР? Валкодер — русское «обозначение» ENCODER — кодека, схемы кодирования (от encode — кодировать, шифровать..) , т.е. буквально это — устройсво кодировки. ИМХО: при заимствовании слова в русский язык, к слову «КОДЕР» была добавлена приставка «ВАЛ» (хотя скорее всего, ВАЛКОДЕР — это двукоренное слово) , которая все «расставила» на свои места. и получилось, что ВАЛКОДЕР это — устройство кодировки перемешения «вала» (штурвал парусника IXX века — это, тоже, своего рода, валкодер. -) ) . Слова ВАЛКОДЕР и ЭНКОДЕР — синонимы и употребление любого из них правильно. -) В электротехнике, разумеется, перемещение вала кодируется в электрические сигналы (импульсы).. 🙂
Каковы же принципы работы валкодера? Как закодировать угловое перемещение. Конечно, можно сделать валкодер на несколько дискретных положений — галетный переключатель, например. но при этом число положений вряд ли будет больше 25..30 (самый-самый из «галетников», известный мне, это — ПГК-21П1Н ..21 положение. ) , а для перестройки FM приемника нужно (108-88)/0,05+1=401 положение. а сколько «положений» нужно для перестройки трансивера с малым шагом. ясно что «механика» тут не пройдет. 🙂
И поэтому предложено (кем не знаю) следующее — две импульсные последовательности (меандры), смещенны относительно друг друга на 90 град. при этом один из сигналов используется для подсчтеча импульсов, а другой для определения направления вращения.
. итак, допустим, что производить подсчет числа импульсов, будем по фронту посделовательности S1, и в этот же момент, будем определять состояние последовательности S2 (определение направления вращения).
.. из рисунка понятно, что при вращении влево — фронт S1 всегда будет соответствовать уровню «1» S2.. (M1 или M2 на рисунке), и, наоборот, при вращении вправо — фронту S1 соответствует логический «0» S2..(M3 на рисунке). заметим, что начальное положение валкодера (Р1 или Р2) не может повлиять на «результат». 🙂
Разные валкодеры отличаются друг от друга лишь способом формирования этих последовательностей..(механический (контактный)- как правило в муз.центрах, оптический — «мыши» . и механические, и оптические).
Возможно применение в качестве валкодера шагового двигателя, например от флопи дисководов. (для 5,25 inch дисководов применялся ПБМГ-200-265Ф — 200 имп/об) однако, для формирования последовательностей S1 и S2 необхомо двигатель «дополнинить» схемой формирования. например:
. изготовление валкодера из «мышей» рассматривается, например, здесь (механическая) и здесь (оптическая)
..в заключение, приведу пример программной реализации опроса валкодера, подсмотренный на форуме у (С)sov1178:
«. Разделим задачи на части (и запишем в порядке убывания приоритета):
1. подсчет импульсов от валкодера
2. пересчет числа импульсов в частоту и программирование синтезатора.
3. индикация частоты на индикаторе.
Подсоединяем один выход валкодера на вход прерывания, а второй на любой порт ввода в контроллере. В прерывании (по фронту или по спаду) считываем состояние этого порта (1-вправо, 0-влево или наоборот, как подключите ), и изменяем счетчик и устанавливам флаг изменения частоты. На этом обработка прерывания заканчивается. Если не крутить валкодер дрелью , то любой контроллер подсчитает все импульсы.
interrupt(PORT1) Port1Int(void)
<
if(PORT1 & 0x1)counter++;
else counter—;
freq_changed=1;
>
Это на случай нормального валкодера с большим Z — здесь нет надобности учетверять или удваивать.
В основной программе делается что-то типа такого:
for( ; ; )
<
Sleep(); //Ждем прерывания (это не обязательно)
while(freq_changed)
< //Частота была изменена
freq_changed=0; //Сбрасываем флаг
RecalcFreq(); //Пересчитываем частоту в код для ситезатора
ProgSynth(); //Программируем ситезатор
>
UpdateScreen(); //Обновляем экран
>
Пояснения:
Если мы быстро крутим валкодер, то обработчик прерывания подсчитывает импульсы быстро, но частота пересчитывается один раз на несколько импульсов поступивших с валкодера.
Поверьте, что при перестройке 10кГц в сек. нет большой разницы между шагом в 10 Гц или 100Гц, главное, что как закончите крутить частота перестроится точно туда, куда надо.
Далее цикл while позволяет сэкономить время на индикации если крутить очень быстро.
Самое главное — разбить задачу на подзадачи и определить приоритеты для них, а далее обеспечить по возможности соблюдения этих приоритетов.
То, что я здесь написал я не испытывал, так как вопросы распределения времени процессора у меня решает ОС реального времени (поскольку когда забот у контроллера становится очень много это пожалуй единственное эффективное решение, кстати в Айкоме хвастаются тем, что они для ic7800 написали свою ОС реального времени, ну не одни они ) и все делается немного по-другому, но принцип очень похож. «
Вот еще советы, которые помогут в эксплутации валкодера. Привожу свой «пост» на форуме:
Хочу поделиться результатами опытов с энкодером.
Главное в работе с последним — это борьба с дребезгом. Для борьбы с ним общепринято вводить паузу (задержку) после обнаружения первого изменения уровня (фронта).
Так я и делал (делал это в прерывании). Но что обраружилось: или происходили ложные срабатывания (если задержка мала) или (при значительном увеличении времени задержки) происходил пропуск срабатываний (при быстром вращении). Оптимальной, но не решившей проблему (возможно из-за свойств конкретного экземпляра энкодера), оказалась задержка в 300мкС, как и советовал ув. ‘Леонид Иванович’.
Идея с подключением конденсатора, предложенная ‘Kovrov’, показалась мне весьма правильной, а проведенный опыт доказал полную состоятельность такого решения.
Таким образом, считаю, что для «победы» над дребезгом контактов, возникающим при работе энкодера, достаточно подключить параллельно выходам энкодера конденсаторы емкостью 0,1. 0,15 мкФ (я поставил 0,15). При этом дребезг «пропадает» полностью (задержка не нужна совсем). Срабатывания отрабатываются правильно не зависимо от скорости вращения ручки энкодера.
З.Ы. Подключение конденсатора безусловно снижает надежность конструкции (как минимум из-за введения новых деталей) и для СЕРЬЕЗНЫХ изделий такое решение не является правильным. Однако в бытовых условиях такое решения полностью оправдано.
Огормное спасибо Alies’у , который «заставил» меня разбираться в валкодерами. -)
Драйвер шагового двигателя DRV8825. Подключение к Arduino.
В предыдущей статье уже рассмотрели самый распространённый драйвер шагового двигателя A4988. В данной статье рассмотрим еще одни, не менее популярный, драйвер шагового двигателя DRV8825 и подключим его к Arduino, а также научимся управлять шаговым двигателем. Не смотря на то, что драйвер шагового двигателя DRV8825 полностью взаимозаменяем с драйвером A4988, драйвер DRV8825 имеет ряд преимуществ: рабочее напряжение до 45В, ток до 2,5 А и деление микрошага до 1/32.
Технические характеристики драйвер DRV8825.
- Напряжение питания: от 8.2 до 45 В.
- Установка шага: 1; 1/2; 1/4; 1/8; 1/16; 1/32.
- Напряжение логики: 3,3 В.
- Защита от перегрева: Есть.
- Максимальный ток на фазу: 1,5 А без радиатора, 2,5 А с радиатором.
- Габариты модуля: 20 мм х 15 мм х 10 мм.
- Габариты радиатора: 9 мм х 5 мм х 9 мм.
Общая информация о драйвере DRV8825.
Основная микросхема модуля — это драйвер от TI (Texas Instruments Inc.) DRV8825, который способен управлять одним биполярным шаговым двигателем. Данный драйвер полностью взаимозаменяемый с драйвером A4988. Микросхема DRV8825 может работать с выходным напряжением до 45 В. и током до 1,5 на катушку без радиатора и до 2,5 А. с радиатором (дополнительным охлаждением). Так же, модуль имеет внутренний стабилизатор напряжения, который напитывает логическую часть модуля напряжением 3,3 В от источника шагового питания двигателя.
Драйвер позволяет использовать шесть вариантов шага: 1; 1/2; 1/4; 1/8; 1/16; 1/32.
Распиновка драйвера DRV8825.
На драйвере DRV8825 расположено 16 контактов:
- EN — включение и выключение модуля (0 — включен, 5 В. — выключен).
- M0, M1 и M2— выбор режима микрошаг (смотрите таблицу ниже).
- RST — сброс драйвера.
- SLP — вывод включения спящего режима, если подтянуть его к низкому состоянию драйвер перейдет в спящий режим.
- STEP — управляющий вывод, при каждом положительном импульсе, двигатель делает шаг (в зависимости от настройки микрошага), чем быстрее импульсы, тем быстрее вращается двигатель.
- DIR — управляющий вывод, если подать +5 В. двигатель будет вращаться по часовой стрелке, а если подать 0 В. против часовой стрелки.
- VMOT&GND MOT — питание шагового двигателя от 8,2 до 45 В. (обязательное наличие конденсатора на 100 мкФ.).
- B2, B1, A1, и A2 — подключение обмоток двигателя.
- FAULT — Выход включения защиты, если состояние «0», значит, полевые транзисторы H-моста отключены в результате защиты от перегрузки по току, или был перегрев.
- GND LOGIC — заземление микроконтроллера.
Подключение питания.
Модуль может питаться от источника постоянного тока до 45 В. и до 2,5 Ампер при 24 В. А при 45 В. номинального тока до 2,2 А. В общем случае напряжение может быть между 8 и 45 Вольт постоянного тока.
Пожалуйста, смотрите, что ваш блок питания рассчитан, по крайней мере, на 30% больше, чем максимальный ток, который может быть подан в ваш шаговый двигатель. Обратитесь к техническому паспорту производителя для того, чтобы узнать это значение.
Выводы для подключения шагового двигателя.
Выходные контакты: 1B, 1A, 2A ,2B.
Выводы управления.
STEP — управляет микрошагом мотора. Каждый высокий импульс, отправляемый на этот вывод, приводит двигатель в действие на количество микрошагов, заданное выводами Microstep Selection (MS1, MS2 и MS3). Чем быстрее импульсы, тем быстрее будет вращаться двигатель.
DIR — управляет направлением вращения двигателя. Если на него подать высокий уровень, то двигатель будет вращаться по часовой стрелке, а если низкий — против часовой стрелки.
Если вы просто хотите, чтобы двигатель вращался только в одном направлении, то вы можете соединить вывод DIR непосредственно с VCC или GND соответственно.
Настройка микрошага драйвера DRV8825.
Драйвер DRV8825 может работать в микрошаговом режиме, то есть может подавать питание на катушки с промежуточным уровнем. Например, если взять двигатель NEMA17 с шагом 1.8 градусов или 200 шагов на оборот, в режиме 1/4, двигатель будет выдавать 800 шагов за оборот.
Дня настройки микрошага на драйвере DRV предусмотрены три выхода, а именно M0, M1 и M2. Установив соответствующие логические уровни для этих выводов, можно выбрать режим микрошага.
Выводы M0, M1 и M2 в микросхеме DRV8825 подтянуты резистором к земле, поэтому, если не подключать их, двигатель будет работать в режиме полного шага.
Система охлаждения DRV8825.
При интенсивной работе микросхемы драйвер DRV8825 начинает сильно греться и если температура превысит предельное значение, то он может сгореть. По документации DRV8825 может работать с током до 2,5 А. на катушку, но на практике микросхема не греется, если ток не превышает 1,2 А. на катушку. Поэтому если ток выше 1,2 А. необходимо устанавливать радиатор охлаждения, который идет в комплекте.
Настройка тока DRV8825.
Перед использованием мотора нужно сделать небольшую настройку, необходимо ограничить максимальную величину тока, протекающего через катушки шагового двигателя, и ограничить его превышение номинального тока двигателя, регулировка осуществляется с помощью небольшого потенциометра.
Для настройки необходимо рассчитать значение напряжения Vref.
Vref = Current Limit / 2
Current Limit — номинальный ток двигателя.
Для примера рассмотрим двигатель NEMA 17 17HS4401 с током 1,7 А.
Vref = 1,7 / 2 = 0,85 В.
Осталось только настроить, берем отвертку и вольтметр, плюсовый щуп вольтметра устанавливаем на потенциометр, а щуп заземления на вывод GND и выставляем нужное значение.
Подключение драйвера шагового двигателя DRV8825 к Arduino UNO.
Подключим двигатель DRV8825 к Arduino UNO по схеме.
Для этого подключаем GND LOGIC к GND на Arduino. Контакты DIR и STEP подключим к цифровым контактам 2 и 3 на Arduino. Подключение шагового двигателя к контактам B2, B1, A2 и A1.
Предупреждение: Подключение или отключение шагового двигателя при включенном приводе может привести к его повреждению.
Затем необходимо подключить контакт RST к соседнему контакту SLP к 5В на Arduino, чтобы включить драйвер. А контакты выбора микрошага необходимо оставить не подключенными, чтобы работал режим полный микрошаг. Теперь осталось подключить питание двигателя к контактам VMOT и GND MOT, главное не забудьте подключить электролитический конденсатор на 100 мкФ к контактам питания двигателя. В противном случае, при скачке напряжения модуль может выйти из строя.
Скетч вращения шагового двигателя NEMA 17, драйвер DRV8825.
Как уже было упомянуто выше, драйвер DRV8825 заменим драйвером A4988, поэтому и код вращения двигателем можно взять из предыдущей статьи: Драйвер шагового двигателя A4988. Но для увеличения кругозора сегодня будем использовать код вращения двигателя nema 17 без использования библиотеки.
Описание скетча:
Для работы данного скетча, не требуется никаких библиотек. Программа начинается с определения выводов Arduino, к которым подключены выводы STEP и DIR. Так же указываем stepsPerRevolution количество шагов на оборот.
В функции void setup() указываем управляющие контакты как выход.
В основной функции void loop(), вращаем двигатель по часовой стрелке, затем против, с разной скоростью.
Подробнее о подключении шаговых двигателей к Ardiono смотрите на сайте Ардуино технологии.
Для более простого подключения шагового двигателя к Arduino или другому микроконтроллеру существуют модули. Модули бывают разные, на фото ниже приведен пример двух различных модулей.
Распиновку и как подключать модуль драйвера DRV8825 будем рассматривать в следующей статье.
Использование драйвера DRV8825 с CNC shield v3.
Драйвер DRV8825 можно установить на CNC shield v3. CNC shield используются для управления ЧПУ станками и облегчают сборку электроники.
Данный набор позволяет без пайки собрать электронику для двух осевых, трех осевых, четырех осевых ЧПУ станков, а также для самостоятельной сборки 3D принтеров. При реализации ЧПУ станков данные шилды используются достаточно часто благодаря своей низкой цене и простоте сборки. Более подробно CNC shield v3 будем рассматривать в следующих статьях.
Вывод можно сделать следующий. Драйвер DRV8825 обладает рядом преимуществ перед драйвером A4988. А также, при использовании драйвера шагового двигателя DRV8825, меньше шума от шаговых двигателей. Это актуально при сборке лазерного гравера, 3D принтера. Когда при работе главный источник шума — это механика и гул шаговых двигателей.
Понравился статья Драйвер шагового двигателя DRV8825? Не забудь поделиться с друзьями в соц. сетях.
А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.
Спасибо за внимание!
Технологии начинаются с простого!
AVR-STM-C++
суббота, 6 апреля 2019 г.
Шаговый двигатель из CD/DVD привода
Попались в мои руки несколько приводов оптических дисков, которые я разобрал. В итоге помимо плат и прочей механики стал обладателем нескольких шаговых двигателей, которые позиционируют лазерную головку. Захотелось их как-то использовать, но информации по ним фактически никакой. После продолжительного и настойчивого гугления информацию я таки нашел и решил поделится ею с вами.
Итак, шаговый двигатель cd rom
Он имеет маркировку 0550902, чуть ниже 15RF 172KP, хотя можно прочитать и слитно, получится 15RF172KP. Так же маркировка на шлейфе 3 e232171. С обратной стороны выгравировано SM15DD — это тип винта двигателя.
После длительных поисков datasheet я нашел каталог продукции фирмы MOATECH, в котором и упоминается данный двигатель из сд привода. Это двигатель SPS-15RF-172KP, в каталоге есть небольшое упоминание SPS-15RF Type, где присутствует позиция 172FH.
Пусть последние буквы маркировки и не совпадают, но думаю, что это одно и то же. Давайте теперь посмотрим, что же это за шаговик такой.
Характеристики шагового двигателя
В табличке есть данные по сопротивлению обмоток, 10 Ом на обмотку, я проверил — мультиметр показал 10 Ом. Так же можно увидеть угол поворота — 18 градусов на шаг. И, самое важное, напряжение питания двигателя — 5 вольт. Идеально для использования с AVR микроконтроллерами или Arduino.
Этот двигатель dvd привода имеет две фазы, видим, что он биполярный (это должно быть и так ясно, исходя из количества выводов). Для таких двигателей необходимы специальные драйвера управления, в следующей статье будем собирать свой драйвер на полевых транзисторах. Это обусловлено их принципом работы. Давайте посмотрим, как управлять биполярным шаговым двигателем.
Распиновка шагового двигателя
Тут все предельно просто, имеем четыре вывода и две обмотки — по два вывода на обмотку.
Я промаркировал выводы обмоток приписав плюс и минус дабы не путаться где первая обмотка, а где вторая, хотя было бы более правильно написать первый вывод и второй.
Управление биполярным шаговым двигателем
Вот и добрались до вопроса как управлять шаговым двигателем. Это довольно сложный процесс в плане реализации, так как из-за наличия двух фаз нужно подавать напряжение на обмотку в разные стороны. Тоесть в какой-то момент мы подаем плюс на первый вывод первой обмотки, на второй вывод этой же обмотки минус, а в какой-то момент нужно подать наоборот — плюс на второй вывод первой обмотки и минус на первый вывод первой обмотки. Для того, чтоб двигатель вращался, ток на обмотки нужно подавать вот в такой последовательности
Я привел схему подачи тока на биполярный шаговый двигатель в виде четырех полных шагов двигателя. Чтоб двигатель вращался, достаточно после четвертого шага выполнить первый шаг и продолжить дальше. Чтоб двигатель вращался в обратную сторону, то шаги нужно выполнять с обратной последовательности, например 4-3-2-1-4-3. и так далее.
Эта схема управления не такая уж сложная, но в плане подачи тока могут возникнуть затруднения. Но об этом мы поговорим в следующей статье, а сейчас давайте вернемся к нашим двигателям. Я описал только один, а у меня их два.
Второй двигатель выглядит точно так же, как и первый, но имеет другую маркировку — 172F p10816H1. Тем не менее это тот же самый SPS-15RF, который с этой же буквой F после 172 есть в первой позиции таблички из каталога. Так что идентификация обоих двигателей успешно произведена, технические характеристики определены и можно приступать к повторному использованию этих шаговиков.