Как подключить сервопривод к ардуино

Подключение сервопривода к Ардуино

Как подключить и управлять сервоприводом Ардуино ► рассмотрим устройство и принцип работы сервоприводов, разберем скетч для управления микро серво мотора.

Рассмотрим на этом занятии устройство и принцип работы сервоприводов. Разберем два простых скетча для управления сервоприводом с помощью потенциометра на Ардуино. Также мы узнаем новые команды в языке программирования C++ — servo.write, servo.read, servo.attach и научимся подключать в скетчах библиотеку для управления сервоприводами и другими устройствами через Ардуино.

Устройство сервомотора (servo) Arduino

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

Что такое сервопривод. Схема устройства сервопривода

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

Управление сервоприводом с помощью широтно импульсной модуляции

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

Как подключить сервопривод к Ардуино

Для этого занятия нам потребуется:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • макетная плата;
  • 1 сервопривод и потенциометр;
  • провода «папа-папа» и «папа-мама».

Схема подключения сервопривода к Arduino обычно следующая: черный провод присоединяем к GND, красный провод присоединяем к 5V, оранжевый/желтый провод к цифровому выводу с ШИМ (Широтно Импульсная Модуляция). Управление сервоприводом на Ардуино достаточно просто, но по углам поворота сервомоторы бывают на 180° и 360°, что следует учитывать при разработке проектов.

Схема подключения сервопривода к Ардуино UNO

Servo Arduino Uno Arduino Nano Arduino Mega
черный провод GND GND GND
красный провод 5V 5V 5V
желтый провод 11 11 11

В первом скетче мы рассмотрим как управлять сервоприводом на Arduino с помощью команды myservo.write(0) . Также мы будем использовать стандартную библиотеку Servo.h . Подключите сервомашинку к плате Ардуино, согласно схеме на фото выше и загрузите готовый скетч. В процедуре void loop() мы будем просто задавать для сервопривода необходимый угол поворота и время ожидания до следующего поворота.

Скетч для сервопривода на Ардуино

Пояснения к коду:

  1. переменная Servo необходима, чтобы не запутаться при подключении нескольких сервоприводов к Ардуино. Мы назначаем каждому приводу свое имя;
  2. команда servo1.attach(10) привязывает привод к цифровому выходу 10.
  3. в программе мы вращаем привод на 0-90-180 градусов и возвращаем в начальное положение, поскольку процедура void loop повторяется циклично.

Управление сервоприводом потенциометром

Ардуино позволяет не только управлять, но и считывать показания с сервопривода. Команда myservo.read(0) считывает текущий угол поворота вала сервопривода и его мы можем увидеть на мониторе порта. Предоставим более сложный пример управления сервоприводом потенциометром на Ардуино. Соберите схему с потенциометром и загрузите скетч в Ардуино для управления сервоприводом.

Скетч для сервопривода с потенциометром

Пояснения к коду:

  1. в этот раз мы присвоили имя для сервопривода в скетче, как servo ;
  2. команда servo.write(analogRead(A0)/4) передает значения для вала сервопривода — получаемое напряжение с потенциометра мы делим на четыре и оправляем данное значение на сервопривод.
  3. команда Serial.println (servo.read(10)) считывает значение угла поворота вала сервопривода и передает его на монитор порта.

Заключение. Сервомоторы часто используются в различных проектах на Ардуино для различных функций: повороты конструкций, движение частей механизмов. Так как серво Arduino постоянно стремится удерживать заданный угол поворота, то будьте готовы к повышенному расходу электроэнергии. Это будет особенно чувствительно в автономных роботах, питающихся от аккумуляторов или батареек.

Используем сервопривод для Ардуино проектов

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

О сервоприводах

Сервопривод Ардуино (англ. – arduino servo) – устройство с электрическим мотором, которое можно повернуть на определенный угол и оставить в этом положении на определенное время.

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

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

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

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

Как это работает

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

Но какой сигнал сервомоторы получают на входе? Это прямоугольная волна, подобная PWM (англ. – pulse-width modulation, широтно-импульсная модуляция). Каждый цикл в сигнале длится 20 миллисекунд, и большая часть времени в значении LOW. В начале каждого цикла значение сигнала становится HIGH на время от 1 до 2 миллисекунд.

При 1 миллисекунде она составляет 0 градусов, а при 2 миллисекундах – 180 градусов, а в промежутке значение от 0 до 180. Это очень хороший и надежный метод. График выше упрощает понимание.

Комплектующие

Нам понадобятся следующие детали:

  1. Плата Arduino (подключенная к компьютеру через USB), подойдет Arduino Uno;
  2. Сервопривод;
  3. Перемычки.

В мире сервомоторов мало известных брендов. Как пример, можно взять Hitec и Futaba, которые являются ведущими производителями сервоприводов для RC-моделей. Но в целом найти подходящий на АлиЭкспресс и подобных сайтах не сложно.

Подключение сервопривода к Ардуино

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

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

  1. Подключите Землю к GND Arduino.Сервомотор имеет гнездовой разъем с тремя контактами. Самый темный или даже черный – это обычно земля.
  2. Подключите кабель питания, который по всем стандартам должен быть красным к 5В на Ардуино.
  3. Подключите оставшийся контакт разъема сервопривода к цифровому выходу на Arduino.

Также ниже приводим пример подключения двигателя и Arduino Diecimilia. Фото найдено на официальном сайте производителя микроконтроллеров.

Для этого варианта подключение следующее:

  1. Подключите красный от сервопривода к +5 В на ардуине.
  2. Подключите черный/коричневый от сервопривода к Gnd на ардуино.
  3. Подключите белый/оранжевый от сервопривода к аналоговому 0 на arduino.

Скетч для сервопривода Ардуино

Скетч ниже заставит сервопривод переместиться в позицию 0 градусов, подождать 1 секунду, затем повернуться на 90 градусов, подождать еще одну секунду, после повернуться на 180 градусов и перейти в первоначальное положение.

Также дополнительно мы используем библиотеку servo – скачайте ниже или в нашем разделе Библиотеки.

Содержимое zip-файла размещается в папку arduino-xxxx/hardware/liraries.

Скетч № 1

Если сервомотор подключен к другому цифровому контакту, просто измените значение servoPin на значение используемого цифрового вывода.

Наш код просто объявляет объект и затем инициализирует сервопривод с помощью функции servo.attach(). Мы не должны забывать подключать серво библиотеку. В цикле мы устанавливаем сервопривод на 0 градусов, ждем, а затем устанавливаем его на 90, а затем на 180 градусов.

Скетч № 2

Второй скетч для варианта с Arduino Diecimilia ниже.

Нам достаточно будет скачать и подключить библиотеку из архива:

Стандартные методы серво-библиотеки

attach(int)

Соединение пина и сервопривода. Вызывает pinMode. Возвращает 0 при ошибке.

detach()

Отсоединение пина от сервопривода.

write(int)

Установка угла сервопривода в градусах, от 0 до 180.

read()

Возвращает значение, установленное write(int).

attached()

Возвращает 1, если серво в настоящее время подключен.

Дополнительные примеры скетчей

Следующий код позволяет вам контролировать серводвигатель на пине 2 с помощью потенциометра на аналоговом 0.

Следующий код – это поворот (пинг/понг) на выводе A0 с переменной скоростью.

Дополнительные возможности

Управление сервоприводами на Ардуино очень простое и мы можем использовать еще несколько интересных фишек.

Контроль точного времени импульса

Ардуино имеет встроенную функцию servo.write(градусы), которая упрощает управление сервомоторами. Однако не все сервоприводы соблюдают одинаковые тайминги для всех позиций. Обычно 1 миллисекунда означает 0 градусов, 1,5 миллисекунды – 90 градусов, и, конечно, 2 миллисекунды означают 180 градусов. Некоторые сервоприводы имеют меньший или больший диапазон.

Для лучшего контроля мы можем использовать функцию servo.writeMicroseconds(микросекунды), которая в качестве параметра принимает точное количество микросекунд. Помните, 1 миллисекунда равна 1000 мкс.

Несколько сервоприводов

Чтобы использовать более одного сервопривода в Ардуино нам нужно объявить несколько серво-объектов, прикрепить разные контакты к каждому из них и обратиться к каждому индивидуально. Итак, нам нужно объявить объекты – столько сколько нам нужно:

Затем нам нужно прикрепить каждый объект к сервомотору. Помните, что каждый сервопривод использует отдельный пин:

В конце концов, мы должны обращаться к каждому объекту индивидуально:

Подключение. Земля сервоприводов идёт на GND Arduino, питание на 5В или VIN (в зависимости от входа). И, в конце концов, каждый привод должен быть подключен к отдельному цифровому выводу.

Вопреки распространенному мнению, сервоприводами не нужно управлять через пины PWM – любой цифровой пин подойдет и будет работать.

Управление мышью

Чтобы управлять серво с помощью мыши, вот простой код:

Вам не обязательно использовать этот код, вы также можете отправлять команды на плату arduino с серийного монитора Arduino IDE. Позиция сервопривода от 0 до 180 – это команды 0 и 180 сек соответственно.

