Автоматический ночник на Arduino: код, схема и симуляция в Proteus
Автоматический ночник на Arduino — код, работа и симуляция
Автоматизация — метод сокращения или исключения человеческих усилий. В этом уроке: автоматический ночник через Arduino и реле с симуляцией в Proteus. Автоматизация — от термостата котла до управления крупными заводами. Системы: открытый цикл (один вход) или закрытый (обратная связь).
Плюсы и минусы автоматизации
Плюсы: производительность, предсказуемое качество, надежность, повторяемость, экономия труда, точность, избавление от монотонной работы.
Минусы: угрозы безопасности, превышение бюджета разработки, высокая стоимость внедрения, безработица в некоторых сферах.
Плюсы перевешивают — мир входит в эру автоматизации.
Задача: лампа сама включается/выключается при изменении освещенности. Инструменты: Arduino, реле, симуляция в Proteus.
Компоненты
- Arduino UNO
- Реле 5 В
- LDR (фоторезистор)
- Резистор 10 кОм
- Транзистор BC547 (NPN)
- DC 5 В (питание Arduino)
- AC 220 В (питание лампы)
Программное обеспечение
- Arduino IDE
- Proteus
Схема автоматического ночника

Описание компонентов
Arduino UNO
Открытая плата на ATmega328P (Microchip). 14 цифровых и 6 аналоговых пинов. Программируется через IDE по USB (Type B). Питание: USB (5 В) или DC 12 В. Похожа на Nano и Leonardo. Протокол STK500. Нет FTDI-чипа (в отличие от старых плат).

Реле
Электромагнитный ключ, управляется 5 В от пинов Arduino. Катушка с контактами: низковольтная сторона (катушка) и высоковольтная (COM, NC, NO). Рейтинги: 12В, 9В, 5В, 3В.
LDR
Переменное сопротивление по принципу фотоэлектрической проводимости. Сопротивление падает при росте освещенности. В темноте — МОм, при свете — сотни Ом. Для светозависимых детекторов и ключей.

BC547 — NPN биполярный транзистор
Полупроводниковый прибор для усиления/коммутации. 3 вывода. В схеме — ключевой режим: ток базы управляет током коллектора/эмиттера. Для ключа: смещение — полностью открыт при сигнале на базе, закрыт без сигнала.
Параметры: VCEO=45 В, IC=100 мА, VCBO=50 В, VEBO=6 В.

Описание ПО
Proteus
Проприетарный пакет для EDA (автоматизация проектирования). Схемы, PCB, симуляция схем и микроконтроллеров. Разработчик: Labcenter Electronics Ltd (Yorkshire, Англия). Мультиязычный. Регулярные обновления библиотек (>15 млн компонентов). Удобный интерфейс.
Arduino IDE
Кроссплатформенное приложение (Java). Написание скетчей и загрузка в Arduino. Языки: C/C++ (модифицированные). Встроенные и сторонние библиотеки. Использует avrdude для компиляции в hex-файл, загрузчик в прошивке платы.
Код проекта
int analogIN = A3;
int Trigger = 12;
void setup() {
Serial.begin(9600);
pinMode(analogIN, INPUT);
pinMode(Trigger, OUTPUT);
}
void loop() {
int value = analogRead(analogIN);
Serial.println(value);
if (value < 692) {
digitalWrite(Trigger, HIGH);
Serial.println("lamp is ON");
} else {
digitalWrite(Trigger, LOW);
Serial.println("lamp is OFF");
}
}
Разбор кода
Две глобальные переменные: analogIN (A3 — вход с делителя LDR), Trigger (12 — выход на реле).
Baud rate 9600. В setup(): A3 — вход, 12 — выход.
В loop(): читаем аналоговое значение (0–1023, 10-битный АЦП) в value. Выводим в Serial Monitor для калибровки. Условие: если value < 692 (темнота) → Trigger = HIGH (5 В) → транзистор открыт → реле замыкает NO → лампа ВКЛ. Иначе → Trigger = LOW → реле открыто → лампа ВЫКЛ. Цикл бесконечен — нужен постоянный питание Arduino.
Как получить hex-файл для Proteus
Arduino IDE: File → Preferences → «Show verbose output during:» ☑ compilation, ☑ upload. Компилируем → в консоли копируем путь к .hex файлу. В Proteus: двойной клик по Arduino → Program File → вставляем путь → OK. Готово к симуляции.
Видео симуляции
Coming soon
Принцип работы схемы
Делитель напряжения: 5 В (Arduino) → 10 кОм и LDR. Напряжение на резисторе или LDR → аналоговый вход A3. Код читает значение, соответствующее освещенности. По Serial Monitor калибруем порог (меняем 692 на нужное).
При срабатывании условия (освещенность ниже порога) → пин 12 = HIGH (5 В) → база транзистора → транзистор открыт → ток через катушку реле → реле срабатывает (NO замыкается) → цепь лампы 220 В замкнута → лампа ВКЛ.
При освещении выше порога → else → пин 12 = LOW → транзистор закрыт → реле отпускается → лампа ВЫКЛ.
Итог: Автоматический ночник упрощает жизнь: днем выкл., ночью вкл. Сборка из базовых компонентов. Код разобран для легкого старта с Arduino.
Промышленные технологии
- Как производители используют автоматизацию для масштабирования выполнения заказов электронной коммерции
- Создание потрясающей системы Ambilight для монитора на Arduino
- Умный вольтметр на Arduino и смартфоне — простое DIY-проект
- IoT-монитор пульса в реальном времени на Arduino и MAX30100
- Веб-сервер на Arduino Uno WiFi: управление LED через браузер
- Автоматизация игры «Динозавр» в Chrome на Arduino и LDR с Python
- Сборка компактного FM-радио на Arduino Nano и RDA5807M
- Беспроводная прошивка Arduino через Bluetooth HC-05: щит без USB-кабеля
- Сенсорный выключатель LED на Arduino UNO: простой DIY-проект
- Как работают автоматические сменщики инструментов: подробное руководство