Создаем робота-андроида своими руками
Шрифт:
Рис. 10.8. Основная принципиальная схема управления вращением шагового двигателя
В этой схеме управление дополнительными функциями осуществляется с помощью трех выключателей. Выводы ИС, с которыми соединены эти выключатели, могут также управляться с помощью шин ввода/вывода микроконтроллера того же типа. Выключатель, соединенный с выводом 15, управляет состоянием выхода. При подаче высокого потенциала выход ИС UCN-5804 отключается и происходит остановка ШД.
Выключатель, соединенный с выводом 14, управляет направлением вращения ШД (по часовой стрелке или против часовой стрелки). Переключатель, соединенный с выводом 10 ИС UCN-5804, переключает ШД в режим полного или половинного шага. Когда на вывод 10 подан высокий потенциал, то ШД находится в режиме половинного шага. Такой режим удваивает разрешение ШД. Например, двигатель, который мы используем, имеет разрешение 1,8° на шаг. При включении режима половинного шага разрешение увеличится до 0,9° на шаг, и соответственно скорость вращения уменьшится вдвое. При подаче на вывод 10 низкого уровня ШД переключится в режим полного шага.
Присоединение ведущего колеса к валу ШД
Присоединение ведущего колеса к валу ШД может представлять определенную проблему. На рис. 10.9 показан один из вариантов ее простого решения. Найдите пластмассовую шестерню большого диаметра с фиксирующим винтом. Осевое отверстие шестерни должно совпадать с диаметром вала ШД. Приложите шестерню к ведущему колесу по центру. Просверлите три сквозных отверстия на окружности шестерни через 120°. Скрепите ведущее колесо и шестерню с помощью винтов, гаек и шайб. Затем наденьте шестерню на вал ШД и закрепите ее фиксирующим винтом.
Рис. 10.9. Соединение ведущего колеса с валом двигателя
Использование микроконтроллера для управления ШД
Для изучения принципов работы ШД изготовим схему управления ШД с помощью микроконтроллера PIC 16F84.
Начальная схема управления
На рис. 10.10 показан первый тестовый вариант схемы управления ШД. Для буферизации выходных сигналов с шин PIC 16F84 использованы шестнадцатеричные буферы типа 4050. Сигнал с выхода каждого буфера подается на транзистор NPN типа. В качестве таких транзисторов в действительности использованы NPN транзисторы TIP 120 Darlington, но на схеме они обозначены как обычные NPN транзисторы. Транзисторы TIP 120 использованы в схеме в качестве электронных ключей, обеспечивающих своевременное включение обмоток ШД.
Рис. 10.10. Схема микроконтроллера шагового двигателя
Диоды, включенные параллельно транзисторам, обеспечивают гашение импульсов тока, возникающих в индуктивностях обмоток ШД. Диоды обеспечивают безопасную блокировку обратных токов. Если исключить диоды из схемы, то многократно возрастет вероятность пробоя транзисторов обратным током.
Шаговые двигатели
На рис 10.11. изображена эквивалентная электрическая схема используемого нами двигателя. Двигатель имеет шесть проводников, выходящих из его корпуса.
Рис. 10.11. Схема выводов однополярного шагового двигателя
Предположим, что мы только что взяли двигатель в руки и ничего не знаем о его внутреннем строении. Как я уже говорил ранее, наиболее простым путем выяснить внутреннюю распайку обмоток является измерение электрического сопротивления между выводами. Составив таблицу сопротивлений, измеренных между выводами, вы легко определите, какой вывод присоединен к какой из обмоток.
На рис. 10.12 изображено, какие сопротивления имеет используемый нами двигатель. Между центральным выводом и концами обмоток сопротивление составляет 13 Ом, соответственно между концами обмоток сопротивление имеет значение 26 Ом. Сопротивление между парами соединенных обмоток равно, соответственно, бесконечности (отсутствие соединения). Например, если мы измерим сопротивление между коричневым и голубым проводником, то прибор покажет бесконечность. Вооружившись этими данными, мы сможем правильно включить обмотки ШД в схему.
Рис. 10.12. Сопротивление между выводами однополярного шагового двигателя
Программа для тестовой схемы управления
После того как тестовая схема управления изготовлена, необходимо запрограммировать PIC-микроконтроллер с помощью следующей программы на языке BASIC. Программа является очень простой и короткой, чтобы показать, насколько просто обеспечить вращение ШД. В таблице 10.3 показано, как на каждом шаге включается соответствующий транзистор. Используйте таблицу 10.3 для слежения за логикой BASIC программы. Когда вы достигаете до конца таблицы, то последовательность повторяется, начиная с начала.
‘Контроллер шагового двигателя
Symbol TRISB = 134 ‘Инициализировать TRISB как 134
Symbol PortB = 6 ‘Инициализировать PortB как 6
Symbol ti = b6 ‘Инициализировать ti как задержку
ti = 25 ‘Задержка 25 мс
poke TRISB,0 ‘Установить шины PORTB на выход
start: ‘Последовательность движения вперед
poke portb,1 ‘Шаг 1
pause ti ‘Задержка
poke portb,2 ‘Шаг 2
pause ti ‘Задержка
poke portb,4 ‘Шаг 3
pause ti ‘Задержка
poke portb,8 ‘Шаг 4
pause ti ‘Задержка
goto start ‘Повторение
При полном шаге для завершения полного оборота ШД требуется 200 импульсов (360° /1,8° на шаг). Подсчет количества импульсов позволяет PIC-микроконтроллеру управлять и позиционировать ротор ШД.
Вторая программа на PICBASIC
Вторая программа на PICBASIC является гораздо более гибкой. Пользователь может изменять параметры программы (время задержки) во время ее работы с помощью одного из четырех выключателей, соединенных с портом А. При нажатии кнопки 1 время задержки между импульсами увеличивается, и соответственно ротор ШД вращается медленнее. Кнопка 2 обладает противоположным действием. При нажатии кнопки 3 двигатель останавливается и находится в режиме ожидания, пока эта кнопка нажата. Кнопка 4 управляет направлением вращения ШД (по часовой стрелке или против часовой стрелки). Нажатие кнопки 4 изменяет направление вращения на противоположное. Реверсирование направления вращения сохраняется на все время нажатия кнопки.
‘Контроллер вращения ШД
Symbol TRISB = 134 ‘Инициализация TRISB как 134
Symbol TRISA = 133 ‘Инициализация TRISA как 133
Symbol PortB = 6 ‘Инициализация portb как 6
Symbol PortA = 5 ‘Инициализация porta как 5
symbol ti = b6 ‘Начальное время задержки
ti = 100 ‘Установка времени задержки 100 мс
Poke TRISB,0 ‘Установка PORTB как выхода
start: ‘Вращение ШД вперед
poke portb, 1 ‘Шаг 1
pause ti ‘Задержка
poke portb,2 ‘Шаг 2