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

Практическая работа 2 / ПР2_Мягков_БАП2201

.pdf
Скачиваний:
0
Добавлен:
21.04.2026
Размер:
7.63 Mб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

«Московский технический университет связи и информатики» (МТУСИ)

Кафедра «Интеллектуальные системы в управлении и автоматизации» (ИСУиА)

ПРАКТИЧЕСКАЯ РАБОТА №2

По дисциплине

Технологии промышленного интернета вещей

Выполнили: Студенты 4-го курса Группы БАП2201 Ли Самен Мягков А.К.

Проверил: к.т.н., доцент Воронов В.И.

Москва 2026

СОДЕРЖАНИЕ

 

КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ........................................................

3

ВЫПОЛНЕНИЕ......................................................................................................

4

ВЫВОДЫ ................................................................................................................

6

2

КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ Дребезг кнопки

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

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

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

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

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

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

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

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

int currentVa1ue, prevVa1ue; void 1оор(){

currentva1ue = digitalRead(PIN_BUTTON); if (currentVa1ue != prevValue){

// Что-то изменилось, здесь возможна зона неопределенно-

сти

3

//делаем задержку de1ay{10);

//А вот теперь спокоЙно считываем значение, считая, что

нестабильность исчезла

currentVa1ue = digita1Read(PIN_BUTTON);

}

prevVa1ue = currentVa1ue ;

Seria1.print1n (currentVa1ue);

}

ВЫПОЛНЕНИЕ

На рисунке 1 представлена схема подключения из TinkerCAD по реализации рабочей схемы мигания лампочкой через кнопку.

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

В листинге 2 приведён пример программирования схемы со стягивающим резистором.

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

const int PIN_BUTTON = 2; const int PIN_LED = 13;

void setup() {

Serial.begin(9600); pinMode(PIN_LED, OUTPUT);

}

4

void loop() {

int buttonState = digitalRead(PIN_BUTTON); // Получаем состоя-

ние кнопки

Serial.println(buttonState);

if (!buttonState) { // Если кнопка не нажата, то ничего не делаем

delay(50);

return;

}

//Этот блок кода будет выполняться, если кнопка нажата

//Мигаем светодиодом

digitalWrite(PIN_LED, HIGH); delay(1000); digitalWrite(PIN_LED, LOW); delay(1000);

}

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

В скетче мы видим следующую логику:

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

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

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

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

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

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

На рисунке 3 представлена физическая реализация на ESP32 по миганию лампочкой.

5

Рисунок 3 – Горящая лампочка без (сверху) и с (снизу) включённой кнопкой по схеме со стягивающим резистором на ESP32

ВЫВОДЫ

Собрана схема подключения кнопки и светодиода к микроконтроллеру, а также написан скетч с использованием программного подавления дребезга контактов. Практически на EPS32 реализован режим мигания светодиода при удержании кнопки.

6

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