ПредишенСледващото

Свържете сервото към микроконтролера - как да се свържете - AVR - проекти в областта на микроконтролери

Серво като стъпков мотор. елемент е точна кинематика и постига точни механизми за позициониране. Въпреки това, за разлика от стъпков двигател, обратна връзка серво, което позволява по всяко време да следите точно ъгъла на завъртане на вала. Различните видове енкодери и потенциометри могат да бъдат използвани като източник на обратна връзка.

В статията се обсъжда връзката и работата с младите членове на Сервомеханизмите - т.нар сервомашинки - много обичани сред robotostroiteley и моделиране.

Серво се състои от корпус, в който е заграден малки колектор моторни, скоростни кутии и управляваща електроника.

Свържете сервото към микроконтролера - как да се свържете - AVR - проекти в областта на микроконтролери

Потенциометрите се използват като обратна връзка. Следователно, тези двигатели са ограничени от ъгъла на завъртане около оста на вала. По този начин в придобитото дома Servakh Futaba S3003, на ъгъла на изходящия вал е 225 °.

Спецификациите Futaba S3003

потенциометър обратна връзка е поставена директно на изходящия вал, чрез контрол серво единица това писти точната позиция на вала: промени резистентност потенциометър пропорционално на ъгъла на завъртане. Четене на съпротивлението, управляващият блок сравнява тази стойност с това, което трябва да бъде в дадена позиция вал. Ако тези стойности са различни, управляващият блок инструктира мотора да се върти вала в предварително определена посока чрез намаляване на стойностите на разликата. Достигането до положението на вала, когато стойността на потенциометър съвпада с предварително определена стойност, двигателят спира. стойности за четене от потенциометъра и сравнява това се случи с висока честота, следователно изходящия вал ще са склонни да заемат определена позиция, с промяна на външния товар.

Серво дизайн е направен така, че въртящия момент от двигателя към изходящия вал се предава чрез редуктор с голямо предавателно число, така че консумацията на енергия и малкия размер, серво може да осигури по-добро сцепление.

сигнал импулс се използва с период от 20 милисекунди и продължителност от 0,8 до 2,2 MS като управляващия сигнал. Това е стандартна серво управление. Колкото по-дълго дойде импулс, по-голямата ъгъл да се върти вала на серво. За да разпръсне период серво пулс може да бъде намалена до 10 м.

Свържете сервото към микроконтролера - как да се свържете - AVR - проекти в областта на микроконтролери

Управляващият сигнал се подава към Servin на сигнална линия S. По мое серво е бял, а в някои модели - жълт. В допълнение към проводника на сигнал от Сервомеханизмите отида две жици - захранване линия - партер (черно) и мощност (в червено)

Свържете сервото към микроконтролера - как да се свържете - AVR - проекти в областта на микроконтролери

Както може да се види Серве управлява съвсем проста - достатъчно, за да карам импулсен сигнал с желаната честота и работен цикъл. Този сигнал може да бъде PWM generiovat. или напишете своето собствено обработка функция таймер прекъсване. Но в Bascom-AVR вече са вградени команди за контрол на серво устройства - Серво. И това се разгледа.

На първо място, трябва да конфигурирате връзката на Сервомеханизмите:

Конфигуриране двигатели = X. Servo1 = PORTB. 0. Servo2 = PORTB. 1. презареждане = Var

Серво = X; показва броя на сервомашинки свързани, можете да свържете до 14 сервозадвижвания.

Servo1 = PORTB. 0; е порт за свързване на първата сервото

Servo2 = PORTB. 1; показва пристанището връзка на втория серво

Зареди = Var; Var е времето в микросекунди, която тече между прекъсване на таймера.

По подразбиране, организацията използва Timer0 прекъсне, така че да я използват за свои цели няма да се случи. Bascom-AVR ви позволява да прехвърляте услугата прекъсване за всеки друг таймер, например, за да се освободи Timer0 и таймер 1 zadestvovat достатъчно, за да го посочи в конфигурация линия:

Конфигуриране двигатели = 2. Servo1 = PORTB. 0. Servo2 = PORTB. 1. презареждане = 10 Таймер = TIMER1

В края на краищата там е конфигуриран само за да направляват нашия серво. Това се прави със следната команда

и - серийния номер на сервото

F - променлива, чиято стойност определя ъгълът на въртене на серво вал

Тест код в пълен размер:

$ Regfile = "m8def.dat" 'микроконтролер ATmega8
$ Crystal = 8000000 ", работещи при честота на 8MHz

"Конфигуриращи портове за свързване на предавки
Config PORTB. 0 = изход
Config PORTB. = Резултат 1

"Конфигуриране на свързване на две сервомашинки
Конфигуриране двигатели = 2. Servo1 = PORTB. 0. Servo2 = PORTB. 1. презареждане = 15

Дим променлива F AsByte "за първи сервото
Дим променлива S AsByte "за втори сервото

"Позволете прекъсва
EnableInterrupts

F = 15 'се дава стойността на променлив ъгъл серво вал
S = 70

Автоматични връзки не носят, мисля, че един сигнал жица няма да доведе до проблеми;) Тя може да бъде свързан към порт на микроконтролера директно, но вие можете чрез резистор няколко стотин ома - за презастраховане.

Чрез вариране на стойностите на F и S peremmennyh може промяна на ъгъла на завъртане на първата и втората двигатели, съответно. Колкото по-ниска настройка за презареждане стойност, толкова по-бързо и по-умен от нашия серво ще се завърти до желания ъгъл.

За работата си взе сърв обхватите Серво стойности (а), в която може да се върти вала. В крайна позиция на вала заема стойност 0 и 150, съответно, на стойност на вал 75 заема междинно положение.

Свържете сервото към микроконтролера - как да се свържете - AVR - проекти в областта на микроконтролери
Свържете сервото към микроконтролера - как да се свържете - AVR - проекти в областта на микроконтролери
Свържете сервото към микроконтролера - как да се свържете - AVR - проекти в областта на микроконтролери

Серво (а) = 0 Servo (A) = 75 Серво (а) = 150

Кажи ми, аз се опитвам да се чете сигналите "серво" на радиото, но по някаква причина, данните за четене имат висока вариация (безредукторни не идиот, но данните са прочетени от високо разпространение)?
Четох от командата: Таймер (мярка импулс) или ADC (измерено напрежение).
Най-интересното е, че измереното напрежение с DMM и напрежение "на канал серво" е стабилен (всичко е наред), но четенето на напрежението с помощта на ATmega8 (ADC команда), устройството постоянно произвежда данни с голям спред. Ти не знаеш защо правото успеят да се разгледа на напрежението с ATmega8? Са свързани в едно и също, и гасящ резистор, но мисля, че стрес все още ходи.

Може би има начин да брои сигнали "серво" по радиото?

играе с voschem на програмата не знам как вашата машина и ми HITEC HS 422, от сегмента отказа да работи на 8 мегахерца, истината е започнала да atyuni 2313, но 4 добра стабилност и 2 мегахерца много нахален Така че, тук бих искал да било описание на детайли какво друго може да бъде в една програма vtyuhat, може да има механизъм за регулиране наклона на резистора там или далекомер примера тук БЛАГОДАРЯ

Свързани статии

Подкрепете проекта - споделете линка, благодаря!