В основном этот код берет позицию mouseX (от 0 до 720) и делит на 4, чтобы получить угол для сервопривода (0-180). Наконец, значение выводится на последовательный порт с префиксом ‘s’.

Примечание: «s» на самом деле должен быть суффиксом, но поскольку это повторяется, это не имеет значения для результата.

Не забудьте сначала проверить с помощью println(Serial.list ()) COM-порт, который следует использовать.

Сервоприводы с непрерывным вращением

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

Например, функция Servo1.write(0) заставит сервомотор вращаться против часовой стрелки на полной скорости. Функция Servo1.write(90) остановит двигатель, а Servo1.write(180) будет вращать вал по часовой стрелке на полной скорости.

Таким сервоприводам нашли несколько применений, но нужно понимать, что они достаточно медленные. Один из вариантов – микроволновая печь, когда есть необходимость в двигателе для вращения продуктов питания. Но будьте осторожны, микроволны – опасное дело!

Arduino для начинающих. Урок 4. Управление сервоприводом

Продолжаем серию уроков “Arduino для начинающих”. Сегодня собираем модель с сервоприводом — это также одна из базовых схем. Сервоприводы используются в робототехнике для управления движениями робота. В посте помимо видео-инструкции листинг программы и схема подключения.

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

Видео-инструкция сборки модели:

Для сборки модели с сервоприводом нам потребуется:

  • плата Arduino
  • 3 провода “папа-папа”
  • сервопривод
  • программа Arduino IDE, которую можно скачать с сайта Arduino.

Компоненты для сборки модели Arduino с сервоприводом

Схема подключения модели Arduino с сервоприводом:

Схема подключения сервопривода на Arduino

Для работы этой модели подойдет следующая программа (программу вы можете просто скопировать в Arduino IDE):

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

Последние четыре команды программы задают угол поворота вала сервопривода и время ожидания (в миллисекундах) до следующего поворота. Эти цифры можно поменять — в видео во втором варианте мы поставили 0-1000-90-1000, что означает поворот на 90 градусов с ожиданием в 1 секунду (1000 миллисекунд), возврат обратно и т.д. (процедура loop повторяется циклично).

Кроме того, в этом уроке мы впервые используем библиотеки.

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

Так выглядит собранная модель Arduino с сервоприводом:

Собранная модель Arduino с сервоприводом

Смотрите также:

Посты по урокам:

  1. Первый урок: Светодиод
  2. Второй урок: Кнопка
  3. Третий урок: Потенциометр
  4. Четвертый урок: Сервопривод
  5. Пятый урок: Трехцветный светодиод
  6. Шестой урок: Пьезоэлемент
  7. Седьмой урок: Фоторезистор
  8. Восьмой урок: Датчика движения (PIR) и E-mail
  9. Девятый урок: Подключение датчика температуры и влажности DHT11 или DHT22

Все посты сайта «Занимательная робототехника» по тегу Arduino.

Наш YouTube канал, где публикуются видео-уроки.

Не знаете, где купить Arduino? Все используемые в уроке комплектующие входят в большинство готовых комплектов Arduino, их также можно приобрести по отдельности. Подробная инструкция по выбору здесь. Низкие цены, спецпредложения и бесплатная доставка на сайтах AliExpress и DealExtreme. Если нет времени ждать посылку из Китая — рекомендуем интернет-магазины Амперка и DESSY. Низкие цены и быструю доставку предлагает интернет-магазин ROBstore. Смотри также список магазинов.

Управление сервоприводом Ардуино

Сегодня мы поговорим про серводвигатели или сервоприводы, можно сказать и так и так.
Рассмотрим 2 модели двигателей.

  1. С фиксированным углом 180° градусов
  2. Сервопривод непрерывного вращения на 360° градусов.

Напишем простой скетч для управления движением одной и двумя сервами.

Если вы посмотрите видео, то там показано как я подключил лазер и управлял им двумя сервоприводами. И даже нарисовал квадрат. Правда на камеру снялось не очень хорошо, но движения были ровными и прямые и углы были чётко выражены.

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

Отличия сервопривода от шагового мотора.

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

Его недостатки – это возможность потери шагов при больших нагрузках.

  • В сервоприводах используется механизм обратной связи, поэтому он может обрабатывать ошибки и исправлять их.

Такая система называется следящей. Про шаговый двигатель я уже делал видео, посмотреть можно на моём канале.
Наиболее популярны типы сервоприводов:

  • сервоприводы которые удерживают заданный угол
  • сервоприводы поддерживающие заданную скорость вращения.

