Друзья, нашел код на просторах для подавления дребезга кнопки: Код (Lua): do local pin = 2 function debounce (func) local last = 0 local delay = 50000 return function (...) local now = tmr.now() if now - last < delay then return end last = now return func(...) end end function onChange () print('The pin value has changed to '..gpio.read(pin)) end gpio.mode(pin, gpio.INT) gpio.trig(pin, 'both', debounce(onChange)) end какие значения не подставлял в local last и local delay иногда дребезг проскакивает: Код (Lua): The pin value has changed to 0 The pin value has changed to 1 The pin value has changed to 0 The pin value has changed to 1 The pin value has changed to 0 The pin value has changed to 1 The pin value has changed to 0 The pin value has changed to 1 The pin value has changed to 0 The pin value has changed to 1 The pin value has changed to 0 The pin value has changed to 1 The pin value has changed to 0 The pin value has changed to 1 The pin value has changed to 0 The pin value has changed to 1 The pin value has changed to 0 The pin value has changed to 1 The pin value has changed to 1 -- вот повтор The pin value has changed to 1 The pin value has changed to 0 The pin value has changed to 1 The pin value has changed to 0
Искал)) Нашел! Код (Lua): do-- нога номр 4 local pin = 4 --> GPIO2 -- Принимаем в качестве аргумента функцию function debounce (func) -- Переменные для работой со временем local last = 0 local delay = 200000 -- возвращаем функцию, которая принимает любой набор аргументов, если таковые есть return function (...) -- время сейчас local now = tmr.now() -- прошло времени - дельта local delta = now - last -- исправляем дельту с учетом того, что счетчик сбрасывается -- в 0 при достижении 31 разряда в 32 битном числе if delta < 0 then delta = delta + 2147483647 end -- если меньше уставновленного времени - возврат if delta < delay then return end -- запоминаем время last = now -- выполняем функцию обработки нажатия с передачей ей любых аргументов return func(...) end end -- Это исполняется по нажатию кнпки function onChange () print('The pin value has changed to '..gpio.read(pin)) end -- режим ноги - ввод gpio.mode(pin, gpio.INT) -- при любом изменении состояния ноги - вызов функции с передачей ей аргумента gpio.trig(pin, 'both', debounce(onChange)) end Но все равно дребезг проскакивает. Ваш личный сайт тоже нашел. Код ваш на различные поведения кнопок - видел. На досуге его ковыряю и изучаю.