Мы в социальных сетях

подчеркивание красное для правой колонки

Наш официальный YouTube канал

подчеркивание красное для правой колонки

Урок 2. Управление сервоприводом на Arduino

Продолжаем серию уроков “Arduino для начинающих”. Сегодня мы с вами научимся управлять с помощью Arduino прибором, который называется "сервопривод" И так начнем с понятия о сервоприводе.

Понятие сервопривода

Сервоприводы используются в робототехнике для управления фото сервоприводадвижениями робота.

Сервопривод — это мотор, положением вала которого мы можем управлять.

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

Вы спросите, как выглядит сервопривод внутри... А вот как!

Устройство сервопривода

фото сервопривода в разрезе c подробным описанием

Привод — электромотор с редуктором. Чтобы преобразовать электричество в механический поворот, необходим электромотор. Однако зачастую скорость вращения мотора бывает слишком большой для практического использования. Для понижения скорости используется редуктор: механизм из шестерней, передающий и преобразующий крутящий момент.


Включая и выключая электромотор, можно вращать выходной вал — конечную шестерню сервопривода, к которой можно прикрепить нечто, чем мы хотим управлять. Однако, для того чтобы положение контролировалось устройством, необходим датчик обратной связи — энкодер, который будет преобразовывать угол поворота обратно в электрический сигнал. Для этого часто используется потенциометр. При повороте бегунка потенциометра происходит изменение его сопротивления, пропорциональное углу поворота. Таким образом, с его помощью можно установить текущее положение механизма.


Кроме электромотора, редуктора и потенциометра в сервоприводе имеется электронная начинка, которая отвечает за приём внешнего параметра, считывание значений с потенциометра, их сравнение и включение/выключение мотора. Она-то и отвечает за поддержание отрицательной обратной связи.


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


Итак мы ознакомились с данным устройством и теперь перейдем непосредственно к подключению. Ознакомимся с необходимыми компонентами для подключения.

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

  • плата Arduino
  • Breadboard (макетная плата для удобного подключения приборов к Arduino)
  • Провода
  • Сервопривод
компоненты для подключения сервопривода к Arduino

Мы приготовили необходимые компоненты для подключения и теперь перейдем непосредственно к самому подключению.

Схема подключения

Сервопривод имеет три провода - коричневый (черный) , красный и оранжевый (желтый ), поэтому их нужно правильно подключить, снизу вы увидите схему подключения. Обратите внимание и запомните навсегда - подключение какого-либо прибора к Arduino влияет на написание скетча. То есть при другом подключении порта сервопривода придется изменить пиновку в скетче.

подробная схема подключения сервопривода к arduino конец-сервопривод

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


Библиотека — это набор дополнительных команд, который позволяет вводить программу в упрощенном формате.


Здесь мы используем библиотеку для работы с сервоприводами Servo.h.

Для работы с этой библиотекой её нужно скачать и установить.


Скачать библиотеку можно здесь .


После того, как мы скачали нужную библиотеку, ее нужно правильно установить. скачанные файлы нужно переместить по следующему пути :

Диск C стрелка Progtam Files стрелка Arduino стрелка Libraries

папка с экрана

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

Программирование

Для начала нам нужно скопировать скетч представленный ниже, а чуть-чуть дальше мы разберем его детально.

#include <Servo.h> /*используем библиотеку для работы с сервоприводом */
Servo servo; //объявляем переменную servo типа Servo
void setup() //процедура setup
{
servo.attach(10); //привязываем привод к порту 10
}
void loop() //процедура loop
{
servo.write(90); //ставим вал под 90 градусов
delay(2000); //ждем 2 секунды
servo.write(180); /*ставим вал под 180 градусов, сервопривод поворачивается по часовой стрелке */
delay(2000); // ждем 2 секунды
servo.write(0);
/*ставим вал под 0 градусов, сервопривод поворачивается против часовой стрелки */
delay(2000); // ждем 2 секунды
}

Детальное пояснение скетча

Итак приступим, про первые четыре команды я не стану повторяться, ведь про них вы рассказывали на первом уроке


Последние четыре команды программы задают угол поворота вала сервопривода servo.write(угол поворота) и время ожидания (в миллисекундах) до следующего поворота delay(время) .

У вас появится вопрос :"Когда сервопривод поворачивается налево, а когда направо?" или "Как сделать, чтобы сервопривод поворачивался в определенную сторону?"

Наш совет, в качестве начального положения лучше всего устанавливать сервопривод на угол равный 90 градусам, почему вы поймете позже. Предположим, что после этой команды сервопривод должен повернуть направо, тогда вам нужно задать угол больший, чем 90 градусов, но не привышающий 180 градусов. Соответственно, чтобы вал сервопривода повернул налево, вам необходимо установить в скетче угол меньший чем 90 градусов и до 0 градусов. Как вы видите, все очень просто! В нашем примере сервопривод поворачивается как налево, так и направо для большей наглядности.


Я надеюсь что у вас все получилось, и вы все поняли, ведь наш сайт создан для этого. Если вам понравился этот урок, то вы можете поделиться им в соц.сетях.


Вам возможно будет интересно

Комментарии