Views: 1447
Реле управления освещением, датчик день-ночь – одним словом фотореле для управления освещением или формирования сигнала для системы умный дом о понижении или повышении освещенности относительно заданного уровня. Реле выполнено по классической схеме, конденсаторный блок питания, от сети переменного тока 220 вольт. Реле на 24 вольта – чтобы уменьшить ток потребления устройством. Все новшество заключается в применении PIC-контроллера. Это дало минимальное количество внешних компонентов, что ускоряет и упрощает сборку, а также дополнительные функции в работе.
Классическое реле на операционных усилителях в основном обеспечивают одну функцию это гистерезис включения ( и то не всегда). Контролер позволяет добавить еще пару функций которые необходимы в работе сумеречного реле.
Функция задержки включения и выключения освещения.
Если уровень освещенности понизился до уровня включения, в контроллере активируется таймер, например, на 2 минуты. После истечения времени если уровень освещенности соответствует уровню включения, то освещения включается, иначе ждем пока уровень освещенности не будет стабильно низким. Таймер позволяет например, избавиться от эффекта “автомобильных фар” – когда рекламщикам приходиться устанавливать датчик освещенности так, чтобы свет от автомобильного транспорта не выключал рекламу.
Функция экономии электроэнергии.
В наше время, это очень необходимый компонент. Пример на освещении рекламных щитов. Когда вечером включилась реклама, то реально она эффективна до полуночи. Потом резко эффективность падает – смотреть практически некому. Далее её необходимо включить под утро. Такое управление возможно более дорогими таймерами реального времени с датчиком освещенности. Но некоторую функцию мы можем и организовать и в нашем варианте. При включении освещения запускается таймер на 5 часов. По окончанию работы этого таймера освещение выключается. И запускается таймер ожидания на 5 часов. Естественно если это летний период, то реклама будет гореть только вечером, а зимой когда “утро еще темное” будет включаться еще и под утро. Эффективность такой работы приблизительно в 50% экономии потребляемой электроэнергии.
Ниже будут предоставлены прошивки программ для всех вариантов сумеречного реле, чтобы удовлетворить все вкусы.
Печатная плата.
приобрести в магазине Ворон.
Плата предназначена для монтажа в корпус
Полная схема. (На практике используется только частично)
Выход реле выполнено в виде “сухого” контакта, это сделано, что было можно применять данное устройство, для систем домашней автоматики (“Умного дома”).
Монтажная схема платы.
Обратите внимание!! на самой печатной плате ошибка в маркировке резистора R2 и C1 они перепутаны местами (на картинке маркировка исправлена).
Схема используемая для сборки проекта.
Схема элементарно проста, на один вход контроллера AN1 приходит напряжение с потенциометра, которым задается порог освещенности. На второй AN0 напряжение с делителя выполненного их фоторезистора и резистора R9. Программа контроллера сравнивает значение на этих входах и в зависимости от заложенной в ней логике управляет реле.
Перечень элементов необходимых для монтажа сумеречного реле.
Наименование | Типоразмер | Тип (замена) | Количество | Примечание |
Печатная плата | CH-SR_08 | 1 | ||
Печатная плата с микроконтроллером | 1 | версия 2.0 | ||
Фоторезистор | hole 2.54mm | GL3516 (любой аналогичный) | 1 | FR1 |
PIC-контроллер | SOT23-6 | PIC10F222 | 1 | PIC1 |
Потенциометр | smd | 3305SMD-20K | 1 | R5 |
Транзистор | SOT23 | BC847C (любой npn) | 1 | V1 |
Стабилитрон | DO41 | BZV85-C5V1 | 1 | Z2 |
Стабилитрон | DO41 | BZV85-C24V | 1 | Z1 |
Варистор | hole 5-7mm | FNR-05K391 (471) | 1 | RV2 |
Соединитель | hole 7.62mm | WJ-25C-4P (любой с шагом 76,2) | 1 | CON1 |
Конденсатор | hole 15mm | MKP X2 0.33uF 280V (0.47-0.22) | 1 | C3 |
Выпрямительный мост | HD10 (HD6-HD8) | 1 | BR1 | |
Электролитический конденсатор | 100,0x35v (100-330) | 2 | C2,C6 | |
Конденсатор керамический | 0805 | 0,1х50v (0,1-0,47) | 3 | C7,C8,C5 |
Конденсатор керамический | 0805 | 4.7x25v (1,0-10,0) | 1 | C4 |
Резистор | 0805 | 1к (680-1,6л) | 1 | R2 |
Резистор | 0805 | 10к (7,5-16к) | 2 | R1,R6,R10 |
Резистор | 0805 | 20к (18-24к) | 1 | R9 |
Резистор | 1206 | 100 (75-120) | 1 | R3 |
Резистор | 1206 | 2к (1,8-2,4к) | 1 | R11 |
Резистор | 1206 | 510к (680-1М) | 2 | R7,R8 |
Резистор | 0.5w | 51 (47-68Ом) | 1 | R4 |
Реле | JQC-3F | 1 | P1 | |
Выпрямительный диод | QuadroMELF | LS4148 | 1 | D1 |
Джампер | hole 2.54mm | JM-G | 1 | J1 |
Программа.
Рассмотрим составление программы для пик контроллера для самого простого типа сумеречного реле, только функция гистерезиса. Что такое гистерезис? Эта функция которая которая позволяет устранить хаотичное переключение исполнительного устройства в момент когда уровень измеряемого параметра близок или равен уровню задания. Поэтому к уровню задания вводиться дополнительный параметр который позволяет уровень включения и уровень выключения раздвинуть по шкале параметра. При этом включение освещения будет происходить при более низкой освещенности, а выключение при более высокой.
Построение программы на языке Си для компилятора Microchip MPLAB XC8 C Compiler V1.12.
Первое это укажем заголовок по которому компилятор поймет какой контролер мы используем в проекте.
#include // для настройки под выбранный контроллер
Второе – настроим регистры конфигурации для нашего проекта.
//--------------------------------------------------------------------------- // конфигурирование контроллера __CONFIG( IOSCFS_8MHZ & // Тактовый генератор на 8 MHz MCPU_OFF & // Pull-up резистор отключен WDTE_ON & // Сторожевой таймер включен CP_ON & // Защита кода включена MCLRE_ON); // Вывод GP3/MCLR настроен на функцию MCLR //---------------------------------------------------------------------------
Далее опишем переменные которые будем использовать в проекте.
// Описание переменных char ustavka,uroven; // таймер формирующий длительность светового индикатора int timerBeep; // переменная формирующая период мигания светового индикатора
// определения
#define RELE GP2 // выход управления реле #define GISTER 20 //5 20 #define _XTAL_FREQ 8000000 // для __delay
Далее сам программа, на первом этапе конфигурируем порты ввода вывода
// сама программа void main(void) { // Настройка контроллера CLRWDT(); //сброс сторожевого таймера +++++++++++++++++++++- // загрузку калибровочной константы си берет на себя // обнуление порта (правда Си тоже это делает) GPIO=0; // настройка регистра OPTION OPTION=0b11001111; // |||||+++--- PS: настройка предделителя // ||||+------ PSA: пределитель подключен к сторожевому таймеру // |||+------- T0SE: счет по фронту импульса на входе T0CKI // ||+-------- T0CS: вход таймера подключен к внутренему генератору // |+--------- GPPU: подтягивающие резисторы на GP0, GP1, GP3 отключены // +---------- GPWU: побуждение по входам GP0, GP1, GP3 отключено // настройка портов ввода вывода TRISGPIO=0b11111011; // |||||||+--- GP0: вход // ||||||+---- GP1: вход // |||||+----- GP2: выход // ||||+------ GP3: вход // ++++------- не используются // настройка АЦП ADCON0=0b11000001; // |||||||+--- ADON: АЦП включен // ||||||+---- GO/DONE: статус и запуск конвертирования // ||||++----- CHS: АЦП подключен к входу GP0/AN0 // ||++------- не используются // |+--------- ANS0: вывод GP0/AN0 настроен как аналоговый // +---------- ANS1: вывод GP1/AN1 настроен как аналоговый CLRWDT(); //сброс сторожевого таймера +++++++++++++++++++++- //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- // задежка необходимая для заряда входной емкости фильтра // после подачи питания timerBeep++; // while(timerBeep) // { GO=1; // включить конвертирование while(GO); // ожидание окончания конвертирования timerBeep++; // } //---------------------------------------------------------------------------
И главный цикл, в котором крутится сама программа.
//--------------------------------------------------------------------------- // главный цикл работы while(1) { CLRWDT(); //сброс сторожевого таймера +++++++++++++++++++++- //-------------------------------------------------------------------- // измерение ADCON0=0b11000111; // выбрать вход 1 и включить конвертирование АЦП while(GO); // ожидание окончания конвертирования ustavka=ADRES; // задатчик уровня освещенности ADCON0=0b11000011; // выбрать вход 0 и включить конвертирование АЦП while(GO); // ожидание окончания конвертирования uroven=ADRES; // текущий уровень освещенности //-------------------------------------------------------------------- // сравнение и управление реле if (uroven<ustavka-gister) сравниваем="" полученное="" значение="" из="" АЦП="" {="" if="" (rele="=1)" rele="0;" наступил="" день="" }="" else="" (uroven="">ustavka+GISTER) // сравниваем полученное значение из АЦП { if (RELE==0) // { RELE=1; // наступила ночь } } } //--------------------------------------------------------------------------- }
Фотографии проекта.
Файлы для загрузки
Версия 1.0 только функция гистерезиса, монтировать джампер переключения режима работы не надо.
[wpdm_file id=22 template=”link-template-calltoaction3.php”]
Версия 2.0 добавлена функция таймера, задержка на включение и выключение 3,5 минуты. Джампер используется для выбора режима работы, если установлен – режим работы с таймером, если снят без таймера аналогичен версии 1.0. При снятом джампере использовать для настройки порога освещенности (если есть необходимость).
[wpdm_file id=23 template=”link-template-calltoaction3.php”]
Проект (MPLAB IDE v8.89, Microchip MPLAB XC8 C Compiler V1.12)
Сумеречное реле - проект (2013) 17.80 KB 84 downloads
2013 г MPLAB IDE v8.89 Microchip MPLAB XC8 C Compiler V1.12 ...Это может быть интересно
- MPLAB® Code Configurator and EncoderViews: 1419 Еще раз про энкодер… Для некоторых приложений очень удобно и экономически выгодно, для настройки и управления использовать энкодер. Такие энкодеры имеют строенную тактовую кнопку которую можно применить для выбора …
- MCC PIC24 – модуль REAL-TIME CLOCK AND CALENDAR (RTCC)Views: 473 RTCC предоставляет пользователю часы реального времени и функция календаря (RTCC), точность “хода” может быть откалибрована. Основные особенности модуля RTCC: • Работает в режиме глубокого сна. • Возможность выбора источника …
- Индикатор температурыViews: 2667 Проект для начинающих, на демо плате BB-2T3D-01. Простой индикатор температуры. Проект никак не задумывался, просто на витрину магазин Ворон нужна была демонстрационная модель на макетной плате, чего нибудь работающего. Остановились на индикаторе …
- ch-4000 – универсальная печатная платаViews: 1005 На смену устаревшей плате ch-3000, пришла новая ch-4000. Плату уже можно приобрести в магазине Ворон. Схема. Плата позволяет создавать таймеры, часы реального времени, регуляторы температуры, регуляторы влажности, вольтметры, …
- Часы-кухонный таймерViews: 3996 Каждая кухня должна иметь кухонный таймер, который позволяет напоминать хозяйке когда проходить определенный промежуток времени. Например, печем пирог, варим яйца… , чтобы не смотреть постоянно на часы, установим таймер и …
- Универсальный терморегулятор ch-c3000Views: 2984 Терморегулятор ch-c3000 предназначен для управления системами регулирования температуры в пределах от – (минус) 55 до + 125 С. Регулятор может использоваться как в системах отопления, так и в …
- Проект с использованием MCC часть 06Views: 1273 Изменим схему следующим образом добавим две тактовые кнопки BT1 и BT2. Теперь переключимся на конфигурацию выводов, для этого сделаем двойной клик в окне Ресурсы проекта на Pin Module. …
- Customs codes for exportViews: 134 Митні коди (HS Code) для надсилання посилок за кордон. Для відправки товару за кордон на сьогодні необхідно зазначати митні коди. Часто визначення коду займає багато часу. Для …
- ESP8266 применение в проектахViews: 3548 (Актуально только для версий прошивки 1.хх) ESP8266 показала себя как надежное и безотказное устройство для обмена данными с применением WIFI. Я использую ESP8266 исключительно через UART, с применением AT …
- MPLAB® Harmony – или как это просто! Часть 3.Views: 2086 Часть третья – копнём немного глубже. Вы наверное заметили, что во второй главе, вроде сначала все шло как по маслу, а потом, что бы заморгали светики, я вставил …