bouncer2, длительное нажатие кнопки
- Войдите на сайт для отправки комментариев
Втр, 11/01/2022 - 10:04
Здравствуйте.
Подскажите пожалуйста. Ардуино нано, подключена к дверному звонку. Библиотека bouncer2. Хочу чтобы при длительном нажатии кнопки (5 сек.) выполнялась следующая строка: client.publish("ihouse/gadget/ring/duration", "1");
Зараза, мне кажется он не заходит в конструкцию: if (currentMillis_ringDuration - previousMillis_ringDuration < 5000)
В коде есть ошибка? Или как вывести длительность нажатия кнопки?
//проверка состояния кнопки звонка
if (debouncer5.update())
{
if (debouncer5.fell())
{
previousMillis_ringDuration = currentMillis_ringDuration;
}
//факт отпускания
if (debouncer5.rose())
{
if (currentMillis_ringDuration - previousMillis_ringDuration < 5000)
{
previousMillis_ring = currentMillis_ring;
if (flag_ring == false)
{
client.publish("ihouse/gadget/ring", "1");
flag_ring = true;
}
}
else
{
if (flag_ring == false)
{
client.publish("ihouse/gadget/ring/duration", "1");
}
}
}
}
if (currentMillis_ring - previousMillis_ring > interval_ring && flag_ring == true)
{
flag_ring = false;
}
благодарю
В этом кусочке кода вообще нет ни одного вызова millis(). Что здесь за константы/переменные используются в строках 6, 13, 32 - неизвестно. Как считаются эти 5 секунд - непонятно. Нужен более осмысленный, полный кусок кода.