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

В мрежата много статии, свързани с присъединяването на механизми за микроконтролери, но в общи линии повечето от употребите вече съществуващите платформи като Arduino или неговите клонинги, но свързването с нормална MK достатъчно информация лошо. Това беше perelopacheno вагони статии спални, едната серво (героичната смърт от прегряване - но не напразно в края на краищата) и е постигната целта. В тази статия ще се опитам да ви кажа, че в крайна сметка дойде и се сблъскват с предизвикателствата.

Вие първо трябва микроконтролер. За идеите ми отне само два PWM канал и първоначално бе избран MK ATmega8, но след това бе решено да се използват Attiny2313, тъй като на фърмуера няма да отнеме много място, и има 4 PWM канал, така че идеята изглежда по-печеливши. Серво бил купен TowerPro SG90 които едва наскоро е успял да намери листа с данни по-малко добри. Сравни цените на различни магазини (в радио по някаква причина изобщо или не са чували за тях или не разполагате с такива изобщо) в нашата страна, най-евтиният в цената + доставка достигна zelectro.

На диаграмата Задайте минимално необходими за свързването на МК. Разбира се, че е възможно да се хвърли кварцов резонатор и да използвате вътрешния часовник MC, но тъй като аз maketku използвате - решили да използват външен кристал. JP1 съединител се използва за свързване на серво. Чрез сключването №1 JP1 съединител свързва тел серво сигнал заключи №2 свързан от 5 V единично захранване, и на изхода №3 - GND трябва да бъде свързан с отделно захранване с GND MC.
Веднага трябва да се каже, защо се използва отделно захранване: като задвижването се консумира твърде много го захранва от USB порт на компютъра и идва от ниско напрежение вал серво започна конвулсивно потръпваше.

След това можете да започнете да пишете фърмуер за MC. Първо трябва да се изчислят стойностите за PWM. За да се изчисли използване на формулата:

Fpwm = FOSC / N * (1 + TOP);
където: FOSC - честота на кварцов резонатор, п - честотен делител


Ние замени нашите данни за изчисляване:


PS. за тези, които са твърде мързеливи, за да обмислят инвестиции в калкулатор за изчисляване на стойността.

Също така, ние се нуждаем стойностите на крайните положения на сервото което обикновено се посочват във фиша на Сервомеханизмите. За този модел трябваше да избере метод научна основа на посочените в листа с данни: 0 = около 1000 и 180 = 3400. За по-голяма яснота, осъществяват непрекъснато въртене серво вал от 0 ° до 180 ° и обратно.

фърмуер самия код тук:

#include
#include

Началото // // *** *** програма
вътр основна # 40; празнота # 41;
# 123;
DDRD = 0x00; // зададете всички пристанища като входове DDRD
PORTD = 0x00; // настроен логика 0 на всички пристанища DDRD

// задаване на таймер 1 в режим на бързо PWM 14 режим (продукция на ПБ3 порт)
TCCR1A = # 40; 1 < TCCR1B = # 40; 1 <

DDRB | = # 40; 1 <<3 ) ; //устанавливаем PB3 как выход

ICR1 = 29999; // период = 20 милисекунди

докато # 40; 1 # 41;
# 123;
за # 40; I = 1000; аз <3400 ; i = i + 10 ) //перемещение вала сервы от 0 до 180 градусов
# 123;
OCR1A = I;
_delay_ms # 40; 10 # 41; ;
# 125;

за # 40; I = 3400; I> 1000; I = I - 10 # 41; // серво движение на вала 180 до 0 градуса
# 123;
OCR1A = I;
_delay_ms # 40; 10 # 41; ;
# 125;
# 125; ;
# 125;

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

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