Эмуляция дребезга контактов

Или – как в среде Proteus добавить дребезг контактов для выполнения
корректной проверки работы микроконтроллера?
Схема электронного эмулятора дребезга контактов.

На предыдущей странице мы с вами плодотворно обсудили средства борьбы с таким неприятным эффектом, как "дребезг" контактов переключателя (ссылка на страницу).
Порешали мы эту задачу аппаратными методами, однако – что делать, если стоит вопрос реализации подобного эффекта без помощи внешних элементов, а ориентируясь исключительно на внутренние резервы микроконтроллера?
Таких программных решений задачи подавления дребезга существует не одно и даже – не два, но речь сегодня не об этом. А разговор у нас пойдёт о том: как в среду автоматизированного проектирования электронных схем Proteus впихнуть нечто, что выдаст нам с любого механического коммутирующего устройства "правильный" или, иными словами – близкий к реальной жизни сигнал? Ведь только с подобным "нечто" у нас появится возможность объективной проверки прошивки микроконтроллера в симуляторе и не придётся сильно морщить лоб, когда в реальной жизни наружу полезут разные сбои, вызванные дребезгом коммутирующих устройств.

Дребезг сигнала при замыкании–отпускании переключателя
Рис.1 Реальная форма сигнала при замыкании–отпускании переключателя

Итак – что нам надо поиметь в сухом остатке?
Пусть это будет простенькая схема, которая при замыкании/размыкании переключателя выдаст нам на выходе сигнал, близкий по форме к изображённому на Рис.1.
Крайне важно, чтобы при замыкании/размыкании контактов, количество импульсов дребезга каждый раз было разным и менялось по случайному закону!
Тогда, просто копируя данную схему из проекта в проект, у нас появиться возможность проверки работы микроконтроллера в условиях, максимально приближенных к боевым.
Один из возможных вариантов подобной реализации приведён на Рис.2.


Схема электронного эмулятора дребезга контактов

Рис.2 Схема электронного эмулятора дребезга контактов

Данная схема была создана и проверена на работоспособность в среде проектировщика электронных схем Proteus. Скачать этот проект можно по ссылке – скачать файл.

Не хочу углубляться в назначение каждого из приведённых на схеме элементов. Кому надо, тот сам прекрасно разберётся, тем более, что схема не претендует на какую-либо затейливость и сложность.
Отмечу лишь, что длительность (продолжительность) процесса дребезга при замыкании и размыкании контактов составляет величину примерно равную 50 мс, и определяется номиналом конденсатора С1. Для корректировки этого временного промежутка следует пропорционально изменить и номинал ёмкости конденсатора.

Частота импульсов, моделирующих дребезг, крутится вокруг 100 герц и задаётся генератором, подключённым к нижнему входу вентиля U3-А. Для того, чтобы число импульсов дребезга каждый раз при нажатии/отпускании кнопки было разным, необходимо, чтобы эта частота не была постоянной во времени. Для этого из линейки генераторов, присутствующих в Proteus, был выбран генератор линейно-частотно-модулированных сигналов. Частота модуляции – 1Гц.

Схема электронного эмулятора дребезга контактов

Рис.3 Диаграммы сигналов, снятых с кнопки и с выхода эмулятора дребезга контактов

На рисунке Рис.3 приведены 2 диаграммы:
1. Верхняя – отображает идеальный отклик Протеуса на нажатие/отпускание кнопки;
2. Нижняя – это сигнал, сформированный схемой электронного эмулятора дребезга контактов.



 

Главная страница | Наши разработки | Полезные схемы | Это нужно знать | Вопросы-ответы | Весёлый перекур
© 2017 Vpayaem.ru   All Rights Reserved