Многопоточность при работе с релейным модулем.
- Войдите на сайт для отправки комментариев
Доброго времени суток господа!
Подскажите плиз!
Возможно ли это реализовать в скетче?
Есть UNO и 5 вольтовый релейный модуль (инвертный, LOW включает, HIGH отключает) на 8 каналов.
Существует ли способ заставить работать эту связку по следующему алгоритму.
1. Реле включается на 6 мин сразу после включения питания модуля (и остается включенным все 5 минут).
2. Второе реле включается через минуту после включения питания модуля, на 30 секунд (первое включено!).
3. Третье реле включается через две минуты после включения питания, на одну минуту.
4. Включаются одновременно два реле четвертое и восьмое, сразу, как выключается третье, на 1 минуту (т.е. через 3 минуты).
5. Пятое реле включается сразу, как выключается четвертое и восьмое реле, на одну минуту.
6. Включается опять 3 реле на минуту !
7. Включается опять четвертое реле после того, как выключается третье.
Я понимаю, что это вопрос многопоточности, которую не поддерживает Ардуина, но так же знаю, что есть умельцы, которые эмулируют многопоточность программно.
Если вопрос глупый или раздражающий, просьба не троллить, а ответить по существу.
Заранее спасибо!
P.S. Под пунктом 1. имеется ввиду первое реле !
Продолжительность 6 минут "все 5 минут" - это опечатка.
У мня есть многопоточность. Насыпать?
Я понимаю, что это вопрос многопоточности, которую не поддерживает Ардуина, но так же знаю, что есть умельцы, которые эмулируют многопоточность программно.
я не понимаю, что это вопрос многопоточности - у тебя тупой цикл ...12345671234567123...
Если вопрос глупый или раздражающий, просьба не троллить, а ответить по существу.
т.е. чорный червь соммения гложет, что чепуху о многопоточности програл?
Мда...
Дядя! Первое реле работает ВСЕГДА ! Все 6 минут !
Какой цикл ? Минимум уже несколько потоков одновременно.
Все остальные реле подключаются к работе первого на протяжении всего процесса - это раз.
Дважды отрабатывает цикл 3 реле, дважды отрабатывает цикл 4 реле с паралелльным включением 8 реле и без него.
А первое реле параллельно включено ! Следовательно 1 реле (один пин), 4 реле (второй пин), восьмое реле (третий пин) - это не многопоточность ?
Дядя!
мальчик, не ори - сейчас найдут твою маму.
Первое реле работает ВСЕГДА ! Все 6 минут !
...или все 5-ть. О_О
1. Реле включается на 6 мин сразу после включения питания модуля (и остается включенным все 5 минут).
Минимум уже несколько потоков одновременно.
сколько потоков?.. одновременно. О_О
это не многопоточность ?
это не многопоточность.
*что за "многопоточность"? - чего этот ребёнок хочет?
Многа таймеров
https://github.com/DetSimen/Arduino-
Спасибо, конструктивно!
Если што, рассказать, как прикрутить к твоему проекту могу только в пятницу. Пишы, если што, или суда, или мне в аську.
Многа таймеров
значения таймера миллис() недостаточно отцу нароссийской демократии?
Как вариант это
ПС:Это моя модефикация идеи DetSimen.
Qwone спасибо, сейчас попробую применить )
Получилось вот что:
При включении ардуины включилось первое реле, но (!) всего на минуту, потом включилось опять через 4 минуты и еще через 30 секунд опять выключилось (т.е. 6 минут постоянного включения нет)
Второе так и не включилось вообще.
Третье не включалось вообще.
Пятое не включалось вообще.
Шестое не включалось вообще.
Седьмое не включаллось вообще.
А вот 4 и 8 включились через 4 минуты и пропаботали минуту, как только они отключились включилось опять первое и через 30 секунд выключилось все вообще.
Посмотрите вот эту тему. Почти ваша задача. И решение в конце приведено. Его надо только расширить. http://arduino.ru/forum/obshchii/pomogite-osushchestvit-proekt-s-3-mya-t...
Qwone, спасибо добрый человек ! Методом "тыка" понял в чем было дело, поправил номера релюх и вроде заработало )
Не получается только впихнуть еще на минуту включение третей релюхи между отключением пятой и включением четвертой и шестой (именно 4 и 6, а не 4 и 8) и после отработки 4 и 6 минуту отключение всех релюх вообще без повторения цикла пока не отключится/включится ардуина.
Попробую и я свои 5 копеек
Разумеется прежде всего что бы писать код программы надо убедиться что задание внятно написано. Если и есть какие-то неточности, то они обязательно всплывут в скетче. И да если вы все-таки заинтересованы в получении скетча оформите задание хотя бы так
Вот код для задания по картинке
Я просто привожу метод по которому можно решать подобные задачи и при этом не лезть далеко в язык.
Vosara , спасибо большое, прекрасно работает ! А не подскажете, как можно параметры времени менять ?
В частности 5 реле должно отработать 30 секунд, а не минуту.
И есть ле не сложный способ изменения времени работы отдельных релюшек (если потребуется изменить) ?
Qwone, спасибо! Я согласен, что ТЗ должно быть более удобоваримое ) Просто неожиданно столкнулся с этой проблемой и возможно сумбурно изложил задачу.
И есть ле не сложный способ изменения времени работы отдельных релюшек (если потребуется изменить) ?
Если понимаеш как работает пограмма - сложности никакой НЕТ. Я немножко изменил и прокоментировал код - Постарайтесь разобраться, там не сложно. И еще Вы должны четко представля вашу задачу, что и через солько должно сработать.
Vosara, спасибо огромное за терпение и желание помочь !