**Материалы:**
* Микроконтроллер (например, Arduino Uno или ESP8266)
* Кнопка
* Светодиод
* Резистор (1 кОм или 10 кОм)
* Макетная плата
* Соединительные провода
**Схема подключения:**
1. Подключите кнопку к цифровым контактам микроконтроллера.
2. Подключите один конец резистора к кнопке, а другой — к земле.
3. Подключите светодиод к другому цифровому контакту микроконтроллера.
4. Подключите анод светодиода (длинный вывод) к питанию (5 В), а катод (короткий вывод) — к контакту микроконтроллера.
**Программный код:**
«`
// Библиотека для работы с кнопками
#include
// Определение контактов
const int buttonPin = 2; // Контакт кнопки
const int ledPin = 3; // Контакт светодиода
// Переменные для таймера
long startTime = 0; // Время начала отсчета
long duration = 3000; // Длительность таймера в миллисекундах (5 минут)
// Объект для работы с кнопкой
Bounce debouncer = Bounce();
void setup() {
// Настройка контактов
pinMode(buttonPin, INPUT_PULLUP);
pinMode(ledPin, OUTPUT);
// Настройка debouncer
debouncer.attach(buttonPin, INPUT_PULLUP);
debouncer.interval(50); // Интервал срабатывания кнопки (50 мс)
}
void loop() {
// Проверка кнопки
debouncer.update();
if (debouncer.fell()) {
startTime = millis(); // Начало отсчета времени
}
// Проверка времени
long elapsedTime = millis() — startTime;
if (elapsedTime >= duration) {
// Превышение длительности таймера
digitalWrite(ledPin, HIGH); // Свечение светодиода
} else {
// Таймер еще не завершился
analogWrite(ledPin, map(elapsedTime, 0, duration, 0, 255)); // Мигание светодиода в зависимости от оставшегося времени
}
}
«`
**Инструкции:**
1. Загрузите код на микроконтроллер.
2. Подключите питание к макетной плате, и таймер начнет работу.
3. Для сброса таймера нажмите кнопку. Светодиод будет светиться, пока отсчет не завершится.
