Плата Intel® Galileo Gen 2 и дребезг контактов Teleskop's Блог / 25.06.2015 Цель нашей исследовательской работы - изучение дребезга контактов с помощью платы Intel® Galileo Gen 2 и нахождение способов устранения помех. Задачи работы: 1) Понаблюдать за дребезгом контактов на примере тактовой кнопки.2) Изучить теорию о дребезге контактов. 3) Устранить дребезг контактов программным способом. 4) Устранить дребезг контактов аппаратным способом. 5) Сделать выводы.Википедия.Говоря проще, при нажатии и отпускании кнопки она переходит в нужное состояние не сразу. Дребезг контактов — почти всегда нежелателен в технических устройствах. Мы решили исследовать дребезг контактов с помощью платы Intel® Galileo Gen 2 и найти способы борьбы с ним.В продолжение работы об индикаторах для данного проекта было необходимо подключить тактовую кнопку. Для индикации работы кнопки был подключён светодиод.Для этого необходимы следующие компоненты: 1) Плата Intel Galileo Gen2.2) Тактовая кнопка.3) Резистор 10 кОм. 4) Резистор 220 Ом.5) Светодиод.6) Контактная макетная плата.7) Соединительные провода.Подключается кнопка следующим образом: стягивающим резистором на 10кОм подключается к земле. Вторую ножку подключаем к 5 вольтам. Ножку с минусом соединяем с 8 пином платы. Для проверки работы кнопки был подключён светодиод к 13 пину. Был написан скетч, который включал бы светодиод, когда с кнопки поступает единица. 1. Наблюдение за явлением дребезга контактов на примере тактовой кнопкиЭтот код не подходил нашим целям в полной мере, так как при отпускании кнопки светодиод сразу гас. А нужно было сделать так, чтобы он продолжал светить.Был изменён код.Тогда появился неприятный эффект: при нажатии на кнопку не всегда получилось добиться нужного результата. Кнопка не всегда включалась при нажатии. Видео работы кнопки с дребезгом.2. Изучение теории о дребезге контактов на примере тактовой кнопкиКод был проверен, схема тоже выполнена правильна. При выяснении причины проблемы, ответ нашёлся с помощью интернета. Оказалось, что дело тут в дребезге контактов. Дребезг контактов это явление, которое появляется в электронных переключателях, при котором переключатели вместо стабильной работы производят хаотичные, многократные замыкая и размыкания. До того как контакты кнопки плотно сомкнутся они будут дребезжать, т.е. колебаться. И тем самым будут давать контролеру неверную информацию о своём состоянии. Происходит это из-за несовершенства при изготовлении всех переключателей. Этот дребезг длится около 50 мс. Именно с помощью этого факта и можно выявить первый способ как побороться с этим. Для этого в цикле if() { } мы ставим delay(50);3. Устранение дребезга контактов программным способомЭто первый способ решения этой проблемы. Программный способ.Видео работы кнопки без дребезга.Программный способ устранения дребезга хорош тем, что при этом методе не нужно вносить изменения в электрическую цепь. Достаточно изменить программу на контроллере. Но у этого метода есть и минусы. Так, к примеру, дребезг иногда длится больше 50 миллисекунд и тогда помехи всё равно есть. Для более точной и быстрой электроники ждать отклика кнопки такое время слишком долгое. Для использования команды delay(); занимается вся память таймера и поэтому, таймер, который стоит на плате нельзя использовать в других целях.4. Устранения дребезга контактов аппаратным способом Но есть и другие способы бороться с дребезгом с помощью прерывания. Прерывание может быть двух видов: 1) По таймеру2) Аппаратные Как уже было сказано выше, прерывание по таймеру невозможно без подключения отдельного таймера к цепи, что существенно усложнит её использование. Хотя, есть и отдельные таймеры, которые можно использовать для этой цели, к примеру, микросхема 555.Поэтому было решено использовать аппаратное прерывание. Аппаратные решения, всегда ценятся выше среди инженеров. За счёт их надёжности, облегчения программы и вообще за большую хардкорность. Но есть и минусы. Основным недостатком является то, что придётся изменять цепь. Ещё одним минусом является то, что придётся затрачивать большее количество радиодеталей. Аппаратно на плате Galileo Gen 2 возможно выполнить четыре вида прерывания. 1) Это LOW – вид, который будет в цикле повторять прерывания каждый раз, пока контакт Galileo Gen 2 притянут к нулю. 2) Change – будет совершаться прерывание всякий раз при изменении напряжения.3) Rising – будет срабатывать прерывание при повышении напряжения4) Faling – с точностью до наоборот. Прерывание будет происходить, когда контакт будет уходить в ноль. Мы будем использовать Faling. Для этого соберём новую RC - цепь. RC – резистор конденсатор. По названию элементов, которые будут основными в этой схеме. По сравнению со старой схемой будет ряд изменений. 1) Замена стягивающего на подтягивающий резистор. Это нужно для того, чтобы инвертирующий триггер Шмидта сработал. 2) Установим конденсатор на 10мФ. 3) Это инвертирующий триггер Шмидта, который сгладит и инвертирует сигнал. Подключение осуществляется следующим образом. Это решение также отлично подходит для устранения дребезга контактов. В результате выполнения исследовательской работы удалось пронаблюдать явление дребезга контактов на примере тактовой кнопки на плате Intel® Galileo Gen2. Была изучена теория о дребезге контактов. Дребезг контактов был устранён программным и аппаратным способом.Посты по теме:Плата Intel® Galileo Gen 2 и индикаторыПлата Intel® Galileo Gen 2 и светодиодная матрицаПодключение дисплея к плате Galileo Gen2Добыча полезных ископаемых для робототехники Intel® Galileo Gen2 дребезг контактов