Те сервомашинки которые предназначены для хобби (моделистов, роботостроителей) в отличии от взрослых сервоприводов не имеют обратной связи. Вернее имеют, но внутри себя. Микроконтроллер который внутри таких машинок принимает управляющий сигнал, выставляет положение ротора по сопротивлению переменного резистора установленного на оси. И всё. Потом удерживает это положение пока не изменится ширина управляющих импульсов.
Пользуясь небольшим поворотом темы в сторону ШД, покажу ещё один модуль из Мастер Кит - BM9310. Он специально создан для работы с шаговыми или DC коллекторными двигателями.
Схема
Видео
Фото:
В зависимости от драйвер который заливается в модуль он может управлять:
Двумя ШД или четырьмя DC моторами (ШИМ).
Драйвер для ШД:
http://www.masterkit.ru/BM93XX.RU/drive ... motors.hex
Команды:
Для ШД №1
в ячейках
RAM 0x00, 0x01 – задание по кол-ву шагов. Младший и старший байт соответственно.
RAM 0x02 – текущий размер шага и направление.
. . . . . . . 40h=шаг (+), 20h=полушаг (+)
. . . . . . . C0h=шаг (-), E0h=полушаг (-)
RAM 0x03 – регистр состояния
. . . . . . . бит 7 -> 1 => останов по счетчику шагов (выполнение НЕ сбрасывает бит 2)
. . . . . . . бит 6 -> 1=> останов по срабатыванию датчиков начала/конца (выполнение Сбрасывает бит 2)
. . . . . . . бит 2 -> 1=> разрешить выполнение заданий
. . . . . . . бит 1 -> 0=> выключать ток после задания
. . . . . . . остальные биты = 0
RAM 0x04, 0x05 – длительность шага. Младший и старший байт соответственно.
RAM 0x06 – текущее состояние ротора.
Для ШД №2 аналогично в RAM 0x10 ….. RAM 0x16
Драйвер для DC моторов:
http://www.masterkit.ru/BM93XX.RU/drive ... motors.hex
Команды для DC моторов:
В ячейках RAM 0x000…0x003 – значения для каждого двигателя:
В каждом байте:
биты 6…0 ->128 градаций ШИМ
бит 7 направление вращения вала
Учу технику жить.