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




Для управления серводвигателем применяется ШИМ с определенными параметрами. Сгенерировать нужный сигнал ШИМ можно при помощи микроконтроллера.на платформе Ардуино. Чтобы максимально упростить программирование алгоритма управления серводвигателем (генерацию ШИМ) применяются заранее написанные программы, называемые библиотеками.

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

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

Вопросы к уроку:

1. Чем сервопривод отличается от обычного электромотора?

2. В каких единицах задается положение вала сервопривода?

3. Зачем для составления программы нам нужна библиотека «Servo.h»?

 

 

Дополнительное задание:

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

· плата Arduino

· установленная на вашем компьютере программа Arduino IDE

· 3 провода “папа-папа”

· сервопривод

 

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

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

 

Если вы используете симулятор Arduino, то кроме него больше ничего не потребуется.

ВНИМАНИЕ!

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

 

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

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

#include <Servo.h> - эта команда означает подключение библиотеки для управления сервоприводом. Подключенная нами библиотека имеет большое количество команд, мы рассмотрим только те, который используются в программе.

Servo servodvig; - это объявление переменной специального типа. servodvig – это переменная (название выбираем произвольно). Servo – это тип переменной (специальный тип, который задается в присоединенной библиотеке). Можно задать до 12 переменных этого типа, то есть для управления 12 серво-приводами. Иными словами, этой командой мы сообщили плате, что у нас есть сервопривод, который мы назвали dvig.
servodvig.attach(10); - эта команда означает, что серво-привод (servodvig) присоединен к 9 пину (выводу).
servodvig.write(90); – эта команда заставляет сервопривод (servodvig) повернуться в среднее положение (90 градусов).
servodvig.write(0); – поворачивает сервопривод в положение 0 градусов.
servodvig.write(180); – поворачивает сервопривод в положение 180 градусов.

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

 

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

 

   

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2022-09-12 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: