Помогите новичку пожалуйста.
- Войдите на сайт для отправки комментариев
Пнд, 15/05/2017 - 13:22
Здравствуйте. я только учусь .
В общем суть такова: нужно сделать программу которая сигнализирует через какие то промежутки времени и ждёт ответа от человека в течении 5 секунд. Если ответа нет, то включается сигнализация. Это не что то очень мне нужное, но входит в курс обучения.
Понимаю что нужно сделать разбивки на, примерно 250 мс (потому что тупо delay(5000) заморозит программу и она не сможет получить сигнал с пина входного) и после каждого такого ожидания digitalRead(BUTTON).
но как завершить этот цикл через 5 секунд?
А вы готовы к большим пинкам от форумчан или вам только готовый код?
Гениальный неправильный ответ.
Гениальный неправильный ответ.
Это еще почему? Это только кусочек, как проверять действия с интервалом в 100мс. Еще нужно добавить флаг, что если ответ пришел, то true, если нет то to false и потом уже желать условие по результату.
Человек говорит , что delay(5000) ...Говно.А вы не нравится говно есть одним куском, то ешь по кусочкам delay(100)
Читайте внимательней вопрос. Речь как раз идет о разбивке длительной паузы в 5000мс на куски, чтобв промежутках можно было делать проверки, что я и показал в примере.
Читайте внимательней вопрос. Речь как раз идет о разбивке длительной паузы в 5000мс на куски, чтобв промежутках можно было делать проверки, что я и показал в примере.
Проблема человека не в разбивке delay() на множество коротких delay(). Вы что его полного альтернативного одаренного считаете. Хотя я уже не удивлюсь . А не знанию или не умению millis()
http://arduino.ru/Reference/Millis
Но похоже и вы о наличии этого инструмента не в курсе.
никогда клоунов на форуме не было - и, вот, снова.
класс титановый велосипед для delay без delay().
Ваш или мой?
Если Ваш, то учитесь и делайте. А если мой, то я сам сделаю как-нибудь.
Сюда-то Вы зачем пришли? Если есть вопросы, так обратитесь к своему преподавателю, он за ответы на Ваши вопросы деньги получает.
ОФФТОП:
Судя по примитивности задания это не ВУЗ, а ПТУ, как их теперь обзывают - "Колледж".
Вот зачем человек учится, если это ему не нужно? Сейчас служат 1 год, обычно - в своем регионе. На крайний случай - "плоскостопные войска" никто не отменял, а больные - все, есть плохо обследованные.
Отслужит, пойдет в охранники, а там и мелкого отбойщика дорастет. Хорошая, счастливая жизнь, не так?
Но похоже и вы о наличии этого инструмента не в курсе.
Не совсем понял для чего этот инструмент в данном вопросе. ТС нужно делать паузу в 5 сек и во время этой паузы не терять связь внешним миром. Ну или да, я чего то вобще не догоняю)
я чего то вобще не догоняю)
Да. И это очень мягко сказано.
я чего то вобще не догоняю)
Да. И это очень мягко сказано.
Да, но что то никакой конструктивной критики с тыканием носом в код нет, одни только прелюдия)
Да, но что то никакой конструктивной критики с тыканием носом в код нет
И не будет, ибо задолбали уже. И ТС со своим курсом обучения (хрен знает чему он там обучается, если такая задача его в тупик ставит) в Вы со своим искренним стремлением помь бездельнику получить липовый диплом.
И не будет, ибо задолбали уже. И ТС со своим курсом обучения (хрен знает чему он там обучается, если такая задача его в тупик ставит) в Вы со своим искренним стремлением помь бездельнику получить липовый диплом.
Ну я как бы ему код то не давал, дал только наводку как реализовать. Видимо что-то не так, вот и хотел бы узнать что именно, сам на этом языке всего не больше недели, но почему-то был уверен что все верно, ведь алгоритмы работы на многих языках идентичны.
Ну я как бы ему код то не давал, дал только наводку как реализовать. Видимо что-то не так, вот и хотел бы узнать что именно, сам на этом языке всего не больше недели, но почему-то был уверен что все верно, ведь алгоритмы работы на многих языках идентичны.
Вот вам наводка.
Алгоритмы может и совпадают, а вот пишутся на разных языках по разному. Иначе бы Гугл переводчики были с одного языка на другой.
сам на этом языке всего не больше недели, но почему-то был уверен что все верно, ведь алгоритмы работы на многих языках идентичны.
не в языке дело, и именно в алгоритмах - возьми сам и проверь свой цикл #2 как у тебя переменная
ожидаемое событие событие
изменится, не выходя из цикла?Все понял, спасибо, все время забываю что void loop это цикл.
А вы готовы к большим пинкам от форумчан или вам только готовый код?
не не, готовый код не надо. мне бы пинки в какую сторону копать
Ваш или мой?
Если Ваш, то учитесь и делайте. А если мой, то я сам сделаю как-нибудь.
Сюда-то Вы зачем пришли? Если есть вопросы, так обратитесь к своему преподавателю, он за ответы на Ваши вопросы деньги получает.
всегда, абсолютно всегда есть какой то умник который считает, что нужно что то сказать, но никогда не считает нужным отвечать. учитель у меня интернет и нормальные люди.
Да, но что то никакой конструктивной критики с тыканием носом в код нет
И не будет, ибо задолбали уже. И ТС со своим курсом обучения (хрен знает чему он там обучается, если такая задача его в тупик ставит) в Вы со своим искренним стремлением помь бездельнику получить липовый диплом.
очень извиняюсь перед всеми людьми которые хоть как то пытаются помочь. Но именно в вашем кругу програмистов электронщиков люди зазанются больше всего.
Просьба, если можетете помочь и есть желание, пожалуйста помогите. Если нет, просто листайте дальше и все. Я очень далек от програмирования вообще и от микроконтролеров в частности. но не думаю, что не имею право изучать это самостоятельно.
P.S. Задолбали. второй раз обращаюсь тут за помощью и второй раз выпендрежники засирают тему
Ну я как бы ему код то не давал, дал только наводку как реализовать. Видимо что-то не так, вот и хотел бы узнать что именно, сам на этом языке всего не больше недели, но почему-то был уверен что все верно, ведь алгоритмы работы на многих языках идентичны.
Вот вам наводка.
Алгоритмы может и совпадают, а вот пишутся на разных языках по разному. Иначе бы Гугл переводчики были с одного языка на другой.
я очень извиняюсь, а можно обьяснить как идиоту, что именно этот millis делает? по описанию команды он возвращает какое то время на выполнение программы
В свое время человечество придумало часы, а потом для понтов повесило их на руку. И вот что интересно , для тех людей которые нашли им применение, жизнь упростилась и начали они успевать намного больше. Так вот millis() и есть такие часы. Вот только считают они миллисекунды (0,001 сек). Вот вам надо выполнить действие не раньше чем произошло какое-то событие. Вот засекаете время события , а потом переодически поглядываете на "часы". Если разница больше чем надо, то все прошло достаточно времени.
я очень извиняюсь, а можно обьяснить как идиоту, что именно этот millis делает? по описанию команды он возвращает какое то время на выполнение программы
Извиняться можно, но только не здесь ...
Написано вроде по-русски - возвращает число миллисекунд с начала выполнения программы (то бишь с момента включения) ардуино
millis - это часы.
Когда Вы разрабатываете алгоритм работы программы, самый действенный путь - представить, как бы лично Вы решали эту задачу, оказавшись на месте микроконтроллера.
Так вот, delay - это что-то вроде тяжелого наркотика - принял и вырубился на какое-то время. А millis - это часы, обычные часы, по которым можно узнать текущее время. Строго говоря, количество миллисекунд, прошедших с момента включения микроконтроллера.
Это как сквозной таймер без задержки по delay. mills() это текущее значение времени в ардуино. То что отсчет идет от старта программы (это так, для информации). В скрипте идет сравнение старого значения mills() (которое записали в переменную) и текущего, а когда достигает нужного значения, то срабатывает условие так называемого таймера, ну и таймер обнуляется путем присвоения переменной текущего значения mills().
Это как сквозной таймер без задержки по delay. mills() это текущее значение времени в ардуино. То что отсчет идет от старта программы (это так, для информации). В скрипте идет сравнение старого значения mills() (которое записали в переменную) и текущего, а когда достигает нужного значения, то срабатывает условие так называемого таймера, ну и таймер обнуляется путем присвоения переменной текущего значения mills().
Спасибо ОГРОМНОЕ)))) вот теперь реально понятно
На кой чёрт мне Ваш диплом? Уровень знаний и так вижу.
http://document.saraff.ru/
[/quote]
Вот вам наводка.
Алгоритмы может и совпадают, а вот пишутся на разных языках по разному. Иначе бы Гугл переводчики были с одного языка на другой.
[/quote]
А почему именно static?? Для чего мне сохранять эти данные?
Так Вы в 13-ой строке время начала запомнили. Не для того же, чтобы при следующем входе в loop оно снова нулём стало.
Если нужно бысторо и единожды, то лучше купить готовое.
Здесь их на все случаи жизни, с сбросом, тригером, импульсами....
Думаю, что в других регионах не будет проблем найти подобное.
Есть куча разных фирм и производителей.