Прерывание по кнопке - слишком большая чувствительность

Здравствуйте. Извиняюсь, если плохо искал или неправильно формулирую вопрос. Пытаюсь (следуя разным публикациям) сделать прерывания по кнопке (на 2 и 3 пине). Но они у меня срабатывают даже при касании проводов, идущих к кнопкам (если ничего не трогаешь - как положено прерываний нет). Пробовал все режимы срабатывания: LOW, FALLING, RISING, FALLING. Почему такая большая чувствительность?

Подтяжка нужна ! Человек - большая антенна !!!

1 лайк

А внутренняя не подходит?

Попробуйте …

Так я пробовал с ней… Внешнюю пробовать. И какой режим лучше использовать?

А зачем вам кнопка с прерыванием?

Спрашиваю потому, что новички часто уповают на прерывание, чтобы прервать длинные процессы в коде. Это абсолютно неверный подход. В 99% ардуино программ кнопка в прерывании не нуждается.

поллинг

На PULL UP - ИМХО falling

1 лайк

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

тем более тут нафик не нужно прерывание.
Прерывание используется тогда, когда нужна мгновенная реакция. Кнопки же, нажимаемые человеком - это всегда неопределенность в 50-100мс. А в вашем случае вообще не имеет значения, обработаются ли кнопки сейчас или через пол-секунды.
Кроме того, без прерывания в разы проще организовать дебонс - дебонс и прерывание вообще слабо совместимы

Я уже сам начал склоняться к этому. Тогда следующий вопрос, а по таймеру прерывания проходят без проблем (если учитывать все рекомендации), или тоже имеются подводные камни. Опрос температуры проводить скажем только в 1-2 секунды? (Или тоже не стоит?)

С таймерами проще, однако… для опроса термометров раз в 1-2 секунды прерывание по таймеру тоже не нужно.
Общая практика что все это пишется на миллис

Пока Спасибо! Завтра попробую переделать с учетом ваших советов.

Так, может пригодится - у кнопки есть так называемый «дребезг контактов» и в прерывании Вы его никак не отследите. Может выше писали, прочитал быстро.

А нафига ты трогаешь провода включенного электроприбора? Всё в порядке вообще?

1 лайк

А вы думаете, что провода у меня голые?

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

а что это означает?
Аппаратный таймер через регистры с прерыванием или просто какая-нить библиотека типа TimerOne ?

Оденьте провода! Им, как минимум, холодно - не май месяц же!!!

2 лайка