Управление серводвигателем с помощью Arduino
Вы можете подключить маленькие серводвигатели непосредственно к Arduino для очень точного управления положением вала.
Поскольку серводвигатели используют обратную связь для определения положения вала, вы можете управлять этим положением с высокой точностью.
В результате серводвигатели используются для управления положением объектов, поворотом объектов, движением рук и ног роботов, движением датчиков и т.д. с большой точностью.
Серводвигатели обладают небольшими размерами, и так как цепи, управляющие их движением, уже встроены в них, то они могут быть подключены напрямую к Arduino.
Большинство серводвигателей имеют три контакта для подключения:
- черный/коричневый провод корпуса;
- красный провод питания (около 5 вольт);
- желтый или белый провод ШИМ.
Эксперимент 1
В этом эксперименте мы подключим выводы питания и корпуса непосредственно к выводам Arduino 5V и GND. Вход ШИМ подключим к одному из цифровых выходов Arduino.
- 1 x серводвигатель TowerPro SG90
- 1 x Arduino Mega2560
- 3 x перемычка
Схема соединений
Самое лучшее в серводвигателе – это то, что его можно подключить непосредственно к Arduino. Подключите двигатель к Arduino, как показано на рисунке ниже:
Схема соединений
Код программы
Когда программа запустится, серводвигатель начнет медленно вращаться от положения 0 градусов к положению 180 градусов с шагом в один градус. Когда двигатель повернется на 180 градусов, он начнет поворачиваться в противоположном направлении, пока не вернется в исходное положение.
#include // библиотека Servo
Servo servo_test; // инициализировать объект сервопривода
// для подключенного серводвигателя
int angle = 0;
void setup()
{
servo_test.attach(9); // прикрепить сигнальный вывод серводвигателя
// к выводу 9 Arduino
}
void loop()
{
for(angle = 0; angle =1; angle-=5) // двигаться от 180 к 0 градусам
{
servo_test.write(angle); // повернуть сервопривод на заданный угол
delay(5);
}
delay(1000);
}
Эксперимент 2
Данный эксперимент, по сути, является таким же, как и Эксперимент 1, за исключением того, что мы добавили потенциометр для управления положением. Arduino будет считывать напряжение на среднем выводе потенциометра и подстраивать положение вала серводвигателя.
Схема соединений
Соедините схему, как показано на рисунке ниже:
- красный провод серводвигателя – вывод 5V Arduino;
- коричневый провод серводвигателя – вывод корпуса Arduino;
- желтый провод серводвигателя – вывод ШИМ (9) Arduino;
- вывод 1 потенциометра – вывод 5V Arduino;
- вывод 3 потенциометра – вывод корпуса Arduino;
- вывод 2 потенциометра – вывод аналогового входа (A0) Arduino.
Код программы
После запуска программы вращение потенциометра должно заставлять вращаться вал серводвигателя.
#include // библиотека Servo
Servo servo_test; // инициализировать объект сервопривода
// для подключенного серводвигателя
int angle = 0;
int potentio = A0; // инициализировать аналоговый вывод A0 для потенциометра
void setup()
{
servo_test.attach(9); // прикрепить сигнальный вывод серводвигателя
// к выводу 9 Arduino
}
void loop()
{
angle = analogRead(potentio); // прочитать значение потенциометра от 0 до 1023
angle = map(angle, 0, 1023, 0, 179); // сопоставить значение потенциометра со значением
// в градусах для серводвигателя от 0 до 180
servo_test.write(angle); // повернуть сервопривод на заданный угол
delay(5);
}
Оригинал статьи:
Editorial Team. Servo Motor Control with an Arduino
Теги
ArduinoСерводвигательСервопривод
На сайте работает сервис комментирования DISQUS, который позволяет вам оставлять комментарии на множестве сайтов, имея лишь один аккаунт на Disqus.com.
В случае комментирования в качестве гостя (без регистрации на disqus.com) для публикации требуется время на премодерацию.
Функциональные основы и базовые разновидности коллекторов
Схема работы коллектора для теплого пола достаточно проста. Теплоноситель от котла отопления поступает в подающий распределитель. Его рекомендуют размещать сверху (над возвратной гребенкой), однако, в зависимости от местных монтажных особенностей, а также разновидности подключаемого смесительного узла, он может устанавливаться и внизу. Корпус коллектора имеет от двух и более ответвлений, оборудованных соответствующей запорно-регулирующей арматурой. По каждой из веток теплоноситель перенаправляется в определенные трубопроводы ТП. Выходной конец трубной петли замыкается на возвратной гребенке, направляющей собранный общий поток к котлу отопления.
Очевидно, что в самом простом случае коллектор для водяного теплого пола представляет собой кусок трубы с неким количеством резьбовых отводов. Однако, в зависимости от того какую конечную комплектацию он получит, сложность его сборки, настройки и стоимость могут изменяться в разы. Рассмотрим для начала наиболее популярные базовые модели распределителей для водяного ТП.
С фитингами для подключения контуров
Одной из самых бюджетных, но полностью готовой к использованию является гребенка с входной/выходной резьбами и фитингами для подсоединения металлопластиковых или труб из цельносшитого полиэтилена. Одна из таких моделей изображена на фото ниже.
Рисунок 2.
С интегрированными кранами
В минимальной комплектации можно также встретить коллектор на теплый пол оборудованный двухходовыми шаровыми кранами (Рис. 3). Такие устройства не предусматривают поконтурную регулировку – они рассчитаны только включить или выключить отдельные отопительные ветки. Учитывая, что система теплый пол приобретается и устанавливается для повышения комфорта проживающих, который обеспечивается точной подстройкой системы, целесообразность использования таких гребёнок имеет сугубо выборочный характер. На фото представлен подобный коллектор на три контура с интегрированными двухходовыми шаровыми кранами.
Приобретая указанные бюджетные варианты распределителей, следует учитывать, что их использование требует фундаментальных знаний, а также большого опыта в монтаже систем отопления. Кроме того, закупочная экономия является довольно условной, так как всё дополнительное оборудование придется докупать отдельно. Практически упрощенные коллектора для теплого водяного пола без доработки подходят только для вспомогательных систем на одну-две петли небольшой протяженности. Годятся они и для нескольких контуров, но имеющих идентичные тепловые и гидравлические характеристики. Ведь конструкции таких гребенок не предоставляет технической возможности установки контрольно-регулирующего оборудования непосредственно на каждую ветку.
Рисунок 3.
С регулировочными вентилями
Следующий уровень, как по стоимости, так и по функциональности – это распределительный коллектор для тёплого пола с регулировочными вентилями. Такие устройства, эксплуатируясь в ручном режиме, уже могут обеспечить настройку интенсивности подачи теплоносителя по отдельным отопительным контурам. Для них в большинстве случаев существует техническая возможность установки на них вместо ручных вентилей исполнительные устройства с сервоприводами. Приводы могут подключаться либо непосредственно к электронным термодатчикам, установленным в помещениях, либо к центральному программируемому устройству контроля. На рисунке 4 показан пример гребенки с регулировочными вентилями.
Рисунок 4.
Сборка из подающего и обратного коллекторов
К эконом варианту коллектора для теплого водяного пола относятся также и спаренные сборки из подающего и обратного распределителей (Рис. 5). В них уже могут быть предусмотрены дополнительные монтажные отверстия или установлены краны Маевского, группы безопасности, быстроразъемные резьбовые «американки» для удобства подключения к первичным контурам отопления или смесительному узлу.
Рисунок 5.
Комплектация коллекторных групп
К коллектору присоединяется группа для теплого пола – совокупность различных элементов и оборудования. В прямой зависимости от комплектации находится цена на коллектор. Для удобства можно разделять комплектацию на четыре группы — от самой простой к самой сложной:
- Самый простой в сборе вариант – коллектор с выходами под евроконусы. По сути это обычный патрубок с внешними и внутренними резьбами, к которым подсоединяют трубопровод. Его можно сделать самостоятельно, но для применения в системе теплого пола необходимо будет докупить остальные элементы узла.
- Следующий вариант — выходы коллектора оборудованы вентилями регулировки потока, которые стоят на месте подключения трубопроводов контура. Этот популярный вид коллекторов в основном произведен в Китае. Встречающаяся проблема в таких вентилях — подтекающие ручки регулировки. Избавиться от проблемы можно, заменив уплотнительные кольца. Эта коллекторная группа не рассчитана на установку дополнительных элементов. Применять такой коллектор можно в системах с одинаковыми контурами без автоматического регулирования температуры.
- Еще более дорогой коллекторный узел для теплого пола — когда на выходах установлены регулировочные вентили оборудованные сервоприводами. Они могут работать с термостатами. Также, в комплектации предусмотрены фитинги для присоединения труб из полипропилена. Цена такого коллектора сильно зависит от производителя и вида сервоприводов.
- Самый полный вариант состоит из подающего коллектора с расходомерами для теплого пола и обратного с сервоприводами. Применяют такие группы при разнодлинных контурах отопления, где отрегулировать подачу теплоносителя вручную не представляется возможным. Расходомер для теплого пола дает возможность отстроить отдельно каждый контур.
Подающий коллектор должен располагаться выше обратного. Это поможет избежать нагрева элементов, установленных на обратке, например, термостатических головок, что приведет к неправильному функционированию всей системы.
Если стоит задача разработать систему отопления с максимальной эффективностью, независимо от ее сложности, рекомендуется применение сервоприводов для регулировки температуры теплоносителя.
Как подключить сервопривод к Ардуино
Для этого занятия потребуется:
- Arduino Uno / Arduino Nano / Arduino Mega;
- сервопривод SG90, MG995, MG996;
- потенциометр (переменный резистор);
- макетная плата;
- провода «папа-папа» и «папа-мама».
Схема подключения сервопривода к Arduino обычно следующая: черный провод присоединяем к GND, красный провод присоединяем к 5V, оранжевый/желтый провод к цифровому выводу общего назначения. Управление сервоприводом на Ардуино достаточно просто, но по углам поворота сервомоторы делятся на 180° и 360°, что следует учитывать при разработке проектов с применением servo.
Схема подключения сервопривода к Ардуино UNO
Servo | Arduino Uno | Arduino Nano | Arduino Mega |
черный провод | GND | GND | GND |
красный провод | 5V | 5V | 5V |
желтый провод | 11 | 11 | 11 |
В первом скетче мы рассмотрим как управлять сервоприводом на Arduino с помощью команды . Также мы будем использовать стандартную библиотеку . Подключите сервомашинку к плате Ардуино, согласно схеме на фото выше и загрузите готовый скетч. В процедуре мы будем просто задавать для сервопривода необходимый угол поворота и время ожидания до следующего поворота.
Скетч для сервопривода на Ардуино
#include <Servo.h> // подключаем библиотеку для работы с сервоприводом Servo servo1; // объявляем переменную servo типа "servo1" void setup() { servo1.attach(11); // привязываем сервопривод к аналоговому выходу 11 } void loop() { servo1.write(0); // ставим угол поворота под 0 delay(2000); // ждем 2 секунды servo1.write(90); // ставим угол поворота под 90 delay(2000); // ждем 2 секунды servo1.write(180); // ставим угол поворота под 180 delay(2000); // ждем 2 секунды }
Пояснения к коду:
- переменная необходима, чтобы не запутаться при подключении нескольких сервоприводов к Ардуино. Мы назначаем каждому приводу свое имя;
- команда привязывает привод к цифровому выходу 10.
- в программе мы вращаем привод на 0-90-180 градусов и возвращаем в начальное положение, поскольку процедура void loop повторяется циклично.
Исходный код программы на языке С (Си) с пояснениями
Представленный здесь код программы для микроконтроллера Atmega16 предназначен для вращения сервомотора с 00 до 1800 и возвращения назад с 1800 до 00. Это перемещение будет осуществлено за ряд последовательных шагов — 0 – 45 – 90 – 135 – 180 – 135 – 90 – 45 – 0. Чтобы задействовать функции задержки в программе мы будем использовать внутреннюю библиотеку Atmel Studio под названием .
#define F_CPU 1000000UL #include #include void main() { //конфигурируем TIMER1 TCCR1A|=(1<<< TCCR1B|=(1<<<< ICR1=19999; //fPWM=50Hz – эта частота получается из периода следования импульсов, равному 20 мс DDRD|=(1<< while(1) { OCR1A=0; //0 degree _delay_ms(1000); OCR1A=600; //45 degree _delay_ms(1000); OCR1A=950; //90 degree _delay_ms(1000); OCR1A=1425; //135 degree _delay_ms(1000); OCR1A=1900; //180 degree _delay_ms(1000); OCR1A=1425; //135 degree _delay_ms(1000); OCR1A=950; //90 degree _delay_ms(1000); OCR1A=650; //45 degree _delay_ms(1000); } }
Устройство сервомотора (servo) Arduino
Сервопривод (сервомотор) является важным элементом при конструировании различных роботов и механизмов. Это точный исполнитель, который имеет обратную связь, позволяющую точно управлять движениями механизмов. Другими словами, получая на входе значение управляющего сигнала, сервомотор стремится поддерживать это значение на выходе своего исполнительного элемента.
Что такое сервопривод. Схема устройства сервопривода
Сервоприводы широко используются для моделирования механических движений роботов. Сервопривод состоит из датчика (скорости, положения и т.п.), блока управления приводом из механической системы и электронной схемы. Редукторы (шестерни) устройства выполняют из металла, карбона или пластика. Пластиковые шестерни сервомотора не выдерживают сильные нагрузки и удары.
Управление сервоприводом с помощью широтно импульсной модуляции
Сервомотор имеет встроенный потенциометр, который соединен с выходным валом. Поворотом вала, сервопривод меняет значение напряжения на потенциометре. Плата анализирует напряжение входного сигнала и сравнивает его с напряжением на потенциометре, исходя из полученной разницы, мотор будет плавно вращаться до тех пор пока не выравняет напряжение на выходе и на потенциометре.
Основные производители
На сегодняшний день в лидерах по изготовлению качественных систем водяных тёплых полов с различными характеристиками можно отметить производителей следующих торговых марок.
- Luxor.
- Valtec.
- Watts.
- Rehau.
- Neptun.
- Henco.
Luxor
Оборудование водяных тёплых полов Luxor на рынках России представлено 4-мя типами. Система на базе двух коллекторных балок (возвратной и подающей гребёнки) имеет марку CD 468 с количеством выходов от 3 до 12. Модель CD 477 оснащена расходомерами. Серия моделей CD 468 М имеет шаровые краны, оснащённые датчиками температуры. Ряд систем CD 473 М отличает наличие воздухоотоводчиков и сливных кранов. Системы Люксор чувствительны и требуют постоянного контроля техсостояния оборудования.
Valtec
Фирма полностью переключилась на использование в контурах труб из сшитого полиэтилена. В отличие от простого полиэтилена, молекулы которого не взаимосвязаны, сшитый полимер обладает тесными молекулярными связями, что придаёт изделиям высокую прочность. Недостатком является то, что трубопроводы с трудом сохраняют изгибы петли, приходится их крепить дополнительными хомутами.
Watts
Компания Watts отличается тем, что поставляет на рынок обогревательного оборудования тепловые узлы полностью укомплектованными и готовыми к подключению. Этим достигается эффект быстрого монтажа. В последних разработках компания представляет радиоволновой терморегулятор, что позволяет устанавливать его в любом месте помещения.
Rehau
Фирма Рехау поставляет оборудование высокого качества, которое отличается надёжностью, небольшими размерами и несложной установкой. Блок управления монтируют в течение короткого времени, что позволяет провести быстрое подключение сервоприводов к коммутатору. Некоторым недостатком является высокая стоимость оборудования.
Neptun
Единственная российская фирма, поставляющая системы водяных тёплых полов с гофрированными трубами из нержавеющей стали. Они отличаются от полимерных аналогов тем, что обладают практически идеальной теплоотдачей, не боятся заморозки и гидроударов. Комплект поставки оборудования включает все необходимые фитинги, теплоизоляционные маты и циркуляционный насос.
Henco
Производитель в основу напольного водяного отопления заложил многослойную конструкцию из металлопластиковых труб. Немецкая фирма гарантирует работу отопительной системы на протяжении нескольких десятилетий. В торговой сети нередко попадаются подделки с торговой маркой Хенко. Оригинальная продукция изготавливается только в Бельгии.
Автоматика для водяного тёплого пола
Смотрите это видео на YouTube
Классификация устройств по способу управления
Представленные на рынке модели сервоприводов можно разделить на 3 группы, в зависимости от способа управления:
- Механический. Главные достоинства — его низкая цена и высокая надежность. От пользователя не требуется специальных знаний, чтобы им управлять. Это примитивное устройство, регулирующее поток теплоносителя, постоянный контроль за ним не нужен. Недостатком можно считать невозможность программирования и ручная настройка — это может занимать много времени.
- Электронный. Такой сервопривод имеет расширенный функционал. На электронном дисплее может отображаться работа системы, температура, наличие или отсутствие поломок. Плюсами является удобство регулирования температуры системы и возможность работы в автоматическом режиме. Минусом можно считать высокую цену.
- С дистанционным управлением. Такие сервоприводы позволяют проводить любые настройки, даже игнорируя коллектор для теплого пола. Система способна к работе даже при отсутствии человека. Желательно, чтобы коллекторный узел состоял из элементов одного производителя. Минусом тоже является высокая цена.
Сервоприводы устанавливаются на термостатические краны, стоящие на коллекторе, или на отдельно стоящие краны. Они обязательно имеют механизм отключения и защиту от перегрева.
Сервопривод и его разновидности
Сервопривод регулирует поступление воды в систему
Как говорилось выше, сервопривод – это дополнительное оборудование, которое устанавливается на распределительный коллектор для теплого водяного пола.
Устройство применяется для регулирования потока воды, поступающего в нагревательные элементы. Это процесс осуществляется при помощи открытия и закрытия регулирующих вентилей, которые располагаются на обратной гребенке коллектора.
Механический сервопривод
Данное устройство самый простой вариант
Сервопривод механического типа является наиболее простым вариантом данного устройства.
Он имеет не сложную конструкцию и приемлемую стоимость.
Регулировка температуры производится непосредственно на самом устройстве вращением специального колесика, уменьшающего или увеличивающего показатели температуры.
Механические устройства не совмещены с термодатчиком
Такое приспособление не согласовывается с термодатчиком и не может автоматически срабатывать (включаться и выключаться) при повышении и понижении температуры теплого пола от заданной установки.
Устройство требует постоянного контроля значения температуры при уходе из дома и даже перед сном, но срок его эксплуатации очень долгий и прибор не требует профилактических настроек и дополнительного обслуживания.
Электронный сервопривод для коллектора
Электронное устройство получает информацию от термодатчика
Электронный вариант сервопривода теплого водяного пола представляет собой также достаточно простое устройство, которое способно автоматически осуществлять регулировку подачи теплоносителя в отопительный контур системы.
Схема коллектора с сервоприводом
Прибор имеет постоянное электронное согласование с терморегулятором, который является мозговым центром. Терморегулятор или термостат согласован с температурным датчиком, который устанавливается возле нагревательных элементов в стяжке теплого пола.
Соответственно на термостате выставляются граничные значения температуры, при которых сервопривод будет открывать и закрывать регулируемый вентиль для подачи горячей воды в контуры отопления. Один из вариантов подключения термостата к сервоприводам можно увидеть из таблицы-схемы.
Устройство электронного типа способно полностью самостоятельно производить и контролировать подачу теплоносителя в систему обогрева, но чтобы его приобрести, каждому хозяину придется выложить немалую сумму денег.
Если они случаются нередко, то стоит дополнительно устанавливать ИБП (индивидуальный блок питания) или свой выбор останавливать на механическом устройстве регулировки подачи теплоносителя. Подробнее о сервоприводах смотрите в этом видео:
Дистанционный сервопривод
Дистанционная система регулирования подачи воды является достаточно сложным электронным механизмом, который часто применяется в помещениях, где теплый пол – и основа системой отопления, которая устанавливается во всех комнатах квартиры.
Дистанционный сервопривод регулирует подачу теплоносителя в каждый контур системы. Он согласовывается с терморегуляторами, установленными в различных комнатах, которые могут отстраиваться автоматически от температуры окружающей среды, и нагревает каждое помещение по своим собственным (необобщенным) параметрам.
Организовывая такую систему отопления, многие специалисты советуют приобретать надежные и функционально наполненные терморегуляторы, которые будут подавать на сервопривод своевременные команды, на основании которых устройство сможет создать свой уникальный микроклимат (по требованию хозяина) в каждой комнате. Подробнее о дистанционных устройствах смотрите в этом видео:
Следует знать, что сервоприводы можно классифицировать еще по следующим параметрам:
- нормально закрытые;
- открытые.
В таком состоянии через сервопривод вода протекать не может. Открытое положение является противоположным описанному выше, и, наоборот, пропускает теплоноситель в систему, что не всегда приносит пользу.
Виды и типы датчиков
Дистанционный электрический датчик регулировки температуры пола
Все датчики и регуляторы можно поделить на два типа:
- Механический прибор имеет принцип работы, основанный на свойстве изменять объем в зависимости от показаний температуры.
- Электронный, устанавливаемый выносной датчик в виде терморезистора. Дополняется отдельным блоком управления, содержащим электронную схему, элементы рабочего порядка и индикации.
По видам приборы также разделяются:
- устройство, работающее в эконом-режиме, что позволяет снижать уровень нагрева пола в помещении при отсутствии людей;
- датчики с таймером, в которых есть программа включения/отключения системы нагрева;
- интеллектуальные датчики с заложенным алгоритмом работы и контролем прочих факторов: режима влажности, температурных колебаний за пределами помещения, наличия/отсутствия людей в комнате и другое;
- ограничители – это термоприборы, отключающие нагрев теплоносителя при достижении заранее заданной температуры.
Пример механического датчика с температурным элементом
Термостаты для водяного теплого пола различаются по виду отслеживаемой среды:
- контроль температурного режима пола;
- контроль степени прогрева воздуха.
Как правило, датчики для определения температуры воздуха располагаются в корпусе термостата. Это обеспечивает дополнительное удобство, так как не предвидится лишних проблем с монтажом, с другой стороны, установка термостата должна отвечать ряду условий:
- отсутствие близлежащих источников тепла/холода;
- нет угрозы попадания прямых солнечных лучей, продувания сквозняком.
Система водяного пола может быть дополнена выносным термодатчиком. Представляя собой малоформатное устройство, закрепленное на конце длинного кабеля, измерительный прибор монтируется в полу с отступом от стены шага в 0,5 метра. Размещение показано на равноудаленном от ближайших труб с теплоносителем расстоянии. Второй конец конструкции заводится на термодатчик и крепится к клеммам по схеме.
Где в Подмосковье самые дорогие новостройки?
Управление сервоприводом потенциометром
Подключение сервопривода и потенциометра к Ардуино Уно
Ардуино позволяет не только управлять, но и считывать показания с сервопривода. Команда считывает текущий угол поворота вала сервопривода и его мы можем увидеть на мониторе порта. Предоставим более сложный пример управления сервоприводом потенциометром на Ардуино. Соберите схему с потенциометром и загрузите скетч в Ардуино для управления сервоприводом.
Скетч для сервопривода с потенциометром
#include <Servo.h> // подключаем библиотеку для работы с сервоприводом Servo servo; // объявляем переменную servo типа "servo" void setup() { servo.attach(10); // привязываем сервопривод к аналоговому выходу 10 pinMode(A0, INPUT); // к аналоговому входу A0 подключим потенциометр Serial.begin(9600); // подключаем монитор порта } void loop() { servo.write(analogRead(A0)/4); // передает значения для вала сервопривода Serial.println (analogRead(A0)); // выводим показания потенциометра на монитор Serial.println (analogRead(A0)/4); // выводим сигнал, подаваемый на сервопривод Serial.println (); // выводим пустую строчку на монитор порта delay(1000); // задержка в одну секунду }
Пояснения к коду:
- в этот раз мы присвоили имя для сервопривода в скетче, как ;
- команда передает значения для вала сервопривода — получаемое напряжение с потенциометра мы делим на четыре и оправляем данное значение на сервомотор SG90, MG995, MG996 Arduino.
- команда считывает значение угла поворота вала сервопривода и передает его на монитор порта.
Заключение. Сервомоторы часто используются в различных проектах на Ардуино для различных функций: повороты конструкций, движение частей механизмов. Так как серво Arduino постоянно стремится удерживать заданный угол поворота, то будьте готовы к повышенному расходу электроэнергии. Это будет особенно чувствительно в автономных роботах, питающихся от аккумуляторов или батареек.