Управлять сервоприводом можно вручную, т.е. написав код самому или с помощью библиотеки Servo.h входящей в состав ARDUINO IDE, или библиотеки Servo2.h, если вам необходимо работать с приёмниками/ передатчиками работающими на частоте 433 МГц.
Библиотека VirtualWire.h используют одно и то же прерывание, что и Servo.h. Это означает, что их нельзя использовать в одном проекте одновременно.

Мы рассмотри вариант с библиотекой, так как он намного проще.

Подключение сервопривода к Ардуино.
Сервопривод обладает тремя контактами, провода которые идут к ним окрашены в разные цвета.

  • Коричневый провод ведет к земле,
  • красный – к питанию +5В,
  • провод оранжевого или желтого цвета – сигнальный.

Не рекомендуется подключать мощные сервоприводы напрямую к плате , т.к. они потребляют большой ток, что может вывести из строя вашу Ардуино или вызовут другие симптому, например перегрузку платы или постоянном “дергании” сервопривода.
Для питания лучше использовать внешние источники, обязательно объединяя земли двух контуров.

Ограничение по количеству подключаемых сервоприводов
На большинстве плат Arduino библиотека Servo.h поддерживает управление не более 12 сервоприводами, на Arduino Mega это число вырастает до значения 48.
При этом есть небольшой побочный эффект использования этой библиотеки: если вы работаете не с Arduino Mega, то становится невозможным использовать функцию analogWrite() на 9 и 10 контактах независимо от того, подключены сервоприводы к этим контактам или нет.

Управление движением сервопривода
Управление движением сервопривода зависит от длинны импульсов.
Частота импульсов 50Гц. – это значит, что импульс срабатывает каждые 20мс.
Длительность импульса.

  • 1520мкс = 90 градусов среднее положение
  • 544мкс = 0 градусов
  • 2400мкс = 180 градусов

В библиотеке Servo.h для Arduino по умолчанию выставлены следующие значения длин импульса: 544 мкс — для 0° и 2400 мкс — для 180°.
Плата управления анализирует сигнал на управляющем проводе, и если информация об угле поворота содержащаяся в сигнале отличается от фактического положения вала, то он поворачивается до тех пор, пока его положение не сравняется с заданным.
Скорость перемещения можно изменять либо путем изменения задержки между шагами функцией delay(), либо путем изменения шага, а именно правкой последнего значения в аргументах цикла — for (pos = 180; pos >= 0; pos -= 1)

Сервопривод SG90.


Характеристики и подключение SG-90
Если вы собрались купить самый дешевый и простой сервопривод, то SG 90 будет лучшим вариантом. Этот сервопривод чаще всего используется в управлении небольшими легкими механизмами с углом поворота от 0° до 180°.

Технические характеристики SG90:

  • Скорость отработки команды 0,12с/60 градусов;
  • Питание 4,8В; Питание 5 вольт допустимо.
  • Рабочие температуры от -30°С до 60°С;
  • Размеры 3,2 х 1,2 х 3 см;
  • Вес 9 г.

Описание SG90.

Скорость поворота – это время поворота на угол 60°;
Крутящий момент (кг/см) – эта величина говорит о том, какой вес в килограммах выдерживает двигатель, при длине рычага в 1 см от вала;
Напряжение питания и потребляемый ток;

Такой сервопривод стоит недорого, поэтому он не обеспечивает точных настроек начальных и конечных позициях.
Для того, чтобы избежать лишних перегрузок и характерного треска, в положении 0° и 180° градусов лучше выставлять крайние точки в 10° и 170°.
При работе устройства важно следить за напряжением питания.
При сильной нагрузке могут повредиться механические элементы зубчатых механизмов, т.к. они пластмассовые.

Сервопривод непрерывного вращения на 360 градусов.

Сервопривод MG995


Сервопривод MG995 является второй по популярности моделью сервоприводов, чаще всего подключаемых к проектам Arduino. Это относительно недорогие сервоприводы, обладающие гораздо лучшими характеристиками по сравнению с SG90. Они выпускаются в двух модификациях, как обычные сервопривода, так и сервоприводы непрерывного вращения. В таком варианте управлять поворотом на определённый угол очень затруднительно, а управлять можно только скоростью и направлением вращения.
При этом важно отметить, что такой сервопривод не может поворачиваться на определенный угол и делать строго заданное количество оборотов.

Подключение сервоприводов к Arduino

Опубликовано 21.03.2013 1:49:00

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

В данной статье рассмотрим что же из себя представляют управляющие импульсы, а также то, как лучше подключать сервоприводы к Arduino.

Используемые компоненты (купить в Китае):

• Управляющая плата

Arduino UNO 16U2, либо более дешевая Arduino UNO CH340G,

Arduino Nano CH340G, либо Arduino MEGA 16U2, либо более дешевая Arduino MEGA CH340G,

• Сервоприводы

• Соединительные провода

Полезная вещь для проверки сервориводов

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

Управляющий сигнал представляет из себя импульсы с нужной нам шириной, которые посылаются с определенной частотой. Для рассматриваемых нами сервоприводов частота посылания импульса почти всегда будет около 50 Гц (это примерно 1 раз в 20мс), а ширина импульса будет лежать в пределе от 544мкс до 2400мкс.

Как видно из картинке, импульс шириной в 544мкс выставит выводной вал в положение 0°, 1520мск соответствует углу в 90°, а 2400мкс соответствует 180°.

Изменяя ширину импульсов в данных пределах мы сможем точно задавать угол поворота выводного вала, но об этом чуть позже. На данном этапе статьи хочется рассказать о том как подключить сервопривод к Arduino.

Для подключения к контроллеру от сервопривода тянется 3 провода обжатых стандартным 3 пиновым разъемом с шагом 2.54мм . Цвета проводов могут варьироваться. Коричневый или черный – земля (GND), красный – плюс источника питания (VTG), оранжевый или белый – управляющий сигнал (SIG).

Подключение сервоприводов к Arduino

У старых Ардуин, укомплектованных мегой 8, имеется всего три ШИМ вывода (digital 9,10,11), у Ардуин укомплектованных мегой 168 или 328 их 6 (digital 3,5,6,9,10,11). Семейство Arduino MEGA имеет на своем борту целых 14 ШИМ выводов.

Один 9G сервопривод, потребляющий слабый ток, еще можно подключить напрямую к Arduino.

GND на любой из GND пинов­­­ ардуино

VTG на + 5 вольт на ардуино

SIG на ШИМ (PWM) вывод ардуино

Подключение пары сервоприводов 9G либо одного мощного сервоприводов, к примеру MG995, может вызвать большую просадку напряжения и контроллеру не хватит питания, мега8 очень привередлива и из-за этого контроллеру не хватит напряжения и он отключится. Так же на плате Arduino установлен маломощный стабилизатор не рассчитанный на потребление большого тока и чрезмерное потребление может перегреть его и повредить плату. Во избежание этого, при использовании мощных серв, либо больше одной слабой, рекомендуем подавать питание на сервопривод отдельно.

• ​ Вариант 1

Можно приобрести блок питания на 5 или 6 вольт, в зависимости от напряжения питания вашего сервопривода и питать сервопривод от него.

• ​ Вариант 1

В случае, если под рукой нет стабилизированного источника питания на 5Вольт, но имеется любой другой источник питания (блок, аккумулятор, сборка из батареек) с напряжением 6-12В, то из него можно легко получить требуемое напряжение для сервопривода. Поможет нам в этом стабилизатор. Рассмотрим самый простой L7805/L7806, требующий минимум деталей внешней обвязки.

Стабилизатор имеет 3 ноги:

1 – Вход. На него подается напряжение от 6 или 7(в зависимости от модели) до 12Вольт

3 – Выход 5 или 6 вольт (в зависимости от модели)

7805 отечественный аналог КР142ЕН5А – выходное напряжение 5Вольт.

7806 отечественный аналог КР142ЕН5Б – выходное напряжение 6Вольт.

Как видно из рисунка необходима установка конденсаторов, можно и без них, но выходное напряжение будет не стабильным. Рекомендуемые номиналы конденсаторов: на входе 0.33 мкФ, на выходе 0.1 мкФ. Я всегда ставлю два электорлита по 100мкФ. Чем больше – тем лучше.

P.S. Не забудьте соединить земли источников питания

Программный код управления

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

• ​ Вариант 1

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

пример программного кода:

• ​ Вариант 2

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

пример программного кода:

Также вам могут понадобиться следующие команды:

myservo.read();
Считывает текущий угол поворота сервопривода, возвращает значение типа int — угол от 0 до 180 градусов.

myservo. attached ();
Проверяем, привязан ли сервопривод. Возвращает логическое значение bool.

myservo. detach ();
Отключает сервопривод от пина.

Цикл статей о сервоприводах:

Купить в России сервоприводы различных размеров

А как же комментарии?

В данный момент еще реализованы не все элементы нашего сообщества. Мы активно работаем над ним и в ближайшее время возможность комментирования статей будет добавлена.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий