Выполнение части кода по исчезновению события

VanPelt
Offline
Зарегистрирован: 15.03.2017

Здравствуйте. Извините, коль что не так и жуткий это баян.
Первый день занят програмированием. Не конкретно контроллеров, а вообще )

Опишу примерно что я делаю.
Плата ждёт нажатия кнопки (Цифровой сигнал LOW\HIGH) ничего не делая (Тут пришлось прописать, что реле должны быть разомкнуты, а то иногда щелкала ими)
Нажимается кнопка, на определённое время срабатывает первое реле и ждёт отключения кнопки. Когда кнопка отключается, срабатывает второе реле тоже по своему таймеру, и снова всё ждёт нажатия кнопки.

Вот у меня так не выходит. Релюшки щёлкают, но в цикле, пока не отожму кнопку. Пробовал while и ещё что-то, и поразному if ставить, но бардак выходит. Думаю дело в том, что через if этот я пытаюсь на одно событие повесить 2 разных действия.

Подскажите, что в таком случае использовать?)

sadman41
Offline
Зарегистрирован: 19.10.2016

Можно попробовать do или !=. Или вот даже return.

Но я могу быть неправ, потому что само по себе щелкающее зубами реле вызывает у меня сочувствие и желание покормить.

VanPelt
Offline
Зарегистрирован: 15.03.2017

Спасибо, попробую. Без реле там сложно. Токи такие, что "щелкать" транзистором можно недолго ))) А по сути для arduino не так важно чем там щелкать по цифровому выходу.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

VanPelt пишет:

Первый день занят програмированием. Не конкретно контроллеров, а вообще )

.....

Подскажите, что в таком случае использовать?)

В таком случае нужно использовать свою (а не чужую) голову и своё (а не чужое) время. Позаниматься программированием ещё несколько дней (а лучше месяцев) без панических постов на форумах "помогайте, я первый день", вообще безо всяких постов, просто позаниматься. И тогда всё будет. А если с первого дня получать халяву, то не будет ничего ни через год, ни через десять.

VanPelt
Offline
Зарегистрирован: 15.03.2017

На самом деле ответ в этой теме натолкнул на иное решение. Но зато было от чего оттолкнуться.
Позаниматься по "самоучителям" я уже пробовал ранее. Оттого я и не програмист. А халявы я тут и не просил. Просил подсказать, какие функции могут быть использованы в данном случае. Я специально не выкладывал код, чтобы его поправили, хотя соблазн был велик. Но цель была не в том, чтобы получить готовый результат, а получить некую пищу для размышления. Да и ардуино брал, т.к. тут самое лояльное комьюнити и самый боьлшой набор кодов и пользовательских разработок. Ведь одно дело писать некий код, другое, когда сразу видишь, как оно работает.

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

VanPelt. Для того что бы нормально написать программу надо внятно расписать, что кто делает. А у вас задача поставлена не внятно. Похоже вы просите, что бы вам внятно написали (угадали) задачу под ваши хотелки. 

 
VanPelt
Offline
Зарегистрирован: 15.03.2017

Вам одному невнятно.

Есть кнопка и 2 реле. при замыкании контакта первое реле включается на время, выставленное по таймеру с регулировкой через потенциометр. Когда размыкается контакт включается второе реле. Тоже по таймеру, тоже с регулировкой. После того как отработает реле всё молча ждет нового нажатия.
Сейчас всё работает, как задумано. Хотите, могу код выложить, но по мне, он пока громоздкий и много лишнего. Как разберусь с упрощением, готов поделиться.

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

VanPelt пишет:
Сейчас всё работает, как задумано. Хотите, могу код выложить, но по мне, он пока громоздкий и много лишнего. Как разберусь с упрощением, готов поделиться.

Зачем мне ваш код. После этого http://arduino.ru/forum/programmirovanie/rabota-s-knopkami-v-pomoshch-novichku?page=21#comment-269047 Я могу в ту же  программу добавить кусок, который будет выполнять и вашу задачу, не мешая работать и основной задаче.  Проблема в программировании на Ардуине не написании оптимальной короткой программы, а заставить работать множество программ на одной плате.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

VanPelt пишет:

Вам одному невнятно.

Да, нет, не одному ему.

Вот, мне, непример непонятно

VanPelt пишет:

Есть кнопка и 2 реле. при замыкании контакта первое реле включается на время, выставленное по таймеру с регулировкой через потенциометр. Когда размыкается контакт включается второе реле. Тоже по таймеру, тоже с регулировкой. 

Так всё-таки "Есть кнопка и 2 реле" или ещё потенциометр есть? Один на оба реле? Или два потенциометра? Таймер это микросхема 555 - она тоже есть? Одна? Иди две?

Ну, и, например, а что делать, если кнопка так и не отпущена после истечения всех интервалов? А что делать, если до истечения интервалов кнопка будет нажата ещё раз? Ещё 10 раз? А что делать если кнопка будет нажата до истечения интервалов, а отпущена после? Щитова или нещитова?

VanPelt пишет:

 Как разберусь с упрощением, готов поделиться.

Будьте так добры. Может ведь и пригодиться, самому писать не нужно будет.

 

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

VanPelt пишет:
Есть кнопка и 2 реле.

Смотрим кнопка 1 штук, реле 2 штуки.

Цитата:
при замыкании контакта первое реле включается на время, выставленное по таймеру с регулировкой через потенциометр.

Оппа. Тут фокусник достает из шляпы еще 1 потенциометр.

Цитата:
Когда размыкается контакт включается второе реле. Тоже по таймеру, тоже с регулировкой.
Что фокусник еще достал из шляпы ???

Цитата:
После того как отработает реле всё молча ждет нового нажатия.