реклама на сайте
подробности

 
 
> Управление сервомотором, нужны идеи, алгоритмы
KSN
сообщение Aug 28 2008, 10:06
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 404
Регистрация: 3-12-04
Из: Новосибирск
Пользователь №: 1 304



Есть сервомотор, который управляет перемещением объекта. На вход подаем два сигнала: step и dir. Частота сигнала step задает скорость перемещения:V=k*f, V - линейная скорость перемещения объекта[m/s], к - коэфф; f - частота входного сигнала, Hz. Надо линейно разгонять объект, двигать его и затем тормозить(тоже равноускоренно). Как реализовать ускорение/торможение на микроконтроллере?
Вариант1:
Таймер1 в режиме счетчика и таймер2 в режиме ШИМ.
Запускаю таймер1, который будет остчитывать тики t. По каждому тику вычисляю скорость в данный момент по V = a*t,(ускорение задается), пересчитываю скорость в частоту, разрешаю обновление регистра таймера2. По окончании периода таймера2, автоматически запишестя новое значение частоты. Не устраивает одно: например, тик t=20ms, при пересчете скорости получим частоту ШИМ 100Гц(например), получится, что основной таймер в "холостую" протикает 5 тактов, чего не очень хочется. Напрашивается решение: изменять длительность тика основного таймера1, но чего-то туплю, подскажите как пересчитать?
Можно ли реализовать только на одном таймере?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th June 2025 - 18:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.01341 секунд с 7
ELECTRONIX ©2004-2016