правильный PPM & SERVO

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
CS16AMX
Нашел транзистор. Понюхал.
Сообщения: 195
Зарегистрирован: Вт ноя 30, 2010 00:50:40

правильный PPM & SERVO

Сообщение CS16AMX »

задался давным давно сборкой квадрокоптера, всё почти закуплено давно валяется, но проблема в сигнале серво.
читал ,гуглил все пишут как один сигнал должен быть 1-2мс частота 400гц.
врубил шим,настоил на 1.5мс ну вроде попал близко по периуду,но не по частоте .
далее в сети напоролся на тестер серво ,мега 16
там частота низкая и на весь порт д ,тоесть уже понятно что програмный
может кто подсказать как в cvavr серво сигнал получить?
Аватара пользователя
GRAF
Мудрый кот
Сообщения: 1867
Зарегистрирован: Ср янв 23, 2008 22:11:54
Откуда: Калининград

Re: правильный PPM & SERVO

Сообщение GRAF »

http://cdxp.zx6.ru/archives/355 - Управление сервомашинкой при помощи аппаратного ШИМ
http://my-avr.at.ua/publ/1-1-0-23 - аппаратный ШИМ
Аватара пользователя
m.ix
Друг Кота
Сообщения: 16545
Зарегистрирован: Вт сен 07, 2010 03:01:06
Откуда: Moscow-Izmaylovo
Контактная информация:

Re: правильный PPM & SERVO

Сообщение m.ix »

Сам сейчас давнособранный тестер юзаю.
http://www.youtube.com/watch?v=et8vpnKXlKc проверка серво машинки
http://www.youtube.com/watch?v=iHGfgSQHZEg проверка оборотов

сейчас управляю им скоростью винта

Там ещё есть функции которые не пробовал кроме вольтметра.
Сигналы идущие с сервомашинок.
Лечу лечить WWWашу покалеченную технику.
CS16AMX
Нашел транзистор. Понюхал.
Сообщения: 195
Зарегистрирован: Вт ноя 30, 2010 00:50:40

Re: правильный PPM & SERVO

Сообщение CS16AMX »

первая ссылка супер но почемуто не вкурю,почему юарт не пашет и переменная не меняет периуд
CS16AMX
Нашел транзистор. Понюхал.
Сообщения: 195
Зарегистрирован: Вт ноя 30, 2010 00:50:40

Re: правильный PPM & SERVO

Сообщение CS16AMX »

по сути вот это чудовище ,непойму ,почему цыкл стоит?
[*
#include<mega16.h>
#define TOP 10000
#include <stdio.h>
#include <delay.h>
#define servo1(a) OCR1B=a/2
#define servo2(b) OCR1A=b/2
void servo1_position(int pos)
{
OCR1A = pos/2;
}

void servo2_position(int pos)
{
OCR1B = pos/2;
}
char i;



void main(void)
{
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x33;
//настраиваем Timer1
TCCR1A=0xA0;
TCCR1B=0x12;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=TOP>>8;
ICR1L=TOP; //максимальное значение таймера
OCR1B=0x00;
OCR1A=0x00;

DDRD=0x30; //PORTD4 & PORTD5 сконфигурированы на выход
servo1_position(1000+i);
servo2_position(1300); //на PD4 аналогично, но длительность импульса уже 1300 мксек
printf("%u",OCR1B);
while(1); { printf("%u",i);

OCR1B++;}
}
]
Вложения
15_P7WM.rar
(80.42 КБ) 187 скачиваний
olegtur77
Встал на лапы
Сообщения: 128
Зарегистрирован: Сб мар 17, 2007 00:17:45
Откуда: Kiev
Контактная информация:

Re: правильный PPM & SERVO

Сообщение olegtur77 »

Под коптер есть прошивки 400Гц на регуляторы Turnigy серия PLUSH, или уже готовые ,с прошивками для коптера на RCtimer. Первые делали самодельные с управлением по I2C, но сейчас мало кто занимается, в основном перешли на готовые регули.
Ответить

Вернуться в «Разные вопросы по МК»