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

Содержание

SG90 сервопривод Управление кнопками

Управляя кнопками можно разработать определённые сценарии движения. Для этого sg90 сервопривод как нельзя лучше можно применить. Он дешёвый, sg90 можно подключить и к Ардуино и к ESP8266. Управление сервомотором простейшее, используя библиотеку SERVO для перемещения надо всего лишь задать угол поворота, а написав небольшой цикл, можно задать скорость вращения сервомотора. А ещё micro servo sg90 – это действительно очень маленькие моторы.

Сервопривод SG90 или как его называют сервомотор часто применяется в разработках на Ардуино или в ESP проектах. Подключение сервомотора очень простое всего 1 провод и питание. Управление это лишь надо указать в какое положение повернуть серво. Micro servo sg90 это самые распространённые сервомоторы. Они дешёвые и надёжные. Для них разработана библиотека и большое количество доступного кода. Подключить сервомотор можно за 2-3 минуты, абсолютно не уменя программировать.

Сегодня я расскажу как управлять сервомотором при помощи кнопок. Подключать сервомотор будем к ESP8266, но вы можете подключить и к Ардуино. Для этого вам всего лишь надо поменять название пинов к которым вы подключите Сервомотор.
Сегодня нам понадобятся два сервомотора. Можно взять любые. Я взял SG90 так как это самые распространённые серво. Три кнопки. Так как будем делать пример с тремя положениями. Открытие наружу, закрытие и открытие внутрь.
Ну и как я говорил, я использую плату ESP так как по просьбе своих подписчиков, я этот пример использую для работы с Телеграм.

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

Рассмотрим схему подключения. Здесь ничего сложного. Кнопки подключаем одним контактом к земле, а вторым к соответствующему пину платы. Так как внешних резисторов я не использовал, то в скетче подключил внутренние. Так называемую внутреннюю подтяжку.
Для питания сервомоторов желательно использовать внешний источник питания на 5 вольт, или подключить к контакту VIN если вы питаете плату от 5 вольт.
Сигнальные провода подключены к контактам D1 и D2.

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

Вначале мы создаём два объекта SERVO для первого и второго сервомотора.
Теперь указываем, что кнопки будут подключены к пинам 5 , 6, 7. Эти пины объявляем входами, и включаем внутреннюю подтяжку.
Говорим, что всрвы у нас подключены к пинам D1 и D2.
Здесь указываем, что при включении питания или прим первом запуске или перезагрузке установить среднее положение. В моём случае это закрытые ворота.
Теперь напишем условие.
Если нажата кнопка 1. А так как у нас кнопка одним концом сидит на земле, то при нажатии на кнопке будет низкий уровень, о есть LOW.
Так вот, при нажатии, один сервомотор переместиться в положение 180 градусов, а второй в положение 0, так как они расположены друг против друга и крутятся в разные стороны.
Пауза в пол секунды, это просто защита от дребезга кнопки и на вращение она не влияет.
Закомментированный код пока не трогаем, он нам понадобится в следующем примере.
На других кнопках всё тоже самое только градусы другие.

Теперь я расскомментировал код.
Сейчас он будет работать немного по другому. Сначала откроется одна створка, а потом другая. Это например может понадобится если вам надо открывать по очереди створки. Или ещё для чего.
Больше здесь я ничего не менял. Смотрим как работает этот пример, а потом переходим к примеру где можно управлять скоростью открытия. Потому что эти примеры для открытия явно не подходят, ну или если у вас другие сервомоторы с более низкой скоростью вращения.
Кстати, для закрытия я забыл вставить паузу, и закрываются створки вместе, а не по очереди.

Теперь рассмотрим финальный скетч. Но перед этим хочу задать вопрос смотрящим. Надо ли мне показывать как я набираю код и будете ли вы это смотреть, или оставить как есть сейчас. Первый способ, с набором, увеличит время просмотра на несколько минут.
И второй вопрос. Надо ли показывать сам процесс сборки. Ну, типа как я паяю или втыкаю провода и подключаю датчики.
Как скажите, так и будет. А теперь продолжим.
В первой части кода я ничего не менял, поэтому пропускаем, и переходим к функции loop.
Здесь код стал немного сложнее чем в первом примере. Сначала рассмотрим цикл for.
Он немного отличается от обычного.
Как работает for.
Попав в него, вы не можете выйти пока условие верно. Получается, что пока работает один сервомотор, второй стоит и ждёт своей очереди. Меня такое не устраивало, поэтому я ввёл ещё одну переменную.
Теперь оба сервомотора работают по очереди. Сначала первый делает один шаг, затем второй. И так пока оба не переместятся в нужное положение.
Скорость можно регулировать, изменяя время паузы. Чем больше пауза, тем больше время между шагами и тем медленнее скорость вращения.
Изначально положение обоих серв установлено посередине, то есть в 90 градусов.
Вы можете изменить скетч и сделать так чтобы ворота открывались больше чем на 90 градусов. Например на 180 градусов. Тогда начальную точку указываете в положение 0. И тогда вам не понадобится средний цикл, так как будет всего два положения.
При нажатии первой кнопки, одна серва перемещается в положение 180 градусов, а вторая положение 0.
Затем эти значения присваиваются переменным.
Здесь всё в точности до наоборот. И сервы вращаются в другом направлении.

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

Если вам нравятся мои видеоуроки, то вы можете подписаться на них, и не забудьте нажать на колокольчик, так вы не пропустите следующее видео.
Вы видите ссылки на видео, которые, я думаю будут вам интересны. Перейдя на любое из этих видео вы узнаете что-то новое, а ещё поможете мне. Ведь любой ваш просмотр — это знак YOUTUBE, что это кому-то интересно и что его надо показывать чаще.
Спасибо.
А пока на этом всё.

Источник

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 с сервоприводом

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

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

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

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

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

Источник

Урок 1 -Подключает servo-привод к arduino. Сервопривод + кнопка

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

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

В этом уроке мы научимся управлять сервоприводом.

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

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

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

Подключение сервопривода к плате Arduino производится через ШИМ-выводы. Что Такое PWM (ШИМ) мы уже рассматривали в уроке: Плавное включение светодиода на Arduino с помощью ШИМ (PWM)

За основу возьмем урок Подключение кнопки и светодиода плате Arduino к схеме добавим сервопривод и вот что у нас должно получиться.

Изменим код:

Мы еще не работали с библиотеками. Библиотека это класс, содержащий функции которые мы можем использовать в нашей программе. Библиотека позволяет сократить объем написанного кода и скорость разработки приложения.

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

Объявлением переменную, она нам понадобиться для работы с библиотекой.

Функция библиотеки Servo.

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

Управление сервоприводом с помощью потенциометра.

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

Следующий урок: IR Пульт. Включение выключение светодиода.

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

Понравилась статья? Поделитесь ею с друзьями:

Источник

Arduino — Button — Servo Motor

That process is repeated.

The tutorial includes two main parts:

Hardware Required

1 × Arduino UNO or Genuino UNO
1 × USB 2.0 cable type A/B
1 × Button
1 × Servo Motor
1 × Breadboard
n × Jumper Wires

About Servo Motor and Button

If you do not know about servo motor and button (pinout, how it works, how to program . ), learn about them in the following tutorials:

Wiring Diagram

Image is developed using Fritzing. Click to enlarge image

Arduino Code — Button Controls Servo Motor Without Debouncing

Quick Steps

In practice, the above code does not work correctly sometimes. To make it always work correctly, we need to debounce for the button. Debouncing for the button is not easy for beginners. Fortunately, thanks to the ezButton library, We can do it easily.

Arduino Code — Button Controls Servo Motor With Debouncing

Quick Steps

Video Tutorial

We are considering to make the video tutorials. If you think the video tutorials are essential, please subscribe to our YouTube channel to give us motivation for making the videos.

Button and Servo Motor on Commercial Products

Most electronic products have a reset button. Additionally, the button also keeps other functionalities in many products.

Источник

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

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

Что такое сервопривод?

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

Т.е. сервопривод — довольно сложная система. Управляется она по одному проводу ШИМ сигналом. Импульсы подаются через 20 мс, длительностью от 1 до 2 мс, соответствующие крайним положениям угла (от 0* до 180*, соответственно). Для Ардуино существует встроенная с среду библиотека Servo.h.

Управление сервоприводом по заданной программе

Когда последовательность действий заранее известна, можно записать её в массив и затем поочередно передавать сервоприводу.

Для программного управления можно использовать следующую программу:

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

Управление несколькими сервоприводами сигналом с датчика

Если сигнал управления зависит от каких-то внешних факторов, то нужно подключать к Ардуино соответствующий датчик. В данном примере — аналоговый датчик угла (потенциометр). Управлять будем независимо двумя сервоприводами. Задача — следить за напряжением на датчике и закрывать один сервопривод в одну строну, а другой — в другую. Как-бы имитируя ворота.

Схема подключения выглядит так:

Алгоритм реализован в программе Ардуино:

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

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

Иногда нужно удаленно управлять исполнителем, подавая команды по последовательному порту UART Ардуино. Управлять можно с ПК и мобильных телефонов, а также с других устройств по USB, UART или Bluetooth.

Схема не отличается от первой:

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

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

Источник

Adblock
detector