Таймер включения и выключения электроприборов своими руками

Материалы:

* Arduino Uno или другой микроконтроллер
* Реле (напряжение катушки должно соответствовать напряжению питания электроприбора)
* Транзистор (например, BC547)
* Резисторы: 10 кОм, 1 кОм
* Кнопки или переключатели
* ЖК-экран (необязательно)
* Источник питания на 5 В (например, USB или аккумулятор)

Схема:

![Схема таймера включения и выключения электроприборов](https://i.imgur.com/P5hLDrJ.png)

Соединения:

* Подключите источник питания на 5 В к Arduino.
* Подключите вывод цифрового выхода Arduino (например, D2) к базе транзистора.
* Подключите эмиттер транзистора к земле.
* Подключите коллектор транзистора к катушке реле.
* Подключите один контакт кнопки или переключателя к земле.
* Подключите другой контакт кнопки или переключателя к резистору 10 кОм.
* Подключите свободный вывод резистора 10 кОм к выводу цифрового входа Arduino (например, D3).
* Подключите ЖК-дисплей (необязательно) к Arduino в соответствии с его спецификациями.

Код программы:

«`cpp
include

// Константы пинов
const int relayPin = 2;
const int buttonPin = 3;

// Объект ЖК-дисплея
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

// Переменные
bool isOn = false;
unsigned long startTime = 0; // Время начала цикла
unsigned long endTime = 0; // Время окончания цикла

void setup() {
// Настройка пинов
pinMode(relayPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);

// Инициализация ЖК-дисплея
lcd.begin(16, 2);

// Отображение приветствия на ЖК-дисплее
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(«Таймер»);
lcd.setCursor(0, 1);
lcd.print(«Выкл»);
}

void loop() {
// Считывание состояния кнопки
bool buttonPressed = !digitalRead(buttonPin);

// Обработка нажатия кнопки
if (buttonPressed) {
if (isOn) {
// Выключение реле
digitalWrite(relayPin, LOW);
isOn = false;
lcd.setCursor(0, 1);
lcd.print(«Выкл»);
} else {
// Включение реле
digitalWrite(relayPin, HIGH);
isOn = true;
lcd.setCursor(0, 1);
lcd.print(«Вкл»);
startTime = millis(); // Запоминание времени начала цикла
}
}

// Проверка, если включен таймер
if (isOn) {
// Подсчет времени, прошедшего с начала цикла
unsigned long elapsedTime = millis() — startTime;

// Проверка, истекло ли время цикла
if (elapsedTime >= endTime) {
// Выключение реле
digitalWrite(relayPin, LOW);
isOn = false;
lcd.setCursor(0, 1);
lcd.print(«Выкл»);
}
}
}
«`

Использование:

1. Соберите схему.
2. Загрузите код программы в Arduino.
3. Нажмите кнопку, чтобы включить или выключить электроприбор.
4. При необходимости используйте ЖК-дисплей, чтобы отслеживать состояние таймера или настраивать продолжительность цикла.

Модификации:

* Добавьте потенциометр для регулировки продолжительности цикла.
* Добавьте несколько кнопок или переключателей для управления несколькими электроприборами.
* Используйте Wi-Fi или Bluetooth-модуль для управления таймером из приложения для смартфона.
* Добавьте датчик движения или другого типа для автоматического включения и выключения электроприборов на основе внешних условий.

Оцените статью