roboforum.ru

Технический форум по робототехнике.
Текущее время: 26 ноя 2024, 19:46

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Управление 3-мя серво без "Delay"
СообщениеДобавлено: 08 сен 2016, 11:25 
Не в сети

Зарегистрирован: 16 янв 2016, 09:33
Сообщения: 7
Всем ку!

Вопрос, как не "паузить" Arduino Uno при управлении 3-мя серво? Например, первая серво должна крутануть туда-сюда 1 раз каждые 20 секунд, вторая серво на каждой 21-ой секунде (время от сработатывания первой сервы) должна прокрутиться 10 секунд туда-сюда без останова, ... И плюс третья серво же еще - та просто должна непрерывно работать туда-сюда, начиная с 5-й секунды запуска системы и до момента выключения системы... Паузы "delay" просто всё портят - один двиг крутит, компьютер соответственно - на паузе, ну или ждёт окончания паузы, чтобы начать выполнять следующую команду в цикле программы, ну и о синхронной работе сервоприводов тут можно и не мечтать. Что делать, друзья?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление 3-мя серво без "Delay"
СообщениеДобавлено: 08 сен 2016, 13:12 
Не в сети

Зарегистрирован: 03 янв 2012, 12:55
Сообщения: 3298
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...
ну так не делайте алгоритм линейным
стройте его так, что за 1 проход производится "одновременная" обработка движений на ВСЕХ сервах


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление 3-мя серво без "Delay"
СообщениеДобавлено: 08 сен 2016, 13:38 
Не в сети

Зарегистрирован: 16 янв 2016, 09:33
Сообщения: 7
Madf писал(а):
ну так не делайте алгоритм линейным
стройте его так, что за 1 проход производится "одновременная" обработка движений на ВСЕХ сервах


Ну.. например?
Допустим, одну серву крутим постоянно, вторую каждые 5 сек один раз, третью каждые 21 сек крутим 10 раз... Как "нелинейно" это сделать, не пойму что-то... Ардуинка-то одна...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление 3-мя серво без "Delay"
СообщениеДобавлено: 08 сен 2016, 15:08 
Не в сети

Зарегистрирован: 03 янв 2012, 12:55
Сообщения: 3298
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...
http://forum.arduino.cc/index.php?topic=146230.0
всё есть в гугле


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление 3-мя серво без "Delay"
СообщениеДобавлено: 08 сен 2016, 18:22 
Не в сети
Аватара пользователя

Зарегистрирован: 12 авг 2010, 15:10
Сообщения: 897
Откуда: Астраханская обл.
2Мадф: Не все по-аглицки шпрехают. Надобно попонятнее, к Яндексу посылать.

2Атироз: По моему разумению, проще в бесконечной петле проверять пробежавшее время, и в зависимости от его значения выполнять команды. Функция millis() возвращает количество миллисекунд от старта. Делите её на время, заданное у вас тиком, и или остатки от деления анализируйте, или количество тиков, или оба значения сразу. :)

Например, посмотрите на реализацию Blink без задержек: http://arduino.ru/tutorials/BlinkWithoutDelay

Есть еще неплохие библиотеки, позволяющие потоки организовать, но это, наверное, вам будет рановато.

_________________
Соединяй и здравствуй.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO