Официальный сайт компании Arduino по адресу arduino.cc
Мигаем светодиодами по таймеру.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Чт, 20/03/2014 - 16:41
Добрый день.
Помогите пожалуйста. Нужно мигать тремя светодиодами А, В, С. Как привязать срабатывание к таймеру, чтоб например диод В мигнул на 2,6 секунде и 3,4 секунде, а диод С на 6 -ой секунде и т.д. Длительность всего цикла до 10 сек.
http://arduino.ru/tutorials/blink
http://arduino.ru/tutorials/BlinkWithoutDelay
подскажите, а прежде чем писать в форум, вы что-нибудь сделали для решения своего вопроса? хоть в яндексе б вопросы задавали?
Это всё я уже по 5 раз перечитал, на этих примерах можно мигать одним светодиодом или несколькими но с заданой последовательностью. Тоесть поставил Мигать А, А, Б, С, и т.д и можешь изменять только интервалы между ними. А задача привязать к таймеру чтоб в зависимости от задачи можно было мигать какими хочешь и для каждого светодиода устанавливать время в которое ему нужно моргнуть.
О! вот теперь проясняется задача! Что мешает во втором примере трижды повторить код, и мигать нужным светодиодом, тогда когда millis() совпадет с заданым значанием?
Хорошо, тогда еще один вопрос.
Я занимаюсь фотографией, мне в процесе былобы проще использовать эту схему, чтоб можно было отталкиваться не от предудущего мигания, а от первого. Может подскажите хоть в какую сторону смотреть
В какую-то глобальную переменную записываете время первого мигания, а потом отталкиваетесь от нее.
Всё равно что-то не то у меня выходит завожу код в функцию кнопки, а у меня диод делает одно действие или вкл или выкл вод код
Вы более полно задачу опишите. Я, например, никак не могу понять, что вы хотите получить. Нажатие кнопки, мне например, больше по душе обрабатывать прерыванием. И код выкладывайте полностью.
Мне нужно управлять фотоаппаратом, вспышкой , и капельным приводом, это все небольшые импульсы, типа мигания светодиода. Чтоб при нажатии кнопки, проходил цикл из 3 - 6 импульсов.
Привод: от одного до трех импульсов,
камера: один импульс,
вспышка один импульс.
Регулировка интервалов между всеми импульсами должна быть от первого события, тоесть от первого импульса на приводе.
Схема через
управление интервалами через
delay () - работает, но я не могу регулировать интервал от первого импульса, получается только по порядку, последовательно, а это меня жутко не устраивает, тяжело камеру настраивать.
Вот весь код который работает с
delay (200) , я в место него хочу заставить срабатывать оборудование по таймеру от первого события. Весь цикл будет занимать до 10 сек.
А почему не использовать проект фотодуино - там уже всё реализовано.
Схема через
управление интервалами через
delay () - работает, но я не могу регулировать интервал от первого импульса, получается только по порядку, последовательно, а это меня жутко не устраивает, тяжело камеру настраивать.
Первый сигаренту с кофе я выкуриваю сразу после пробуждения.
Вторую - через час после пробуждения.
Третью - через три часа после пробуждения.
Вопрос: сколько времени у меня проходит между первой и второй сигаретой, между второй и третьей? Если я курю по таймеру, то на какие интевалы я должен "заводить таймер"?
Куренье вред !
Куренье вред !
Оппа... никогда никто про это не говорил. Ну теперь буду знать. Спасибо.
Принцип работы я понимаю.
Нужно оттолкнутся от одной переменной и добавлять новое значение после которого вудет выполнятся следующее действие.
Я сейчас застрял на таком моменте, не могу выполнить однократное действие по нажатию кнопки.
Без flag светодиод мигает постоянно, с flag присходит колько включение или выключение. Я не могу понять куда запихивать этот flag чтоб светодиод включился и через INTERVAL выключился
>Принцип работы я понимаю.
Не похоже. Раз вы жалуетесь на что вам "интервалами неудобно" задавать. Если понимаете, то задавать "абсолютное время", и автоматом пересчитывать их в интервалы - не должно вызывать проблем. А если вызывает значит все-таки не до конца понимаете. А раз не до конца, значит вначале нужно разобратся "на пальцах", на примери сигарет (кофе, поглаживаний кошки и т.п.). А потом это понимание реализовать в виде кода.
>Без flag светодиод мигает постоянно, с flag присходит колько включение или выключение.
Вы просто намешали одновременно два подхода. С использованием delay() и без использования. Без использования - сложней. Зато "можно в это время еще чем-то заниматся". В вашем случае (по описанию задачи) можно и "по простому". С помощью delay().
А уже потом, будете заниматся "что-бы срабатывало один раз" и т.п. А то вы с одной задачей не доразобрались, прыгнули на другую...
Здравствуйте ! пример таймера с milis без delay .,где время вкл=время выкл.,а мне нужно например время вкл. 1мин,а выкл. 20сек.,без delay Хотелось бы пример рабочего скетча.
Скетч выкладывайте, который написали. Не пример, а свой.
Это тест на адеквата, иначе на вас и время никто не захочет тратить.
void setup() {
meteorvit, вы не прошли тест на адекватность к советам. http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii
С delay(600000) он бы не прошел тест на адекватность полюбому.
Урезал ,как теперь переписать код без delay?
Урезал ,как теперь переписать код без delay?
Мигаем светодиодом без delay()
В этом примере 1000 мс горит ,1000мс не горит светодиод,а нужно 2000мс горит,5000мс не горит.
В этом примере 1000 мс горит ,1000мс не горит светодиод,а нужно 2000мс горит,5000мс не горит.
Совет - сделайте отдельно включение, отдельно выключение, тогда сможете задать разные интервалы.
Если вы еще не поняли - готовый код не ждите.
Спасибо за совет!
meteorvit . 4 вроде под вашу задачу#2 Я просто задалбываюсь делать одно и тоже. Каждый новичек считает что его задание уникальное.
В этом примере 1000 мс горит ,1000мс не горит светодиод,а нужно 2000мс горит,5000мс не горит.
Клапачка, я надеюсь ты уже поместил ссылку на этот пост в свою любимую тему!
Урезал ,как теперь переписать код без delay?
Например так:
Самому никак не додумать?
Спасибо! Благодарю за ответ.
Благодарить то за что? Это локальной задаче поможет, а дальше снова вопросы возникнут. Алгоритмы рисуйте, а не методику "тыка" отрабатывайте.