реостат и срабатывание реле
- Войдите на сайт для отправки комментариев
Вс, 09/03/2014 - 14:53
Ребят, доброго дня.
Подскажите пожалуйста. Что то не могу разобраться с MILLIS.
Есть реостат ,с него получаем данные от 0 до 127. переменная G
Далее ,очень хотелось бы сделать ,что бы рылюшка щелкала (вкл выкл) взависимости от значения G (типо 127 раз в минуту) или при 0 вообще выключена была (тоесть разорвала цепь).
есть функция DELEY () но она не подходит -тормозит всю программу(реостатов 3 и реле три).
Помогите пожалуйста.
Способ №1 (без использования прерываний)
Исходя из напряжения на реостате рассчитать три частоты для трех каналов, например 100, 50 и 20 Гц и т определить периоды:
T1=1/100 (10 мсек)
T2=1/50 (20 мсек)
T3=1/20 (50 мсек)
запомнить t1=t2=t3=millis();
в цикле
ct=millis();
по условию (ct-t1) >= T1 передернуть реле 1, запомнить новое t1=millis() и вычислить новое T1; аналогично для каналов 2 и 3
и не забывать про отдаленное переполнение millis() :-)
при этом надо понимать, что изменение положения реостата до окончания очередного периода t1 t2 t3 не будет обрабатано.
Способ №1 (без использования прерываний)
А второй вариант ? А то что то слишком умно -частоты какие то ?!!
Способ №1 (без использования прерываний)
А второй вариант ? А то что то слишком умно -частоты какие то ?!!
В первом варианте ошибся: у вас G колич раз раз в минуту, а не в секунду. Переделайте время T1 T2 T3 в 60 больше.
Второй вариант "заряжаете" таймер на время T1 и срабатывания прерывания.
В прерывании считываете значение реостата, перезаряжаете таймер на очередное прерывание и дергаете ножкой реле1
(количество таймеров мало, а желающих много)
Способ №1 (без использования прерываний)
А второй вариант ? А то что то слишком умно -частоты какие то ?!!
В первом варианте ошибся: у вас G колич раз раз в минуту, а не в секунду. Переделайте время T1 T2 T3 в 60 больше.
Второй вариант "заряжаете" таймер на время T1 и срабатывания прерывания.
В прерывании считываете значение реостата, перезаряжаете таймер на очередное прерывание и дергаете ножкой реле1
(количество таймеров мало, а желающих много)
В ножки кланиюсь!!!!!! Боюсь не осилю!!!! Мысль летает и улетает :( Если не трудно можно живой код. Реально буду очень блогадарен. Хочу сделать дополнительное управление стеклоочистителей для машинки.
Спасибо, вроде нашел что нужно.
long
interval = 1000;
// интервал между включение/выключением светодиода (1 секунда) - именна та переменная которая мне нужна !!!!
Понятно, что есть желание сделать своими руками. Но может проще купить и поставить готовое решение?
Я бы с удовольствием, но у меня на ардуинке не только это завязано. К сажелению ни один готовый девайс не заменит возможности и гибкости ардуинки :)
Gagarin74, не понял что у вас за реостат, и почему там 7 битное исчисление, ну да ладно, не суть. Вот набросал для одного канала, другие по аналогии.
ну типо того .
кстати , это у меня так глючит или у всех. При включение ардуинки релюха срабатывает один раз. Дальше все окейно.
Gagarin74, если это по тому скетчу, что я советовал -то там с 13 ноги нужно на другую перенести, на 13-й действительно при включении что-то происходит, в корни проблемы не вникал.
Gagarin74, если это по тому скетчу, что я советовал -то там с 13 ноги нужно на другую перенести, на 13-й действительно при включении что-то происходит, в корни проблемы не вникал.
бутлодырь на этапе загрузки управляет светодиодом
СПАСИБКИ!!!!!! а то я уж огорчился. Какие Вы умницы!!!!