Реклама ⓘ
Главная » Arduino
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Реклама ⓘ

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

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

Во втором уроке мы рассмотрим как при помощи 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
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (14) | Я собрал (0) | Подписаться

0
Евгений #
А почему команды одинаковые (servoMain.write()), а поворачивают мотор то вправо, то влево?
Ответить
0
Рустем #
Потому что углы отклонения разные. Если больше установленного, то поворот вправо, если меньше, то влево и так, пока углы не будут совпадать.
Ответить
0
staR #
Как можно подключить много сервоприводов к одной плате ардуино, например 20?
Ответить
0
Илья #
Поддерживаю вопрос staR. Я знаю что можно, но нужно посмотреть как именно они подключаются?!
Ответить
0
Алексей #
Вам интересно как они физически подключаются или как их в программе прописать?
Ответить
0
Арсений #
Физически. В перспективе предстоит подключить к UNO 2 гироскопа. Кстати, нет ли у Вас опыта работы с гироскопами?
Ответить
0
Александр #
Для подключения бОльшего количества сервоприводов надо запитывать их от отдельного источника питания через стабилизатор, например КР142ЕН5А
Ответить
0
Vomiller #
Как изменить код, чтобы серво крутилась вправо на 180 градусов при срабатывании датчика движения подключенного к этому же ардуино?
Ответить
0
Гога #
Не знаю. Всё зависит от датчика движения, каким интерфейсом он обслуживается.
Ответить
0
Федя #
А как именно их через стабилизатор подключать? И какой лучше всего для серво шилд? (если все таки придется)
Ответить
0
fenixtat #
Добрый день!
Спасибо большое! Ваш скетч очень полезен!
На данный момент делаю серво-манипулятор, который состоит из 3 сервоприводов. Можно Вас попросить выложить пример скетча, который позволит управлять тремя сервами одновременно,
Например:
1. Включение Ардуино Уно
2. Через две секунды, после включения - начинает двигаться СЕРВО1 с 0 до 180 градусов(отложе нный старт, после включения)
3. Через 0,5 секунды после начала движения СЕРВО1 - включается СЕРВО2 и начинает двигаться с 0 до 60 градусов
4. Через 0,5 секунды после начала движения СЕРВО2 - включается СЕРВО и начинает двигаться с 45 до 78 градусов
Ответить
0
EVMIX Show #
Вот пожалуйста
Прикрепленный файл: for_fenixtat.ino
Ответить
0
Никита #
Здравствуйте, нужна помощь.
Вот мой скетч:
#include // подключаем библиотеку для работы с сервоприводом

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

void setup() {
servo1.attach(1); // привязываем сервопривод к аналоговому выходу 1
}

void loop() {
servo1.write(0); // ставим угол поворота под 0
delay(5000); // ждем 2 секунды
servo1.write(180); // ставим угол поворота под 180
delay(5000); // ждем 2 секунды
}

Всё работает. Но я не понимаю как написать программу для кнопки без резистора, так чтобы при одном нажатии кнопки сервик начал повторять действия в скейтче и при повторном нажатии переставал работать.
Помогите, пожалуйста!
Ответить
0
F #
Почитайте про обработку нажатий с флагом. Если флаг будет поднят, то выполнять цикл, если опущен, то ничего не делать.
P.S Не уверен что вам это еще интересно, но может кому другому пригодится.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическая мощность?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Arduino UNO
Arduino UNO
Регулятор мощности 2 кВт USB осциллограф DSO-2090
вверх