Добавил:
МТУСИ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
21.04.2026
Размер:
713.59 Кб
Скачать

Подключение элементов

Рисунок 1 – Подключение кнопки и светодиода к плате Arduino UNO

Ранее шла речь о резисторах, среди которых есть стягивающий и подтягивающий. Посмотрите внимательно на рисунок 1 и определите, какой резистор используется в данной схеме. На рисунке 2 приведен пример программирования схемы.

Рисунок 2 – Программирование кнопки и светодиода

2

Нажимаем и держим – светодиод мигает, отпускаем – он гаснет. Приступаем к анализу проделанного.

Давайте посмотрим на скетч внимательно. В нем мы видим довольно простую логику.

1.Определяем, зажата ли кнопка.

2.Если кнопка не зажата, то просто выходим из метода loop(), ничего не включая и не меняя.

3.Если кнопка зажата, то выполняем мигание, используя фрагмент стандартного скетча:

1.Включаем светодиод, подавая напряжение на нужный порт.

2.Делаем нужную паузу при включенном светодиоде.

3.Выключаем светодиод.

4.Делаем нужную паузу при выключенном светодиоде.

Дребезг кнопки

Вспомним ещё раз про явление дребезга кнопки.

В процессе работы с кнопками мы можем столкнуться явлением, называемым дребезгом кнопки. Как следует из самого названия, явление это обуславливается дребезгом контактов внутри кнопочного переключателя. Металлические пластины соприкасаются друг с другом не мгновенно (хотя и очень быстро), поэтому на короткое время в зоне контакта возникают скачки и провалы напряжения. Если мы не предусмотрим появление таких «мусорных» сигналов, то будем реагировать на них каждый раз.

Для устранения дребезга используют программные и аппаратные решения. В двух словах лишь упомянем основные методы подавления дребезга:

Добавляем в скетче паузу 10-50 миллисекунд между получением значений с пина Ардуино.

Если мы используем прерывания, то программный метод использоваться не может, и мы формируем аппаратную защиту. Простейшая из них — RC фильтр с конденсатором и сопротивлением.

Для более точного подавления дребезга используется аппаратный фильтр с использованием триггера Шмидта. Этот вариант позволит получить на входе в Ардуино сигнал практически идеальной формы.

3

Программный способ устранения дребезга кнопок

Самым простым способом справиться с проблемой дребезга кнопки является выдерживание паузы. Мы просто останавливаемся и ждем, пока переходный процесс не завершится. Для этого можно использовать функцию delay() или millis(). 10-50 миллисекунд – вполне достаточное значение паузы для большинства случаев.

Рисунок 3 – Программный способ устранения дребезга кнопок

В данном примере мы использовали задержку в программе, чтобы не реагировать на случайные всплески и определить реальную смену сигнала.

4

Соседние файлы в папке Практическая работа 2