Параллельная работа двух реле
- Войдите на сайт для отправки комментариев
Сб, 04/02/2017 - 00:34
Здравствуйте. Помогите пожалуйста реализовать проект.
Нужно запитать два реле по следующему алгоритму работы:
1. Включается реле №1 на 1с.
2. Реле №1 выключается на 10 минут.
3. Через 2 секунду после включения реле №1 включается реле №2.
4. Реле 2 отключается через 1 с работы на 10 минут.
Цикл замкнутый (пока не отключу кнопкой). Включать-включать хочу всё с одной кнопки.
Не судите строго - читаю про Ардуино 3й день и пользуясь исключительно видеоуроками из Ютуба попытался написать следующее.
void setup() {
pinMode(13, OUTPUT); // реле №1
pinMode(11, OUTPUT); // реле №2
pinMode(12, INPUT_PULLUP); // кнопка включения-выключения
}
void loop() {
if ( digitalRead(12) == LOW ) digitalWrite(13, 11, HIGH);
else digitalWrite(13, 11 LOW);
{
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
digitalWrite(11, HIGH);
delay(1000);
digitalWrite(11, LOW);
delay(1000);
digitalWrite(13, LOW);
delay(9000);
digitalWrite(11, LOW);
delay(9000);
}
}
Поскольку параллельное выполнение задач вроди как невозможно (опять же исходя из моих скромных знаний), попытался реализовать последовательно.
Проаверить пока даже негде - только завтра обещали прислать "комплект новичка" на базе Arduino UNO. Ранее вообще к программированию отношения не имел, так что не судите строго пожалуйста.
Всем заранее спасибо.
Сразу хотел бы отметить по периоду включения-выключения - время пока ставил маленькое, потмоу как проверить будет проще (ждать меньше, если конечно вообще заработает).
Поскольку параллельное выполнение задач вроди как невозможно (опять же исходя из моих скромных знаний), попытался реализовать последовательно.
Возможно паралельное выполнение задач, точнее псевдопаралельное, так как угробить можно любую программу всунув очень много delay(). Что вы с успехом и реализовали.
ПС: Все видеоуроки на Ардуино это просто реклама и ничего больше. Вы же по рекламе автомобилей не учитесь вождению автомобилем.
...
Возможно паралельное выполнение задач, точнее псевдопаралельное, так как угробить можно любую программу всунув очень много delay(). Что вы с успехом и реализовали.
ПС: Все видеоуроки на Ардуино это просто реклама и ничего больше. Вы же по рекламе автомобилей не учитесь вождению автомобилем.
Спасибо за ответ.
Я читал про большое количество delay(), видел на Ютубе как автор говорит, что использование такой остановки контроллера не желательно. Но проект в принципе примитивен (для примитивных задач вроди продходит), да и других вариантов пока не придумал. Буду благодарен, если подскажете.
Про псевдо-праллельные процессы читал - для меня это немного сложно, но буду пробовать реализовать и так.
P.S.: Я учился вождению автомобиля по "рекламе" вождения автомобиля ).
Если ничего более программа делать не будет, то можно сдеать так например
А по поводу отлючения включения одной кнопкой посмотри уроки джереми блума и допиши сам.
А по поводу отлючения включения одной кнопкой посмотри уроки джереми блума и допиши сам.
Спасибо за код, за совет.
Код закачал - буду разбираться, пробовать.
Про включение-выключение кнопкой видеоролик Джереми смотрел - у меня мозг вскипел ). Код-то я записал, но мало что понял.
... но мало что понял.
соболезную, но упорство и труд все перетрут.
... но мало что понял.
соболезную, но упорство и труд все перетрут.
Я тоже так думаю. В университете получилось изучить экономико-математическое моделирование самостоятельно и защитить диссертацию, с Arduino тоже должно получиться. Тем-более мне пока сложного ничего не нужно, а там видно будет.
Ваш код изучил - написано вроди красиво и что мне очень нравится - понятно. Надеюсь получится завтра опробовать ). Заодно попробую и кнопку прописать.
Если ничего более программа делать не будет, то можно сдеать так например
Получил сегодня плату, загрузил Ваш код - отлично работает. Могу без проблем изменять все интервалы, а вот с кнопкой беда... Отдельно включение двух диодов - не проблема, а вот с учётом предыдущего алгоритма - никак. Гляньте пожалуйста что я написал не так.
Код на два диода с кнопки:
Ну для начала есть способ вставки кода на форум
и то что получилось после скрещивания.
А тепере уже можно разбираться
для объединения двух программ я бы во втором (тот что мой) переименовал
void setup() в void setup1(), а void loop() в void loop1()
теперь эти две функции можно добавить к твоему коду со светодиодами
вызов setup1() добавляем внутрь твоего setup()
а вызов loop1() в ставляем в конце твего loop()
и дописываем к нему условие
Что можно вставлять код в таком формате я не знал - обязательно исправлюсь.
И не знал, что можно вставлять void setup1() и void loop1() - буду пробовать. )
Ещё раз большое спасибо.
Вот 1 шаг разработки кода.
Это 2 шаг разработки кода
Окончательный вариант полностью здесь https://yadi.sk/d/elyRWglV3DPRZm
Головной файл выкладываю
Вот 1 шаг разработки кода.
Это 2 шаг разработки кода
Окончательный вариант полностью здесь https://yadi.sk/d/elyRWglV3DPRZm
Головной файл выкладываю
Спасибо.
Но это без кнопки и pin11 не тухнет (после того, как загорелся диод, он уже не гаснет - только 13й пин моргает по заданной програме), а должен и 11й работать в таком режиме, как 13й)
Код JasKo работает отлично, но у меня не хватает соображалки, чтоб вписать кнопку в код (((
Немного поправил. Добавил логику при которой вкл реле. В общем верни ноги как вам надо и тайминги времени
Триждый проверил - ругается при компиляции на целую страницу
Предыдущая версия компилировалась и грузилась на плату без проблем...
Так головной замените, а библиотеки оставь прежние.Без библиотек не работает. Что опять пакет в яндекс диск кидать вам.
https://yadi.sk/d/7YIRJGb33DPsaz
iven83 если мой код тебе более понятен, то вот вариант с кнопкой
Так головной замените, а библиотеки оставь прежние.Без библиотек не работает. Что опять пакет в яндекс диск кидать вам.
https://yadi.sk/d/7YIRJGb33DPsaz
Не злитесь на меня пожалуйста, я ардуино "по нужде" осваиваю - сочиняю пеллетную горелку на благо общества, а там без освоения подобного программирования либо дорого получается, либо громоздко, либо неудобно. Вот и приходится...
Я обязательно попробую разобраться и реализовать разные варианты (насколько я понял, вариантов кодов, которые могут реализовать необходимый алгоритм может быть множество).
Спасибо большое за оказанную помощь в освоении абсолютно новой для меня науки.
iven83 если мой код тебе более понятен, то вот вариант с кнопкой
Спасибо! Обязательно завтра испытаю. Сегодня уже просто мозг взрывается от количества полученной информации и попытки её обработать (параллельно с программированием пытаюсь осваивать и электронику).
О результате обязательно отпишусь.
iven83 если мой код тебе более понятен, то вот вариант с кнопкой
Компилируется - уже хорошо! )))
iven83 если мой код тебе более понятен, то вот вариант с кнопкой
Не выдержал, проверил - всё замечательно работает!!! )))
Большущее спасибо!
Есть ещё много идей, что касается отопительных систем, которые можно будет реализовать с помощью Ардуино.
Если получится что-то интересно, обязательно буду выкладывать сдесь.
Подскажите пожалуйста из-за чего через какое-то время работа цикла может останавливаться?
Не знаю, это в "железе" или программная проблема (((.
Сегодня запускал котёл уже с ардуинкой - работало отлично, но через несколько часов заметил, что магниты не срабатывают. Проверил конструцкию - всё вроди без изменений, но сигнал не подаётся (. Все контакты пропаивал - там врди не должно быть проблем. Да и после "передёргивания" питания и нажатия кнопки всё опять работает отлично. Но такой вариант, когда она сама по себе остановилась, мне не нравится.
Запитано через два обычных реле (не твердотельных), но вроди перегрузки на пины быть не должно. Запитал от зарядного с мобильного телефона - написано на выходе 5 В - подключил через гнездо USB... Не знаю в чём может быть проблема (.
Возможно БП слабый или не качественный. Кроме этого, нужно запитать реле не от пинов ардуино, а напрямую от БП.
Возможно БП слабый или не качественный. Кроме этого, нужно запитать реле не от пинов ардуино, а напрямую от БП.
Спасибо за ответ.
Сегодня опытным путём выяснил, что какой-то "мутный" этот блок - на этом скетче иногда мигает один из диодов, а на ИК управлении данные с пульта постоянно разные приходят.