Сервопривод – это вращающийся исполнительный механизм с контролем положения. Он состоит из корпуса, печатной платы, безякорного мотора, шестерни и датчика положения. Приемник или микроконтроллер (MCU) передает сигнал на сервопривод. Мотор имеет встроенную эталонную схему, которая выдает эталонный сигнал с циклом 20 мс и шириной 1,5 мс. Мотор сравнивает полученное смещение постоянного тока с напряжением потенциометра и выдает разницу напряжений. Микросхема на плате определяет направление вращения и управляет мотором. Шестерня передает усилие на вал. Датчик определяет, достигнута ли заданная позиция, согласно обратному сигналу. Сервоприводы используются в системах управления, требующих удержания разных углов. Когда скорость мотора определена, шестерня заставляет потенциометр вращаться. Когда разница напряжений уменьшается до нуля, мотор останавливается. Обычно угол вращения находится в пределах 0-180 градусов.
Сервоприводы имеют множество спецификаций, но все они имеют три провода подключения, различающихся по цвету: коричневый, красный, оранжевый (у разных брендов цвета могут отличаться). Коричневый провод – GND, красный – питание, оранжевый – сигнальная линия.
Угол поворота сервопривода контролируется путем регулирования скважности PWM (широтно-импульсной модуляции) сигнала. Стандартный цикл PWM сигнала – 20 мс (50 Гц). Теоретически ширина распределяется между 1 мс и 2 мс, но на практике она находится в диапазоне от 0,5 мс до 2,5 мс. Ширина соответствует углу поворота от 0° до 180°. Однако у разных брендов моторов один и тот же сигнал может иметь разные углы поворота.
Теперь, освоив базовые знания, давайте научимся управлять сервоприводом. В этом эксперименте вам понадобятся только сервопривод и несколько соединительных проводов.
Подключение и пример программы
Есть два способа управления сервоприводом с помощью Arduino. Один из них – использовать обычный цифровой порт Arduino для создания прямоугольной волны с разной скважностью, имитируя PWM сигнал, и затем использовать этот сигнал для управления положением мотора. Другой способ – напрямую использовать функцию Servo библиотеки Arduino для управления мотором. Этот способ проще, но он может управлять только двухконтактным мотором, так как для функции сервопривода можно использовать только цифровые пины 9 и 10. Мощность Arduino ограничена, поэтому для управления более чем одним мотором потребуется внешнее питание.
Подключение
- Коричневый провод (GND) подключите к GND на Arduino.
- Красный провод (VCC) подключите к 5V на Arduino.
- Оранжевый провод (сигнал) подключите к цифровому пину 9 на Arduino.
Схема подключения
Пример кода
|
Результат
Когда вы вводите число в серийный монитор, мотор поворачивается на угол, соответствующий введенному числу, и значение угла отображается на экране, как показано на изображении ниже.