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

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

Сервопривод является очень важным элементом при конструировании роботов и радиоуправляемых моделей. Во втором уроке мы рассмотрим как при помощи Arduino UNO управлять сервоприводом. Программа очень проста и наглядна. Начинается она с подключения файла. Данный файл содержит все необходимые команды для управления серво, чтобы облегчить нам жизнь и не изобретать велосипед. Далее, мы должны создать обьект servo. Пусть это будет servoMain. Следующая функция будет setup(), в которой мы указываем, что сервопривод подключен к выводу 10 контроллера. Теперь все готово и мы можем посылать команды для управления серво. В главной функции loop(), мы даем различные команды для серводвигателя, выдерживая паузы между командами.

/* Arduino Servo */ #include «Servo.h» Servo servoMain; // Объект Servo void setup() < servoMain.attach(10); // Servo присоединен к 10 выводу >void loop() < servoMain.write(45); // Повернуть серво влево на 45 градусов delay(2000); // Пауза 2 сек. servoMain.write(0); // Повернуть серво влево на 0 градусов delay(1000); // Пауза 1 сек. servoMain.write(90); // Повернуть серво на 90 градусов. Центральная позиция delay(1500); // Пауза 1.5 сек. servoMain.write(135); // Повернуть серво вправо на 135 градусов delay(3000); // Пауза 3 сек. servoMain.write(180); // Повернуть серво вправо на 180 градусов delay(1000); // Пауза 1 сек. servoMain.write(90); // Повернуть серво на 90 градусов. Центральная позиция delay(5000); // Пауза 5 сек. >

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

Используемый в проекте сервопривод содержит 3 провода: черный, красный и оранжевый или белый Схема подсоединения к Arduino следующая: черный провод присоединяем к выводу Arduino 0V, красный к Arduino 5V и оранжевый/белый к 10 выводу Arduino UNO. Оригинал статьи

Теги:

Колтыков А.В. Опубликована: 2011 г. 0 0

Вознаградить Я собрал 0 0

Сервомотор принцип работы, устройство, схема

Сервомотор принцип работы, устройство, схема

micro servo 9g характеристики

  • Источник питания: от 4,5 В до 6 В
  • Крутящий момент: 1,2 кг/см при 4,5 В — 1,4 кг/см при 6 В
  • Скорость: 0,12 сек/60° при 4,5 В — 0,10 сек/60° при 6 В
  • Вращение: до 180°

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

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

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

