В этом уроке вы узнаете, как управлять шаговыми двигателями с помощью энкодера. Мы будем использовать недорогой и популярный шаговый двигатель, который идет в комплекте
Плата управления: шаговый двигатель 28BYJ-48 с платой ULN2003. Мотор 28BYJ-48
не очень быстрый и не очень мощный, но он отлично подходит для начинающих, чтобы
начать экспериментировать с управлением шаговым двигателем с помощью Arduino.
Мы напишем код, чтобы двигатель двигался в том направлении, в котором мы
поворачиваем поворотный энкодер, а также будет отслеживать, сколько шагов мы
сделали, чтобы мы могли вернуть двигатель в исходное положение, нажав на
переключатель поворотного энкодера.
Необходимые компоненты:
Угловой энкодер, также называемый датчиком положения вала, представляет собой
электромеханическое устройство, которое преобразует угловое положение или
движение вала или оси в аналоговый или цифровой код. Существует два основных
типа: абсолютный и инкрементный (относительный). Выход абсолютного энкодера
показывает текущее положение вала, делая их угловыми преобразователями.
Выходные данные инкрементальных энкодеров предоставляют информацию о движении
вала, которое далее обрабатывается в другом месте в различную информацию,
такую как скорость, расстояние и положение. Датчики вращения используются во
многих приложениях, где требуется неограниченное вращение - в том числе
промышленное управление, робототехника, специальные фотографические линзы,
компьютерные устройства ввода (такие как оптомеханические мыши и трекболы),
реометры контролируемого напряжения и вращающиеся радарные платформы.
После подключения откройте программу в папке с кодами Урок 33.
Управление шаговым двигатель с поворотным энкодером и нажмите кнопку
Загрузить, чтобы загрузить программу. См. Урок 2 для
получения подробной информации о загрузке программы при наличии ошибок.
Прежде чем запустить, убедитесь, что вы установили библиотеку
Stepper или при необходимости переустановите её.
В противном случае ваш код не будет работать. Подробнее о загрузке файла
библиотеки см. Урок 1.
Мы используем некоторые переменные для хранения текущей позиции, так как мы
хотим сохранить отслеживание положения шагового двигателя, чтобы мы могли
вернуть его в начальную позицию. Мы также включили код проверки ошибок, чтобы
убедиться, что поворотный энкодер не пропускает шаги, так как это сделало бы
положение нашего мотора неточным.
Пример: