Управление сервоприводом без микроконтроллера

Сервоприводы идеально подходят для приложений, отличных от тех, для которых они предназначены, например, в качестве привода ригеля замка двери.

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

Принципиальная схема контроллера сервопривода показана на следующем рисунке. Схема содержит всего несколько элементов: диод VD1 (1N4007) защищает схему от обратного подключения напряжения питания, стабилизатор DA1 (7805) обеспечивает напряжение 5 В для сервомотора, а через фильтр R4 и C1 подается питание на микроконтроллер DD1 (PIC12F675).

Потенциометры R6 и R7, подключенные к АЦП микроконтроллера, используются в качестве делителя напряжения для установки двух значений напряжения, которые изменяют продолжительность управляющих импульсов сервопривода. Переключатель SA1 предназначен для перевода сервомотора в одно из двух положений.

Работой контроллера сервопривода управляет программа, содержащаяся в памяти микроконтроллера. Таймер микроконтроллера TIMER1 — это 16-разрядный счетчик, который задействован для генерации прерываний каждые 20 мсек, таким образом, устанавливается стандартная частота управляющих импульсов. Прерывание TIMER1 происходит, когда счетчик переполняется.

Как известно, положение сервопривода определяется длиной импульса. Длительность каждого импульса определяется с помощью TIMER0. Его запуск синхронизируется с прерыванием от TIMER1. Переполнение TIMER0 генерирует второе прерывание, которое завершает импульс и останавливает счетчик.

Время переполнения TIMER0 и, следовательно, длительность импульса определяется начальным значением счетчика, которое пропорционально результату преобразования АЦП. Таким образом, изменение напряжения в диапазоне 0…5 В на входе АЦП приводит к изменению длительности импульса в диапазоне 0,5…2,5 мсек.

Читайте также:  Какие инструменты для измерения длины

Кроме того, состояние SA1 определяет, какой потенциометр (R6 или R7) будет определять напряжение на входе АЦП. Благодаря этому сервопривод может управляться либо через SA1, либо в полном объеме путем изменения положения потенциометров.

Схема проверена в Proteus:

Устройство собрано на печатной плате, схема монтажа которой показана ниже. Следует обратить внимание на то, что R1…R5 — SMD резисторы, которые установлены на другой стороне платы.

Скачать рисунок печатной платы, прошивку, модель Proteus (38,1 Kb, скачано: 560)

Сервоприводыприменяются также для контроля руля RC- автомобилей, робототехники и т.д. Существует много видов сервоприводов, но здесь мы сосредоточимсяна малых сервоприводы так называемых hobby . H obb y двигатель и его механизм управления встроен в один блок. Подключение осуществляеться спомощью трех присоединительных проводов . Мы будем использовать сервопривод FutabaS3003 .

FutabaS3003 проводки.

1.RED -> Управление позицией ,питание +4.8В до 6В

3.WHITE -> Сигнал управления.

Управление Сервоприводом.

Управлятьсервоприводом легко с помощью микроконтроллера,не нужно никаких внешнихдрайверов. Просто подаваяуправляющий сигнал сервопривод будет позиционировать на любой заданный угол. Частота управляющего сигнала обычно 50hz (т.е.период 20 мс), а длительность импульса задает величину угла.

Для FutabaS3003 яузнал следующие синхронизацию . Соотношение между шириной импульса иуглом поворота сервопривода, приводится ниже. Заметим,что этот сервопривод способен вращаться только между 0 и 180 градусов.

  • 0.388ms= 0 градусов.
  • 1.264ms= 90 градусов.
  • (Нейтральнаяпозиция) 2.14ms= 180 градусов.

Управление Серво двигателем.

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

Здесь мы будемиспользовать AVR Timer модуль, который является 16bit таймером и имеет два канала PWM (А и B).

Частота центрального процессора составляет 16 МГц,эта частота — максимальная частота,на которой большинство AVR способны работать.Так же будем использовать делитель частоты на 64. Так таймера получат 16MHz/64 =250khz (4 мкс).Таймер установим в режим 14.