КАК ПОДКЛЮЧИТЬ СЕРВОПРИВОД К ARDUINO [Уроки Ардуино #15]

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

● Проект 17: Сервопривод. Крутим потенциометр, меняем положение

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

Рис. 17.1. Сервопривод

 Сервопривод TowerPro SG90 подключается к Arduino

Сервопривод подключается с помощью трех проводов к управляющему устройству (драйверу или контроллеру) и источнику питания. Сервопривод управляется с помощью импульсов переменной длительности. Угол поворота определяется длительностью импульса, который подается по сигнальному проводу. Это называется широтно-импульсной модуляцией. Сервопривод ожидает импульса каждые 20 мс. Длительность импульса определяет, насколько далеко должен поворачиваться мотор. Например, импульс в 1,5 мс диктует мотору поворот в положение 90° (нейтральное положение). Когда сервопривод получает команду на перемещение, его управляющий орган перемещается в это положение и удерживает его. Если внешняя сила действует на сервопривод, когда он удерживает заданное положение, сервопривод будет сопротивляться перемещению из этого положения. Максимальная величина силы, которую может выдерживать сервопривод, характеризует вращающий момент сервопривода. Однако сервопривод не навсегда удерживает свое положение, импульсы позиционирования должны повторяться, информируя сервопривод о сохранении положения.
В нашем эксперименте мы будем управлять положением сервопривода с помощью потенциометра. Схема подключения сервопривода и потенциометра к плате Arduino показана на рис. 17.2.

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

Cервопривод подключается тремя проводами: питание (Vcc), «земля» (Gnd) и сигнальный (С). Питание– красный провод, он может быть подключен к +5 В внешнего источника питания, черны (или коричневый) провод – «земля» – подключается к GND-выводу Arduino GND, сигнальный (оранжевый/желтый/белый) провод подключается к цифровому выводу контроллера Arduino. Для питания сервопривода используем отдельный блок питания +5 В. Для управления сервоприводом в Arduino имеется стандартная библиотека Servo. На платах, отличных от Mega, использование библиотеки отключает возможность применения analogWrite() (ШИМ) на пинах 9 и 10 (вне зависимости, подключены к этим пинам сервы или нет). На платах Mega до 12 сервоприводов могут использоваться без влияния на функциональность ШИМ, но использование от 12 до 23 сервомашинок отключит PWM ШИМ на пинах 11 и 12.
Аналоговые данные потенциометра (0–1023) масштабируем функцией map() в значения угла поворота сервопривода (0–180) и с помощью библиотечной функции servo.write(angle) даем сервоприводу команду для поворота. Скетч приведен в листинге 17.1.

#include // подключение библиотеки Servo Servo servo1; const int pinServo=8; // Пин для подключения сервопривода const int POT=0; // Аналоговый вход A0 для подключения потенциометра int valpot = 0; // переменная для хранения значения потенциометра int angleServo = 0; // переменная для хранения угла поворота сервы void setup() < // подключить переменную servo к выводу pinServo servo1.attach(pinServo); > void loop() < valpot = analogRead(POT); // чтение данных потенциометра // масштабируем значение к интервалу 0-180 angleServo=map(valpot,0,1023,0,180); // поворот сервопривода на полученный угол servo1.write(angleServo); delay(15); // пауза для ожидания поворота сервопривода >

Порядок подключения:

1. Подключаем датчик сервопривода и потенциометр по схеме на рис. 17.2.
2. Загружаем в плату Arduino скетч из листинга 17.1.
3. Поворотом ручки потенциометра управляем положением сервопривода.

Листинги программ скачать

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

  1. Плата Arduino Uno (купить на Aliexpress).
  2. Сервомотор (купить на Aliexpress).
  3. Конденсатор 100 пФ (купить на Aliexpress).
  4. Резистор 1 кОм (2 шт.) (купить на Aliexpress).
  5. Кнопка (2 шт.).
  6. Источник питания с напряжением 5 В.

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

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

В отличие от управления серводвигателем с помощью микроконтроллеров AVR в случае использования платы Arduino нам уже нет необходимости вручную устанавливать значения регистров чтобы получить нужную частоту и коэффициент заполнения управляющих сигналов для серводвигателя. Для платформы Arduino для этих целей разработаны специальные библиотеки, с помощью которых эти функции реализуются достаточно просто – необходимо в программе просто подключить заголовочные файлы этих библиотек. В этом случае мы достаточно просто сможем устанавливать позицию сервомотора с помощью сигналов ШИМ.

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

1. #include
2. Servo sg90servo;
3. Sg90.attach(servo_signal_pin_attached_to);
4. Sg90.write(needed_position_ angle);

Вначале мы должны установить частоту ШИМ сигнала для управления сервомотором – в данном случае это делается простым подключением заголовочного файла “ #include ”. С подключением этого заголовочного файла необходимая частота ШИМ сигнала для управления серводвигателем устанавливается автоматически, кроме этого открываются возможности использования различных функций для простого управления серводвигателем.

После этого мы должны определиться с именем сервомотора, которым будем управлять в программе. Делается это с помощью функции “ Servo sg90sevo ”, где ‘ sg90servo ’ – это выбранное имя для нашего сервомотора. Особенно актуально указание имен сервомоторов когда под нашим управлением будет находиться несколько сервомоторов (до 8 для Arduino) – в этом случае удобно их будет различать по данным им именам.

Далее мы должны сообщить Arduino к какому контакту подключен сервомотор, то есть на каком контакте необходимо будет формировать сигнал ШИМ. Мы это будем делать с помощью функции “ Sg90.attach(3); ”, которая указывает Arduino что сервомотор подключен к контакту PIN3.

Теперь все, что осталось сделать, это указать на какой угол необходимо повернуть ось серводвигателя, это можно сделать с помощью функции “ Sg90.write(30); ”, которая повернет ось серводвигателя на 30 градусов. В дальнейшем, если нам понадобится повернуть ось серводвигателя на какой-нибудь другой угол, то необходимо воспользоваться командой ” Sg90.write(needed_position_ angle); ”. На представленной схеме у нас есть две кнопки, одна из них будет увеличивать угол поворота оси серводвигателя (вращать его против часовой стрелки), а другая – уменьшать (вращать его по часовой стрелке).

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

Для подключения сервопривода и потенциометра к Arduino Uno используются следующие пины: сервопривод подключается к цифровому пину 5 (или любому другому пину, который поддерживает ШИМ) для управления сигналом ШИМ, а потенциометр подключается к аналоговому входу, например A1.

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

  • Проведите подключение питания сервопривода к +5V на Arduino Uno.
  • Заземлите сервопривод, подключив его к GND на плате Arduino.
  • Управляющий сигнал сервопривода (обычно оранжевого цвета) подключите к цифровому пину 5.

Подключение потенциометра:

  • Подключите один конец потенциометра к +5V на Arduino Uno.
  • Второй конец потенциометра заземлите, подключив его к GND на плате Arduino.
  • Выход потенциометра (обычно центральный вывод) подключите к аналоговому входу A1.

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

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

Библиотеки

Для управления сервоприводом с Arduino необходима библиотека Servo. Это стандартная библиотека, которая уже имеется в Arduino IDE и не требует дополнительной установки.

Приведенный ниже код представляет собой пример использования Arduino Uno для управления сервоприводом с помощью потенциометра. Этот скетч демонстрирует подключение сервопривода к цифровому пину для управления сигналом ШИМ и потенциометра к аналоговому входу. Путем вращения потенциометра вы можете изменять уровень аналогового сигнала, который воздействует на положение сервопривода, отражаемое в мониторе последовательного порта.

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

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

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

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

Servo Arduino

Принципиальная схема подключения сервопривода к плате ардуино

Изменим код:

#include // подключаем библиотеку для работы с сервоприводом Servo servo; // объявляем переменную servo типа «servo» int led_pin=3; // пин подключения int button_pin = 4; // пин кнопки // переменные int buttonState = 0; // переменная для хранения состояния кнопки void setup() < pinMode(led_pin, OUTPUT); // Инициализируем цифровой вход/выход в режиме выхода. pinMode(button_pin, INPUT); // Инициализируем цифровой вход/выход в режиме входа. servo.attach(5); // привязываем сервопривод к аналоговому выходу 10 >void loop() < buttonState = digitalRead(button_pin);// считываем значения с входа кнопки if (buttonState == HIGH) < digitalWrite(led_pin, HIGH);// зажигаем светодиод servo.write(0); //ставим вал на 180 delay (1000); // задержка в 1 секунду >else < digitalWrite(led_pin, LOW);// выключаем светодиод servo.write(180); //ставим вал на 0 delay (1000); // задержка в 1 секунду >>
#include // подключаем библиотеку для работы с сервоприводом

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

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

Servo servo; // объявляем переменную servo типа «servo»

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

servo.attach(5); // привязываем сервопривод к аналоговому выходу 5

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

servo.write(180); //ставим вал на 180

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

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

#include Servo myservo; int potpin = 0; int val; void setup() < myservo.attach(9); >void loop()

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

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

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

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

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

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

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

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

Оцените статью
TutShema
Добавить комментарий