Как защитить кнопку на Arduino от ложных срабатываний?

Есть ардуинка, к ней припаяна кнопка, через длинный кабель (15-20 метров), так что проблема вполне предсказуема.
  • Вопрос задан
  • 6686 просмотров
Пригласить эксперта
Ответы на вопрос 4
daapp
@daapp
Программист
Это называется button debounce. На youtube полно видео на эту тему с объяснениями.
Ответ написан
Комментировать
RicoX
@RicoX
Ушел на http://ru.stackoverflow.com/
Ответ написан
Комментировать
@artanets
Можно написать код с проверкой времени нажатия кнопки, ложные срабатывания обычно очень короткие.
Задать функцию в которой пока кнопка нажата будет постоянно прибавляться +1, пока не будет достигнуто число (100, 200, 10000 на ваш выбор), если кнопка отжато сбросить число в 0.
Такой способ не тормозит систему но очень зависим от пауз (delay) в коде.
Если не очень важно быстродействие кода то можно просто сделать проверку нажатия кнопи через паузу по времени.
Можно также реверсировать кнопку, то есть не подать на нее ток, так как по умолчанию он там уже есть, а заземлять его через кнопку на землю, вместо подтягивающего резистора, в коде же использовать команду pinMode( 3 , INPUT_PULLUP); в части где void setup(). Эта команда делает реверс значения.
В общем последний метод показал себя на практике более работоспособным, но бывают и исключения зависит от того что еще включено в ваш ардуин.
Ответ написан
Комментировать
@jar_ohty
Научный работник (химия), радиолюбитель
По длинному кабелю подключать кнопку -- за это, простите, надо канделябром. Там не помехи, там как бы порт не выгорел. Надо организовывать могучую защиту диодами и правильное заземление, а нажатие кнопки должно пускать по цепи хороший ток -- миллиампер 20. Перед портом ФНЧ с частотой среза около 10 Гц и хорошим подавлением радиочастот (так как на этот кабель кроме 50 герц и импульсных помех наведется еще и радио "Маяк").
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы