Контроллер биполярного шагового двигателя на ATtiny24

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

Логически схема разбита на четыре части. Как вы это уже будете размещать в своей конструкции зависит только от вас. Секцию «драйвер шагового двигателя» и собственно двигатель выбираете вы, на стабилизаторе MC34063 я тоже не буду останавливаться, она всего лишь понижает напряжение питания до 8в. О MC34063 не знает только ленивый. Остановлюсь на контроллере и схеме управления. Контроллер имеет четыре вывода управления ШД. На них в порядке A1-B1-A2-B2 и обратном появляются управляющие импульсы с частотой примерно от 15гц до 1300гц. Кнопка «старт» запускает / останавливает процесс. Кнопка «выбор» перебирает по кругу восемь предустановленных скоростей. Выбор скорости производится только когда двигатель не крутится. Данные о скорости хранятся в энергонезависимой памяти. Также туда сохраняется номер последней скорости. Первые семь скоростей прямые, т.е. A1-B1-A2-B2, восьмая реверс — т.е. — B2-A2-B1-A1. И наконец самое интересное — все восемь скоростей «программируются» пользователем без правок кода и программатора! Для этого выполняем следующую последовательность действий:
1. Замыкаем переключатель «обучение»
2. Выбираем скорость, которую будем «обучать»
3. Жмем «старт»
4. Переменным резистором «скорость» устанавливаем требуемую скорость.
5. Жмем «старт» — скорость запомнена для того номера на котором находились.
6. Размыкаем «обучение» — возвращаемся к нормальной работе.
Как побочный эффект — можно пользовать режим «обучения» для плавной регулировки переменным резистором. Тогда этот выключатель и резистор выносят на переднюю панель.

Теперь немного о конструкции:
На ATtiny24 выбор пал как на самый подходящий контроллер по количеству лап и наличию АЦП. Для оптимизации использования ног вывод на светодиоды производится через сдвиговый регистр 74HC164, также отдельно «оптимизирована» кнопка «выбор», которая по совместительству является и линией данных регистра. Итого от контроллера до клавиатуры имеем пять проводков. В целом не так и плохо для восьми светодиодов и двух кнопок. Микроконтроллер тактируется кварцем на 8мгц, потому скорость вращения можно смело считать стабилизированной.

Да вот в общем то и все… Добавить тут что-либо очень сложно. Ах да! Во избежание возникновения сквозных токов в моментах переключения A1—>B1 и т.д. реализован deadtime. Я драйвер для тестов делал простейший на транзисторах, размещено все конструктивно на двух платах — клавиатура и все остальное. Плату прилагаю внизу для извлечения оттуда фрагментов «разводки», потому как в целом виде вряд ли кому-то будет нужна. И в конце, как всегда фузы.

Файлы:
Прошивка контроллера
Прошивка EEPROM с предустановленными скоростями


Требуется контроллер управление шаговым двигателем FL28S TH-0674A для домашней игрушки «Качели». Двигатель вращает небольшую шестеренку, которая перемещается по стационарному зубчатому сектору. Поворачивающееся с ней основание будет качать установленные сверху маленькие качели с куклой. Питание от вставляемого сбоку аккумулятора мобильного телефона. Корпус деревянный. Для размещения платы сбоку есть ниша длиной 130 мм, шириной 35 мм, глубиной 20 мм. Выводы для удобного соединения снаружи с аккумулятором под ней с середины широкой стороны платы, соединение с двигателем — с боковой стороны. Режим работы — периодические, циклами с паузами в течение часа, качания качелей.


12.12.2013 в 21:46

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


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


Программное подавление дребезга контактов в прошивке разумеется есть. У меня проблем не было (с обычными тактовыми кнопками). Но если Вы настаиваете — вот прошивка с увеличенной задержкой (в 4 раза) для подавления дребезга контактов:
http://www.aliot.com.ua/files/motor_t24/long_key_delay.zip


Авторские права © 2014 ALIOT — Лаборатория Практической Электроники.