Аналоговый сервопривод

Views: 1717


Принцип построения управления аналоговым сервоприводом от PIC-контроллера.

s3030Подключение аналогового сервопривода выполняется по трем проводам:

  • черный (коричневый) – общий.
  • красный – питание (4,8-6,0 Вольт).
  • белый (желтый) – управление.

Сервопривод позволяет поворачивать вал до 180 градусов. Для управления необходимо на белом проводе сформировать управляющие импульсы длительностью от 1 до 2 миллисекунд с периодом 20 миллисекунд. Длительность импульса управления от 1 до 2 мс – это стандартные параметры и реально могут отличаться для выполнения полного вращения вала (на 180º), но на практике для управления исполнительными механизмами применяется меньшие углы. Период тоже понятие относительное и от может быть как меньше так и больше, все зависит от параметров системы управления и самого выбранного привода.

Удобно для управления использовать CCP модули микроконтроллера. В новых современных моделях (например, PIC16F1936) их количество достигает 6. Это количество модулей достаточно для создания полноценных устройств управления моделями, роботами…

CCP-модуль позволяет создавать независимые ШИМ которые могут с успехом управлять аналоговыми (и цифровыми) приводами.

servo_02aПри настройке CCP модуля в режиме ШИМ нам доступно 10 бит управления длительностью. Для управления длительностью необходимо загружать числовое значение в регистр CCPRxL (8 бит) и младшие биты (0-1) в регистр CCPxCON. В режиме ШИМ CCP модуль работает совместно с таймерами TMP2/4/6. Эти таймеры формируют период ШИМ. Формируемая длительность тесно завязана с тактовой частотой микроконтроллера и для аналогового привода придется задавать более низкую тактовую частоту что не всегда приемлемо для быстродействия системы управления.

 Таймер имеет следующую структуру:

servo_01

На вход поступает тактовая частота деленная на 4, после этого идет предделитель и сам таймер, с регистром периода. Нам необходимо сформировать период с длительностью близко к 20 мс. 20 мс – это частота на 50 Гц. Высчитаем приемлемую тактовую частоту: как это сделать? Необходимо

  • требуемую частоту  (50 Гц) умножить на величину делителя таймера (256, значение берем максимальные, для получения максимальность тактовой часты).
  • далее умножаем на максимальное значение предделителя 64.
  • потом на 4 (входная тактовая от частоты задающего генератора контроллера)

50*256*64*4=3276800

Мы получили тактовую больше трех мегагерц, выберем 4 (из стандартного ряда внутреннего генератора)

servo_02

Проверим при заданной тактовой какая у нас будет длительность периода

Период = 1/(4000000/4/64/256) = 1/60 = 16 мс.

Получаем 60 герц на выходе это где то 16 мс. Для нашего привода S3003 это в приемлемом допуске.

Настройка тактового генератора в программе

// настройка генератора 4мГц 
 OSCCON=0b01101000;
       // ||||||||
       // ||||| ++-- SCS<1:0> основной генератор (работа через PLL) 
       // |++++----- IRCF<3:0> 1101 = 4 MHz HF
       // +--------- SPLLEN умножитель 0-отключен, 1-включен

Настройка модуля CCP и таймера TMP2 в режиме ШИМ.

CCP1CON=0b00001100; // настройка модуля в режиме шим
T2CON=0b00000111; // настройка таймера
PR2=255; // задание периода ШИМ
CCPR1L=0; // очистка регистра длительности =0

Теперь для управления сервоприводом необходимо определиться со значениями загружаемыми в CCP модуль для формирования длительности импульса в пределах 1-2 мс.

Дискретность длительности формируемого ШИМ рассчитать просто. Если период 16 мс, то 16/1024 (10 разрядный ШИМ) получаем 0,016 мс. Для формирования длительности импульса в 1 мс необходимо загрузить число 1/0,016=62, а для формирования длительности 2 мс = 125. Но это все теоретические выкладки (но они конечно тоже будут работать и формировать вращение вала на угол в 90%). Но если необходимо будет подобрать больший угол поворота, то необходим экспериментальный подход. В моем приводе максимальный угол поворота близкий к 180 градусам формируется при подаче длительностей в диапазоне от 0,63 мс до 2,23 мс.

servo_03

servo_04

При этом максимальное и минимально значение записываемое в ШИМ составляет 40 – 140.

Для удобство управления, проще вводить (как мне кажется) данные в процентах. Т.е. привод в крайнем “левом” положении 0%, посредине – 50%, кране “правое” – 100%.

В программе введем константы

#define max_p 140; // масимальный параметр в шим соответствующий 2 мС
#define min_p 40; // минимаотный параметр соответствующий 1 мС

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

char koef; //коэффициент преобразования
char polog; // положение в процентах от 0-100%

вычисление коэффициента сделаем при инициализации программы один раз

koef=max_p; // 
koef=koef - min_p; // 
koef=(koef*10)/100; //

а для загрузки значения в ШИМ для формирования управляющих импульсов

//преобразование процентов в значение для загрузки в ШИМ 
 pwm_reg=((koef*polog)/10)+min_p;
 pwm_reg2=pwm_reg<<6; // 
 pwm_reg2=pwm_reg2>>2; // 
 CCP1CON &= 0b11001111; // 
 CCP1CON |= pwm_reg2; // 
 CCPR1L=pwm_reg>>2; //

Для тестирования возьмем плату ILLISSI-B4-03-primum с контроллером PIC16F1936. А для управления и индикации плату ILLISSI-4С-01-secundo.


Подключение сервопривода к плате ИЛЛИССИ-4В

Servo_0014


Фото демопроекта







  • Servo_007

    Servo_007
  • Servo_009

    Servo_009
  • Servo_006

    Servo_006







Видео работы демонстрации работы сервопривода.


Файлы проекта

[box title=”Файлы для загрузки” color=”#521BDE”]Компилятор HI-TECH C Compiler for PIC10/12/16 MCUs (PRO Mode)  V9.83, MPLAB 8.88.[wpdm_file id=72][/box]



Это может быть интересно


  • LED модуль P10C4V12LED модуль P10C4V12
    Views: 3324 LED панели на обычных регистрах типа 74HC595. Они выпускаются как монохромные так двух и полно цветные, особенность, что они предназначены для текстовой информации и имеют один уровень яркости. Общую яркость …
  • TDA7294 part 2TDA7294 part 2
    Views: 720 Це друга частина проекту TDA7294, початок дивись тут. Тут ви знайдете повністю проект високоякісного підсилювача на TDA7294, схема, 3D моделі, гербер файли для виготовлення друкованої плати. І звичайно …
  • TDA7294 part 1TDA7294 part 1
    Views: 505 TDA7294 має унікальні дані для створення підсилювачів звукової частоти HI-FI класу. Варіант застосування є конфігурація BRIDGE (мостова схема включення), де використовуються два TDA7294, як показано на схематичній діаграмі …
  • Простой цифровой вольтметр ch-c3200Простой цифровой вольтметр ch-c3200
    Views: 2686 В этой статье рассмотрен пример создания простого вольтметра постоянного тока на основе печатной платы ch-c0030pcb, а при возможности использования внешнего делителя и вольтметр переменного тока. Дан краткий принцип …
  • Проект с использованием MCC часть 15Проект с использованием MCC часть 15
    Views: 1772 EUSART – Универсальный асинхронный приёмопередатчик (УАПП, англ. Universal Asynchronous Receiver-Transmitter, UART) — узел вычислительных устройств, предназначенный для организации связи с другими цифровыми устройствами. … читать на вики. Внесем изменения в нашу схему, …
  • BMP280 – температура и атмосферное давление – учебный проектBMP280 – температура и атмосферное давление – учебный проект
    Views: 2292 Учебный проект на PIC32 и светодиодной панели P5 (2121)-168-6432-80 (32*64). Проект позволяет ознакомиться с простой графикой и с чтением давления и температуры с датчика BMP280. Для тестирования необходимо …
  • USB K-L-line адаптерUSB K-L-line адаптер
    Views: 4773 USB K-L-line адаптер предназначен для связи персонального компьютера с диагностической шиной автомобиля – интерфейс ISO-9141. Этот проект предназначен для сборки недорого устройства с использованием специально для этой цели …
  • Светодиоды со встроенным драйвером WS2812BСветодиоды со встроенным драйвером WS2812B
    Views: 1080 Производитель http://www.world-semi.com Краткое описание продукции фирмы Каталог продукции” catcatcat_ws_19 catcatcat_ws_15 catcatcat_ws_11 catcatcat_ws_07 catcatcat_ws_03 catcatcat_ws_18 catcatcat_ws_14 catcatcat_ws_10 catcatcat_ws_06 catcatcat_ws_02 catcatcat_ws_05 catcatcat_ws_09 catcatcat_ws_13 catcatcat_ws_17 catcatcat_ws_16 catcatcat_ws_12 catcatcat_ws_08 catcatcat_ws_04 catcatcat_ws_01 This jQuery …
  • Гаджеты для домашней автоматики – Емкостной сенсорГаджеты для домашней автоматики – Емкостной сенсор
    Views: 1830 Управление светодиодным освещением – Сенсор емкостной. Данный гаджет предназначен для управления освещением где необходимо включением освещение сенсорным прикосновением. Датчик позволяет управлять светодиодной нагрузкой в виде модулей или светодиодных лент …
  • Одноканальный емкостной сенсор – AT42QT1012Одноканальный емкостной сенсор – AT42QT1012
    Views: 2487 Описание сенсора [wpdm_file id=242] Незаконченный проект, так-как сенсор не оправдал своего назначения, не рекомендую, просто выброшенные деньги. Особенности. • Количество сенсоров – один, режим переключения ( touch-on/touch-off ), а также программируемая …



Поделись этим!