Как работает сервомотор SG90 и как его подключить к ESP32


Сервомотор (серводвигатель) – это двигатель, используемый для точного управления движениями устройства. Обычно он состоит из электродвигателя постоянного тока, схемы управления и механизма обратной связи. Механизм обратной связи необходим для получения информации о положении оси двигателя – она необходима схеме управления для управления двигателем. Сервомоторы находят широкое применение в робототехнике, станках с ЧПУ, 3D принтерах и других устройствах, где требуется точное управление каким либо механизмом.

Внешний вид проекта подключения сервомотора SG90 к модулю ESP32

В данной статье мы рассмотрим принципы работы сервомотора SG90 и его подключение к модулю ESP32. Также на нашем сайте мы рассматривали подключение серводвигателя к другим микроконтроллерам (платам):

Необходимые компоненты

  1. Модуль ESP32 (купить на AliExpress).
  2. Сервомотор SG90 (купить на AliExpress).

Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158

Как управлять углом поворота сервомотора?

Работа сервомотора состоит в управлении углом поворота оси в системе с замкнутым циклом управления и использовании механизма обратной связи (feedback) для настройки скорости и угла поворота оси.

Схема работы составных частей сервомотора

Сервомотор SG90, который мы будем использовать в нашем проекте, представляет собой систему с замкнутым циклом управления. Чтобы управлять углом поворота его оси необходим сигнал ШИМ (широтно-импульсной модуляции) с частотой 50 Гц и изменяемым коэффициентом заполнения. Его плата управления настроена таким образом, чтобы принимать импульс каждые 20 мс, длина этого импульса определяет угол поворота оси сервомотора. Если импульс имеет длительность 1 мс, то ось сервомотора будет в нулевом положении (0 градусов). Импульс длительностью 1,5 мс повернет ось сервомотора на угол 90 градусов, а импульс длительностью 2 мс – на угол 180 градусов.

Компоненты сервомотора SG90

SG90 является одним из самых дешевых и распространенных серводвигателей, его компоненты показаны на следующем рисунке.

Компоненты сервомотора SG90

Как вы можете видеть из представленного рисунка, сервомотор SG90 состоит из понижающего редуктора, двигателя постоянного тока, потенциометра и платы управления. Потенциометр обеспечивает механизм обратной связи – текущая позиция оси сервомотора сравнивается с ее требуемой позицией.

Распиновка сервомотора SG90

Большинство сервомоторов, доступных в настоящее время на рынке, имеют 3 провода. Распиновка (назначение контактов) сервомотора SG90 представлена на следующем рисунке.

Распиновка (назначение контактов) сервомотора SG90

GND – контакт общего провода (земли).

VCC – контакт для подачи питающего напряжения на сервомотор.

Control – управляющий контакт сервомотора.

Наиболее часто задаваемые вопросы про сервомотор

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

Для чего используются сервомоторы?
Сервомоторы – это линейные исполнительные механизмы, которые могут поворачивать свою ось строго на определенный угол, поэтому используются в устройствах, в которых необходима точная регулировка положения какого либо механизма.

Сервомотор работает от постоянного (DC) или переменного тока (AC)?
Существует два типа сервомоторов – работающие от постоянного и переменного тока. Основное различие между ними заключается в способе подачи на них питания. Сервомоторы переменного тока получают питание от розетки, а сервомоторы постоянного тока – от батареек (аккумуляторов).

Какие существуют типы сервомоторов?
Сервомоторы выпускаются различных размеров трех основных типов: с позиционным вращением, непрерывным вращением и линейным вращением. Серводвигатели с позиционным вращением могут поворачиваться на 180 градусов. Они также имеют специальный механизм остановки в понижающем редукторе, играющий защитную функцию.

В чем разница между двигателем постоянного тока и сервомотором?
Сервомотор состоит из 4-х основных механизмов: двигателя постоянного тока, понижающего редуктора, датчика положения и схемы управления, а двигатель постоянного тока сам по себе является отдельным механизмом и не включает в себя никаких дополнительных компонентов.

Схема проекта

Схема подключения сервомотора SG90 к модулю ESP32 представлена на следующем рисунке.

Схема подключения сервомотора SG90 к модулю ESP32

Как видите, схема подключения достаточно проста. Необходимо подать питание на сервомотор, а его управляющий контакт подключить к любому цифровому контакту (GPIO pin) модуля ESP32.

Внешний вид собранной на макетной плате конструкции проекта показан на следующем рисунке.

Внешний вид собранной на макетной плате конструкции проекта

Объяснение кода программы

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

Прежде чем приступать к написанию программы вам необходимо скачать библиотеку esp32 servo motor и установить ее в Arduino IDE.

Первым делом в коде программы подключим библиотеку Servo.h и создадим объект для работы с сервомотором. Затем объявим переменную pos, в которой будем хранить информацию о положении оси сервомотора.

В функции setup() мы с помощью метода attach "прикрепим" сервомотор к контакту 26 модуля ESP32.

В функции void loop() мы запрограммируем два цикла, в одном из которых мы будем поворачивать ось сервомотора от 0 до 180 градусов, а в другом – от 180 градусов до 0. Этот процесс будет продолжаться бесконечно до тех пор пока на наш проект подается питание.

Тестирование работы проекта

На следующем видео показано тестирование работы нашего проекта. Как мы запрограммировали в коде программы, ось сервомотора будет сначала поворачиваться от 0 до 180 градусов, а потом от 180 градусов до 0.

Возможные проблемы при работе с сервомотором

Иногда сервомоторы не очень хорошо работают если они запитываются от модуля ESP32. Поскольку вначале работы сервомотор потребляет достаточно большой ток, то возникающий при этом импульс тока может сбросить микроконтроллер или даже повредить его. Для решения этой проблемы можно использовать включение электролитического конденсатора большой емкости (470 - 1000 мкФ) между контактами GND и 5V модуля ESP32. В данном случае конденсатор будет играть роль своеобразного хранилища и будет защищать модуль во время потребления сервомотором большого тока. У подобного конденсатора два вывода - более длинный необходимо подключить к контакту 5V модуля ESP32, а более короткий - к общему проводу модуля.

Исходный код программы

Источник статьи

(Проголосуй первым!)
Загрузка...
2 714 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *