+2 голосов
У меня сложная программа, которая впритык работает на моем микроконтроллере. Ресурсов не хватает, я вынужден бороться почти за каждый такт. У меня много кнопок и аппаратными средствами я хочу уменьшить нагрузку на камень. Посоветуйте пожалуйста какие-нибудь внешние средства для обработки кнопок.
(737 баллов) 2 24 68

2 Ответы

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

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

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

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

(887 баллов) 2 8 29
выбран
Схема устранения дребезга дороже самой кнопки). К тому же такая схема сокращает срок службы кнопки из-за разряда конденсатора на кнопку.
+6 голосов

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

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

    367 балл(ов)

  2. gokase

    178 балл(ов)

  3. Un_ka

    139 балл(ов)

  4. issaom

    108 балл(ов)

  5. dartWaiter

    37 балл(ов)

  6. smart_pic

    34 балл(ов)

Награды месяца
1-е место: Роторный инструмент Dremel 7750-10
2-е место: Мультиметр Uni-T UT61C
3-е место: Кримпер Pro'sKit 8PK-371D

...