Написать программный код таймера для Arduino
- Войдите на сайт для отправки комментариев
Вс, 17/10/2021 - 13:02
Всем Привет! Нужна ваша помощь в написании скетча для ардуино.
Задача: При нажатии на кнопку включается модуль реле, и отсчитывает 7 секунд, после этого, выключается.
Но если не ожидать 7 секунд и нажать на кнопку повторно, тоже выключится.
Имеется Arduino nano, модуль реле.
500р
Каким образом, куда?
Каким образом, куда?
спишетесь с исполнителем, договоритесь
Подожди до вечера, придёт Бармалей, скажет куда ему писать.
Хорошо бы... пива. 500р htpicc@gmail.com
А вапще, зачем ты за ардуино взялся, если даже такой простейший код написать не можешь? Мошт тебе проще на рассыпухе таймер собрать, логика простейшая
Уже студенты потянулись ?
Учи русский и мат часть
Учи русский и мат часть
только этим и занимаюсь, батюшка. С утра до ночи.
Учи русский и мат часть
хм, а матчасть то тут причем?
хм, а матчасть то тут причем?
Ни при чём. ТС же ясно сказал
мат часть
ТС же ясно сказал
мат часть
стесняюсь спросить, какую часть мата учить?
Ну да, вы были правы, залез в литературу.
Проще кода нет.
Просто я никогда не программировал, а с железом сталкивался много.
Пожалуй напишу сам.
Всем спасибо!
Пожалуй напишу сам.
Всем спасибо!
Вот что 500рублей с человеком делают!
Не в деньгах дело, а во времени. Он сказал что бармалей к вечеру только придет. А до вечера я наверное и сам управлюсь. Если нет, отпишусь.
к вечеру только
Так в #5 же Вам дали контакт! Я думал, что давно уж всё сделано!
Кстати, если выложите подтверждение перечисления 450 руб. вот сюда, то я Вам за эти 450 руб. сделаю Ваше упражнение
01
#define PIN_BUTTON 2
02
#define PIN_RELAY LED_BUILTIN
03
#define RELAY_ON LOW
04
#define RELAY_OFF HIGH
05
#define BUTTON_PRESSED LOW
06
#define BUTTON_UNPRESSED HIGH
07
#define BUTTON_DEBOUCE_DELAY 30
08
#define RELAY_HOLD_DELAY 7000
09
10
uint8_t buttonOldStat=0xFF;
11
uint8_t buttonStat=0xFF;
12
uint32_t debounceButtonTimer=0;
13
uint32_t holdRelayTimer=0;
14
15
void
setup
() {
16
pinMode(PIN_BUTTON,INPUT_PULLUP);
17
pinMode(PIN_RELAY,OUTPUT);
18
digitalWrite(PIN_RELAY,RELAY_OFF);
19
}
20
21
void
loop
() {
22
uint8_t buttonTempStat=digitalRead(PIN_BUTTON);
23
uint32_t _now=millis();
24
if
(buttonOldStat!=buttonTempStat){
// изменилость состояние кнопки
25
buttonOldStat=buttonTempStat;
26
debounceButtonTimer=_now;
// перезасекаем таймер дребезга
27
}
else
if
(debounceButtonTimer && _now-debounceButtonTimer>BUTTON_DEBOUCE_DELAY){
28
// истек период антидребезга, и состояние кнопки не менялось
29
debounceButtonTimer=0;
30
if
(buttonStat!=buttonTempStat){
// момент нажатия или отпускания с погашеным дребезгом
31
buttonStat=buttonTempStat;
32
if
(buttonStat==BUTTON_PRESSED){
// кнопку нажали
33
if
(digitalRead(PIN_RELAY)==RELAY_OFF){
// реле выключено
34
digitalWrite(PIN_RELAY,RELAY_ON);
// включить реле
35
holdRelayTimer=_now;
// зарядить таймер
36
}
else
{
// кнопку отпустили
37
digitalWrite(PIN_RELAY,RELAY_OFF);
// выключить реле
38
holdRelayTimer=0;
// отключить таймер реле
39
}
40
}
41
}
42
}
43
44
if
(holdRelayTimer && _now-holdRelayTimer>=RELAY_HOLD_DELAY){
45
digitalWrite(PIN_RELAY,RELAY_OFF);
// выключить реле
46
holdRelayTimer=0;
// отключить таймер реле
47
}
48
49
}
Вот наговнокодил. Деньги по ссылке Евгения.
Судя по комментам все поняли, что ТС не студент. Как вам это удалось определить?
А я не понял. За то написал так, что препод поймет что он сделал не сам :) И за пару вопросов убедится в этом, ну а что будет дальше уже решит сам эскулап.
Я пришёл , пишите, если сами не управились. !00 рублей. Торг уместен.
Дет Симён разрешил.
barmaley2m@yandex.ru
Задача: При нажатии на кнопку включается модуль реле, и отсчитывает 7 секунд, после этого, выключается.
Но если не ожидать 7 секунд и нажать на кнопку повторно, тоже выключится.
Вот наговнокодил. Деньги по ссылке Евгения.
А я ТЗ понял по другому - это действие должно выполниться только один раз.
Ну может быть и так. Только это странно. Решается очень просто. while(1) вроде пока не отменили ? Ж)
Ну может быть и так. Только это странно. Решается очень просто. while(1) вроде пока не отменили ? Ж)
Так препод красоту _переменной оценит, а зачет не поставит))
А, ну наверное можно было бы и так понять ТЗ, даже наверное - нужно, но я не такой сообразительный :)