Читайте также:  Искробезопасный инструмент x spark

Функциитаймера в режими 14

  • РежимFAST PWM
  • T T OP Значение = ICR1

Так таймер будет считать от 0 до ICR1. Формуладля частоты ШИМ и расчеты по значению TOP приводится ниже.

Такимобразом, мы устанавливаем ICR1A = 4999,это дает нам PWM периода 20мс (50 Гц).Убедитесь что в режими выводаустанавленны правильные настройки COM1A1, COM1A0 (для PWM канала) и COM1B1,COM1B0 (для PWM канал B)

COM1A1= 1 и COM1A0 = 0 (PWM Источник)

COM1B1= 1 и COM1B0 = 0 (PWM канал B)

Теперь рабочий цикл может быть установлен путем настройки OCR1A иOCR1B регистров. Эти два регистрауправления PWM периодом Так как период таймера 4мкс (помните 16 МГц разделили на 64), Мы можем вычислить значения, необходимые для поворотасервопривод на определенный угол.

§ Servoугол 0 градусов требуется ширина импульса 0.388ms (388uS), поэтому значениеOCR1A = 388us/4us = 97

§ Servoугол 90 градусов требуется ширина импульса 1.264ms (1264uS), поэтому значениеOCR1A = 1264us/4us = 316

§ Servoугол 180 градусов требуется ширина импульса 2.140ms (2140uS), поэтому значениеOCR1A = 2140us/4us = 535

Такимобразом, мы можете вычислить значение OCR1A (или OCR1B для второгосервопривода) для любого угла. Заметимчто значение OCR1x колеблются от 97 до535 для углов от 0 до 180 градусов.

Программа управления двигателем.

Демонстрационнаяпрограмма приведена ниже, показано, как использовать сервомоторов смикроконтроллером AVR. Работы программы очень проста, она начинается синициализации таймера и PWM.В начале фиксируеться сервопривод на 0 градусов, азатем перемещается на 90 градусов и подождатв некоторое время перемещается на135 градусов, и наконец, на 180градусов. Этот процесс повторяется до тех пор, пока привод подключен к питанию.

Параметрыдля правильной работы программы.

  • LOW Fuse = 0xFF и HIGH Fuse = 0xC9
  • Частота= 16 МГц.
  • Сервомоторклеймо Futaba S3003 .
  • MCUявляется AtMega32 или однокристальный микроконтроллер ATmega16.

цифровая электроника вычислительная техника встраиваемые системы

Простой контроллер серводвигателя на одной микросхеме

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

Читайте также:  Технология сварки алюминия полуавтоматом

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

На серводвигатель обычно нужно подавать импульс каждые 20 миллисекунд (0.02 секунды). Длительность импульса будет определять, насколько провернется вал. Как правило, импульс длительностью 1.5 мс провернет вал в положение 90 градусов. Это называется нейтральное положение. Если импульс короче 1.5 мс, вал повернется в положение близкое к 0 градусов. Если импульс будет длиннее, чем 1,5 мс, вал окажется ближе к 180 градусам.

Данная схема предназначена для подачи на серводвигатель управляющих сигналов. Микросхема IC1 работает в качестве мультивибратора в автоколебательном режиме, который вырабатывает требуемые импульсы. Потенциометр VR2, резистор R1 и конденсатор C1 определяют границы временного диапазона импульса. Минимальное значение при варьировании VR2 будет в промежутке 2.07-1.03 мс, а максимальное 40.5 мс. Регулируя VR1, можно установить точное время. VR3 регулирует управляющее напряжение 1.6 В, подаваемое на вывод 5 микросхемы IC1.

Управляющее напряжение может также быть подано извне. Тогда VR3 должен быть исключен. Управляющее напряжение можно взять с переменного источника питания с выходом 0-10 В. При изменении этого напряжения вал сервомотора повернется в новое положение в соответствии со значением напряжения. 0 вольт подразумевает нахождение вала на одном конце, 10 вольт – на другом, а 5 воль – посередине.

Отправить ответ

  Подписаться  
Уведомление о
Adblock
detector