Параллельное выполнение 2-3 задач
- Войдите на сайт для отправки комментариев
Доброго времени суток.
пришел наконец ардуино, побаловался с подлючением led, servo, motor....
хочу попробовать соорудить такую схемку: 2-3 датчика движения и включение света на лестничной клетке, в коридоре квартиры и предположим в ванной по датчикам расположенным в этих помещениях... интересен вопрос- возможно ли одновременное управление коммутацией света в двух(трех) местах, отработка предположим сразу по двум датчикам одновременно. именно одновременно. датчики ultrasonic sr04. Как все это соорудить на одном сонаре понятно, а вот на двух расположенных в разных местах...(если одновременно должны сработать именно два сонара в разных помещениях).помимо таймера можно еще что нибудь придумать?
в какую сторону искать?
заранее спасибо
millis()
Мигаем светодиодом без delay().
спасибо
пока нет сонаров сделал заготовку на кнопках.. вот такой код:
есть вопрос: миллис делал для LED1, поидее в viod loop шунтировать LED1 не надо, но если делаю без шунтирования, то нажимая КНОПКУ 1 надо ждать не отпуская кнопку время когда закончится миллис и только тогда диод включается и свое отрабатывает...не туда поместил код на включение LED1?
можно ли добавить в код миллис и для LED2? чтобы миллис был и для LED 1 и LED2.
типа такого:
конечно объявив соответствующие переменные..
уважаемый Максим помогите пожалуйсто с вопросом в этой ветке
пока нет сонаров сделал заготовку на кнопках.. вот такой код:
есть вопрос: миллис делал для LED1, поидее в viod loop шунтировать LED1 не надо, но если делаю без шунтирования, то нажимая КНОПКУ 1 надо ждать не отпуская кнопку время когда закончится миллис и только тогда диод включается и свое отрабатывает...не туда поместил код на включение LED1?
А что собственно нужно сделать то?
Задержку включения или выключения?
А может и то и другое?
включение света по показаниям сонара(свет включается на 3 минуты к примеру, т.е задержку отключения), одновременная работа с 2-3 датчиками. Именно одновременная работа по2-3 сонарам, как сделать поочередно понятно более менее, а вот одновременно...
2, а лучше три ультрасоника. один на лестничной клетке, второй в прихожей... как человек попадает в зону действия датчика- включается на 3 минуты свет. одновременная работа по двум(хотелось бы и по трем датчикам) ультрасоникам, так как может понадобиться включение света одновременно в двух местах.
спасибо
не надо весь код. мне бы просто идею подсказать и указать на ошибку в моем коде
Как то так
Данный вариант работать будет, но не долго... Через ~20 дней так как
previousMillis
имеет тип long, произойдет ее переполнение и в ней начнут сохраняться отрицательные числа, в результате условия millis()>=previousMillis будет верно постоянно до тех пор пока не переполнится millis() последующие ~20 дней. То есть данный вариант решения будет ~20 дней работать и ~20 дней свет не будет включаться. Если же изменить на тип unsigned long, то картина становится получше, но опять таки через ~40 дней будет переполнение millis() и если это переполнение попадет на момент пока длится тот самый интервал, то свет не выключится до следующего срабатывания датчика.Поэтому лучше применять такую конструкцию:
Ну а что бы попросту не тыркать digitalWrite'ы, то так:
а что за конструкция?
Тоже самое что и
и что это даёт?
Это позволяет выполняться тому что в фигурных скобках только один раз после выполнеия условия millis()-previousMillis1 >= interval , при этом не задействуя еще каких либо дополнительных переменных:
Всё понял, да этот момент я упустил...
Я пока только Учусь :)
огромное спасибо. правда я сам хотел дойти до всего это :)...но все равно спасибо, (даже нашел опечатку в коде у уважаемого ivan_admin-строка 53:)) )...добавил третий LED, все работает изумительно, осталось дождаться посылку и баловаться с датчиками, хочу два включения света делать по сонарам, а третий по датчику звука... и про программирование- я так понял, все что выполняется в миллис, выполняется независимо от основного кода? миллис это и есть таймер МК? если миллис это таймер, то сколько может циклов миллис может быть в работе одновременно? 3?....если циклов миллис в работе может быть три одновременно, то можно ли сделать код к примеру на 4-5 циклов миллис, но работать единовременно только три цикла миллис?
спасибо.
http://arduino.ru/Reference/Millis
Это таймер(счётчик) как только включили МК он пошёл считать
А сколько раз ты его запоминаешь не имеет значения.
через 50 дней он переполнится и начнёт отсчёт с нуля,
так что об этом нужно позаботиться иначе после его обнуления счет будет гореть около 50 дней :)
Можно например просто перезагружать переодически МК
А насчёт опечаток, там много чего ещё можно переделать яж так для примера набросал.
Да и сам ещё только учусь...
спасибо. да и я тоже учусь...еще раз спасибо.
Здравствуйте. подскажите по праздному вопросу. вот к примеру экран TFT
http://www.ebay.com/itm/2-4-TFT-LCD-Touch-Panel-Display-TF-Reader-For-Arduino-UNO-R2-R3-A137-RED-/181301502091?pt=LH_DefaultDomain_2&hash=item2a3669608b
судя по его пинам- все цифровые и аналоговые ножки заняты. Или я может что то не так увидел?.....
т.е если тфт присобачил то ничего больше не подсоеденишь....только вывод информации?
или есть какие нибудь другие тфт экраны которые подойдут под уно, но чтобы можно было что нибудь еще подвесить на цифровые\аналоговые выходы?
спасибо
здравствуйте!у меня похожий вопрос,только у меня задача немного другая,необходимо выполнение нескольких задач абсолютно разного характера...по отдельности все работает у меня,с этим разобрался,а вот как соединить воедино ума не хвавтает,тыкните носом,пожалуйста,какой код использовать...а теперь сама задача:ардуино у меня с эзернет шилдом,сейчас управляю удаленно светом во дворе дачи,нужно прикрутить туда еще датчик газа,чтоб при обнаружении сработала пищалка и датчик дождя(использовать буду как датчик затопления),чтобы при утечке воды перекрыло двухходовым краном с сервоприводом ввод воды в дом..напомню,что по отдельности все работает...не судите строго,я нуб в этом деле,спасибо...
http://arduino.ru/forum/programmirovanie/svetodiod-gorit-kak-nuzhnyi-zaz...
ясно=)конкретика:
за основу взят вот этот скетч(конечно,писал не я,нашел в сети и скорректировал под себя).за основу он,так как он самый большой)
и вот банальный скетч мониторинга аналогово входа,с реакцией по значению...таких должно быть два,один на газовый датчик,второй на датчик дождя,соответственно
ну и вот с этого нужно слепить один скетч...
Использую http://blog.ksduino.org/post/42862084042/pseudo-multitasking-using-timer-in-arduino-sketch
нравится.
да,идею понял..буду разбираться....а то как-то немного разочаровался в Ардуино,все расхваливают,а по факту ничего кроме мигания светодиодами\реле\сервоприводами и прочей примитивщины оно не может..куча входов\выходов,а толку..вот яркий пример моя задача...чтоб ее реализовать,уже нужно как-то ухищраться,что-то выдумывать...безусловно понимаю что это от нехватки моих знаний,но всеравно впечатление какое-то такое=)
У вас нет библиотек от этого lcd?
нету. я пока не планировал покупать этот девайс, поэтому и пойском библиотеки не заморачивался...можно у продавца поинтепесоваться, или спросить у гугла.а без библиотеки его и покупать не стоит, будет валяться..
да,идею понял..буду разбираться....а то как-то немного разочаровался в Ардуино,все расхваливают,а по факту ничего кроме мигания светодиодами\реле\сервоприводами и прочей примитивщины оно не может..куча входов\выходов,а толку..вот яркий пример моя задача...чтоб ее реализовать,уже нужно как-то ухищраться,что-то выдумывать..
Это надо распечатать и в рамочку повешать.
Это надо распечатать и в рамочку повешать.
эпитафия над воротами в кладбище разума "их наипали маркетолохи".
Доброго времени суток. Получил сонары и много еще чего...Подправил код Максима под работу с двумя сонарами, включение света по срабатыванию сонара на 3 минуты. Посмотрите плиз и выскажите ошибки пожалуйста. Код проверил, работает нормально, но может есть какие то нюансы...позже прикручу фоторезисторы...
Попробовал залить на ардуино про мини демо-код блинк...заливал через уно(есть usb to rs232 pl2303hx, но на нем нет пина ресет, а с кнопкой не охота было эксперементировать...), все работает...
Есть вопросы - замерил ток потребляющий УНО ардуино- когда включены 2 реле, в работе 2 сонара, горит 2 LED- ток потребляет около 200 мА., а еще планирую прицепить еще один сонар и одно реле(и еще может, что подцеплю)...т.е ток должен будет быть около 300 мА(LED понятно, что запитаю и запитано отдельно)...опасаюсь что спалю все...а к мини и вообще боюсь подцеплять. Понятно, что можно через транзисторы, но охота подачей внешнего U на блок реле.Пробовал подавать питание внешнее и на сонары и на реле(GND и +5В.)--увы, не работает...сейчас буду погуглить поискать про внешнее питание, но может кто подскажет что нибудь.
Использую 2-канальный блок реле 5V Two 2 Chanel Relay Modul With optocoupler
http://www.ebay.com/itm/181026509345?ssPageName=STRK:MEWNX:IT&_trksid=p3...
сонары - HC-SR04
в описании указано, что обмотка реле потребляет 15-20мА....т.е получается - 40мА -реле и 160 мА сонары получается, т.е по 80 мА на каждый сонар(сама ардуина почти нечего не ест)...завтра попробую посмотреть сколько кушает одно реле, ну и потои один сонар( измеряю на разьме usb).....про мини потянет такую нагрузку?
Прикидываю,как сделать свет на сонаре на кухне...баги будут...остался один сонар, делать на пересечение(на двери ставить), т.е - вошел человек- включился, вышел-отключился,а если вошел-вошел-и через минуты 2-3 один вышел...., вот был бы еще один сонар...или ик датчик движения....
в ардуино про мини указано ток нагрузки на пинах входа/выхода 40мА, а на странице продавца max output 150mA...это имеется ввиду суммарная нагрузка по всем i/o которую может потянуть мини?
в ардуино про мини указано ток нагрузки на пинах входа/выхода 40мА, а на странице продавца max output 150mA...это имеется ввиду суммарная нагрузка по всем i/o которую может потянуть мини?
это имеется ввиду, что нужно читать даташиты на контроллер, а не надписи на трусах продавца.
по даташит - 40мА., но смутило 150мА max output
по даташит - 40мА., но смутило 150мА max output
всё, что в даташите - правда.
всё, что на странице продавца - ложь.
*так понятно? чего он про какие-то токи пишет - каким образом он их может гарантировать, если эти параметры зависят исключительно от производителя контроллера?
ага. понятно. HC-SR04 15 мА по даташит...по идее все должно пойти...
Народ привет ! Изучил меня некий вопрос так вот как по внешнему прерыванию трех последовательных очень коротких импульсов запустить три независимых таймера и чтоб по окончанию каждого из таймеров выполнить свое действие и сбросить таймер ? Подскажите а то мочи больше нет что я только не пробовал но так чтоб три не зависимо друг от друга не получается .
Только лопухи говорят "очень коротких импульсов".
А как же говорят гуру местного разлива .?
Просто нормальные говорят длительность и период и что хочется в результате.
Еще нормальные не хамят с порога.
А ещё спасибо говорят за то что учат, а не в позу становятся.
Удачи!
да разве это с порога?
МАГ, вы в какую ветку уже влезаете с совершенно посторонними вопросами? Похоже, это у вас прием такой - задавать вопросы как бы между прочим в совершенно левых ветках. Думаю, это затем, чтоб не привлекать лишнего внимания - ведь, как правило, вы ничего не понимаете в том, что спрашиваете и потому все ваши вопросы традиционно очень плохо сформулированы. Если б вы начали новую тему - в нее народ ходил бы глумится... а так может и прокатит :)
d 707 ве чё то тупите совсем. Тема называется "Параллельное выполнение 2-3 задач ". А вопрос мой "как по внешнему прерыванию трех последовательных очень коротких импульсов запустить три независимых таймера" разве это не есть параллельное выполнение задач?
А если вы такой умный то и ответили бы на мой вопрос. А то чё то кажется мне не в состоянии вы решить такую задачу.
ТАКУЮ задачу тут нихто решыть не в состоянии. И ты.
Так ответьте по человечески что да как, если ответ знаете .Зачем строить из себя не известно что .?
Да ладно, дед! Легко:
Покупаем три таймера, можно будильника "Слава", заказываем запуск на "Союз-Протон", а может и "Зенит" пойдет .. и по короткому импульсу с отсчетом 10-9-8.. "пуск" запускаем все это как и куда оно улетит. Деньга много нада и усё. Впрочем, студенты теперь народ не бедный вовсе. (СТУДЕНТ = Срочно Требуется Уйма Денег Есть Нечего Точка)
не. не по Сеньке шапка.