цикл в цикле. как реализовать?

Disel
Offline
Зарегистрирован: 25.02.2017

Проблема с встроенными цикла внутри цикла.

Добрый день.

Решил вынести данную проблему на отдельную тему.
Я тут новичек, поэтому сильно не бейте.

У меня стоит  следующая задача.
Собрать вытяжку на двух реле (пока без датчика концентрации пыли) с индикацией и выбором режимов. Одно реле включает один вентилятор, второе другой (в соседней комнате).

На аппарате имеем четыре кнопки управления и кучу светодиодов.
Теперь по порядку что хочется
1-я кнопка выберает режим всей работы системы 10мин, 20мин, 40мин. Над каждой надписью светодиод. Соответственно при последовательном нажатии на одной кнопке меняется тот или иной светодиод соответствующий указанному выше времени.

2-я кнопка выберает процесс работы вентиляторов из 3-х режимов, тоже над каждым режимом свой светодиод. (например: 1-й режим -один вентилятор работает постоянно, второй каждую минуту включается на 30сек., 2-й режим -оба вентилятора одновреенно включаются только на 30 сек. раз в минуту, 3-й режим- первый вентилятор включается на 20 секунд каждую минуту, второй на 30 секунд каждые 3 минуты). также режимы переключаются одной кнопкой.
3-я кнопка  Кнопка старта.

4-я кнопка Кнопка стопа.

Помогите с чего начать

Здесь получается два цикла

1-й общий (10мин, 20мин, 40мин) от общего времени работы всей системы.  И второй для каждого реле свой.

Прошу помоч с чего начать, поскольку как только я ставлю delay в любом месте, то цикл сразу весь тормозится. 

За ранее спасибо.

Клапауций 823
Клапауций 823 аватар
Offline
Зарегистрирован: 13.01.2017

вот тебе кнопки класс титановый велосипед для тактовой кнопки.

вот тебе таймеры класс титановый велосипед для delay без delay().

собирай в кучку

*и, да - не циклы а ифы.

arDubino
Offline
Зарегистрирован: 12.01.2017

самое главное и причем тут вообще ардуино. если тут ручной режим с кнопками :)))

Клапауций 823
Клапауций 823 аватар
Offline
Зарегистрирован: 13.01.2017

arDubino пишет:

самое главное и причем тут вообще ардуино. если тут ручной режим с кнопками :)))

ну, реализуй на тупой автоматике трёхрежимные кнопки и таймеры.

andriano
andriano аватар
Онлайн
Зарегистрирован: 20.06.2015

Внимательно изучите примеры, а именно, чем отличаются "blink" и "blink without delay".

Первый пример - по сути пример неправильного программирования. При таком подходе можно реализовать лишь одну простейшую задачу, после чего к ней уже ничего добавить нельзя.

Второй пример - пример правильного программирования. В нем можно сколько угодно добавлять различные устройства и функции. Единственное требование: ни одна из них не должна содержать delay(). Естественно, каждое устройство или функция должна содержать собственный набор переменных состояния. И все это организуется в едином цикле loop() безо всяческих вложенных циклов.