+3 голосов
У меня сложная программа, которая впритык работает на моем микроконтроллере. Ресурсов не хватает, я вынужден бороться почти за каждый такт. У меня много кнопок и аппаратными средствами я хочу уменьшить нагрузку на камень. Посоветуйте пожалуйста какие-нибудь внешние средства для обработки кнопок.
(925 баллов) 40 74 103

2 Ответы

+5 голосов
 
Лучший ответ

Самый простой способ использовать RC-цепочку.

Когда кнопка не нажата, конденсатор заряжается через резисторы R1 и R2. при нажатии на кнопку конденсатор начинает разряжаться и напряжение упадет до нуля. Если есть дребезг, сигнал подпрыгивает вверх и вниз в течении нескольких миллисекунд, но конденсатор подзаряжается через резистор и на выходе поддерживается высокий уровень напряжения.Благодаря этому уровень сигнала меняется с высокого на низкий только один раз в течении интервала времени, определяемого значениями резистора и конденсатора. Резистор R2 предназначен для уменьшения тока разряда и заряда конденсатора для сохранения контактов кнопки.

Более подробно вопрос описан в книге от Джереми Блюма "Изучаем Arduino" - глава 12.3 Разработка и тестирование системы противодребезговой защиты для кнопки

(1.2 тыс. баллов) 7 26 51
выбран
Схема устранения дребезга дороже самой кнопки). К тому же такая схема сокращает срок службы кнопки из-за разряда конденсатора на кнопку.
+7 голосов

Для аппаратного подавления дребезга можно использовать RC-цепочки, но лучше всего применять триггер Шмитта или специализированные микросхемы MC14490

(221 баллов) 1 4 16
триггер Шмитта не способен устранить дребезг.
Согласен, полностью проблему не решит. Но форму сигнала улучшит что иногда может быть вполне достаточно, особенно совместно с применением RC-цепочек
Триггер Шмитта стоит на входе практически у всех МК. Разве что их у процессоров нет, но это не точно)
Добро пожаловать на Бредборд! Сайт вопросов и ответов на тему Arduino, Raspberry Pi и хоббийной электроники в целом. Цель Бредборда — быть максимально полезным. Поэтому мы строго следим за соблюдением правил, боремся с холиворами и оффтопиком.
  1. KrSV

    2 балл(ов)

  2. Палыч

    2 балл(ов)

  3. Дамир

    2 балл(ов)

  4. lcco

    2 балл(ов)

  5. Ergamister

    2 балл(ов)

  6. Александр312

    2 балл(ов)

...