В этом уроке мы собираемся управлять серводвигателем от ARDUINO UNO. Сервомоторы используются там, где требуется точное перемещение или положение вала. Они не предлагаются для высокоскоростных приложений. Они предлагаются для работы с низкой скоростью, средним крутящим моментом и точным позиционированием. Эти двигатели используются в роботизированных манипуляторах, системах управления полетом и системах управления.
Серводвигатели доступны в различных формах и размерах. У серводвигателя в основном есть провода: один для положительного напряжения, другой - для заземления, а последний - для установки положения. КРАСНЫЙ провод подключается к источнику питания, черный провод подключается к земле, а ЖЕЛТЫЙ провод подключается к сигналу.
Серводвигатель - это комбинация двигателя постоянного тока, системы управления положением, шестерен. Положение вала двигателя постоянного тока регулируется управляющей электроникой в сервоприводе в зависимости от продолжительности включения сигнала ШИМ на выводе SIGNAL.
Проще говоря, управляющая электроника регулирует положение вала, управляя двигателем постоянного тока. Эти данные о положении вала передаются через СИГНАЛЬНЫЙ штифт. Данные о положении в систему управления должны быть отправлены в виде сигнала ШИМ через сигнальный контакт серводвигателя.
Частота сигнала ШИМ (широтно-импульсная модуляция) может варьироваться в зависимости от типа серводвигателя. Важным моментом здесь является ДОПОЛНИТЕЛЬНОСТЬ ШИМ-сигнала. На основании этого ОБЯЗАННОСТИ управляющая электроника регулирует вал.
Как показано на рисунке ниже, для перемещения вала на 9 ° СООТНОШЕНИЕ ВКЛЮЧЕНИЯ должно быть 1/18. 1 мс времени включения и 17 мс времени выключения для сигнала 18 мс.
Чтобы вал был перемещен на 12o часов, время включения сигнала должно быть 1,5 мс, а время выключения - 16,5 мс. Это соотношение декодируется системой управления в сервоприводе, и она регулирует положение на основе этого. Этот ШИМ здесь генерируется с помощью ARDUINO UNO.
Компоненты схемы
Аппаратное обеспечение: ARDUINO UNO, блок питания (5 В), конденсатор 100 мкФ, кнопки (две штуки), резистор 1 кОм (две штуки), серводвигатель (который необходимо протестировать).
Программное обеспечение: Arduino IDE (Arduino nightly).
Принципиальная схема и объяснение серводвигателя Arduino
В обычных случаях нам нужно перейти к регистрам контроллера для настройки частоты и получения требуемого коэффициента заполнения для точного управления положением сервопривода, в ARDUINO нам не нужно этого делать.
В ARDUINO у нас есть предопределенные библиотеки, которые будут соответственно устанавливать частоты и коэффициенты заполнения после вызова или включения файла заголовка. В ARDUINO нам просто нужно указать положение сервопривода, которое необходимо, и ШИМ автоматически настраивается UNO.
Что нам нужно сделать для получения точного положения сервопривода:
|
Сначала нам нужно установить частоту сигнала ШИМ, и для этого мы должны вызвать «#include
Теперь нам нужно определить имя сервопривода «Servo sg90sevo», здесь выбрано имя «sg90servo», поэтому при написании зелья мы будем использовать это имя, эта функция пригодится, когда у нас есть много сервоприводов для управления, с помощью этого мы можем управлять восемью сервоприводами.
Теперь мы сообщаем UNO, где подключен сигнальный вывод сервопривода или где он должен генерировать сигнал ШИМ. Для этого у нас есть «Sg90.attach (3);», здесь мы сообщаем UNO, что подключили сигнальный контакт сервопривода к PIN3.
Все, что осталось, это установить положение, мы собираемся установить положение сервопривода с помощью «Sg90.write (30);», по этой команде стрелка сервопривода перемещается на 30 градусов, вот и все. После этого всякий раз, когда нам нужно изменить положение сервопривода, нам нужно вызвать команду «Sg90.write (required_position_ angle);». В этой схеме у нас будет две кнопки: одна кнопка увеличивает положение сервопривода, а другая - для уменьшения положения сервопривода.
Обучающее управление Ардуиным Серводвигатель поясняется шаг за шагом кода C, приведенным ниже.