Сумеречное реле

Visits: 1413


sure_07

Реле управления освещением, датчик день-ночь – одним словом фотореле для управления освещением или формирования сигнала для системы умный дом о понижении или повышении освещенности относительно заданного уровня. Реле выполнено по классической схеме, конденсаторный блок питания, от сети переменного тока 220 вольт. Реле на 24 вольта – чтобы уменьшить ток потребления устройством. Все новшество заключается в применении PIC-контроллера. Это дало минимальное количество внешних компонентов, что ускоряет и упрощает сборку, а также дополнительные функции в работе.

Классическое реле на операционных усилителях в основном обеспечивают одну функцию это гистерезис включения ( и то не всегда). Контролер позволяет добавить еще пару функций которые необходимы в работе сумеречного реле.

Функция задержки включения и выключения освещения. 

Если уровень освещенности понизился до уровня включения, в контроллере активируется таймер, например, на 2 минуты. После истечения времени если уровень освещенности соответствует уровню включения, то освещения включается, иначе ждем пока уровень освещенности не будет стабильно низким. Таймер позволяет например, избавиться от эффекта “автомобильных фар” – когда рекламщикам приходиться устанавливать датчик освещенности так,  чтобы свет от автомобильного транспорта не выключал рекламу.

Функция экономии электроэнергии.

 В наше время, это очень необходимый компонент. Пример на освещении рекламных щитов. Когда вечером включилась реклама, то реально она эффективна до полуночи. Потом резко эффективность падает – смотреть практически некому. Далее её необходимо включить под утро. Такое управление возможно более дорогими таймерами реального времени с датчиком освещенности. Но некоторую функцию мы можем и организовать и в нашем варианте. При включении освещения запускается таймер на 5 часов. По окончанию работы этого таймера освещение выключается. И запускается таймер ожидания на 5 часов. Естественно если это летний период, то реклама будет гореть только вечером, а зимой когда “утро еще темное” будет включаться еще и под утро. Эффективность такой работы приблизительно в 50% экономии потребляемой электроэнергии.

Ниже будут предоставлены прошивки программ для всех вариантов сумеречного реле, чтобы удовлетворить все вкусы.


Печатная плата.

sure_01

 

приобрести в магазине Ворон.

Плата предназначена для монтажа в корпус

OLYMPUS DIGITAL CAMERA OLYMPUS DIGITAL CAMERA


Полная схема. (На практике используется только частично)

sure_03

 Выход реле выполнено в виде “сухого” контакта, это сделано, что было можно применять данное устройство, для систем домашней автоматики (“Умного дома”).


Монтажная схема платы.

sure_05

Обратите внимание!! на самой печатной плате ошибка в маркировке резистора R2 и C1 они перепутаны местами (на картинке маркировка исправлена).


Схема используемая для сборки проекта.

sure_04

Схема элементарно проста, на один вход контроллера 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 ...



Это может быть интересно


  • Самый простой индикатор уровня звукового сигналаСамый простой индикатор уровня звукового сигнала
    Visits: 6189 Демонстрационный проект создания индикаторов уровня с использованием WS2812B. Изучив этот проект вы сможете  самостоятельно изготавливать и конструировать свои индикаторы уровня звукового сигнала. Дополнительно читайте статью Бегущие огни на …
  • MPLAB® Harmony – или как это просто! Часть 1.MPLAB® Harmony – или как это просто! Часть 1.
    Visits: 3530 Часть первая – Установка Гармонии. Музыкальная тема к статье, слушаем: В начале запуска нового проекта и выбора микроконтроллера стоит задача правильно его сконфигурировать, прежде чем перейти к реализации …
  • Четырех канальный терморегулятор ch-4000Четырех канальный терморегулятор ch-4000
    Visits: 3126  Четыре независимых канала регулирования температуры, одновременно можно подключить 16 датчиков температуры DS18B20 с удалением до трехсот метров. Можно для регулировки выбрать любой датчик, подключенный к устройству. Каждый канал может работать …
  • Moving average – скользящее среднееMoving average – скользящее среднее
    Visits: 2183 Скользящая средняя, скользящее среднее (англ. moving average, MA) — общее название для семейства функций, значения которых в каждой точке определения равны среднему значению исходной функции за предыдущий период. Скользящие средние обычно используются с данными временных рядов для сглаживания …
  • DS18B20 – удаленный контроль температурыDS18B20 – удаленный контроль температуры
    Visits: 3007 Контроль температуры с использованием датчиков температуры DS18B20 и платы ILLISSI-4B-09-primum Проект позволяет подключать к плате ILLISSI-4B-09-primum до 16 датчиков температуры DS18B20, удаленных более 300 метров,  и выводить информацию …
  • MPLAB® Code Configurator and EncoderMPLAB® Code Configurator and Encoder
    Visits: 1389 Еще раз про энкодер… Для некоторых приложений очень удобно и экономически выгодно, для настройки и управления использовать энкодер. Такие энкодеры имеют строенную тактовую кнопку которую можно применить для выбора …
  • Analog-to-Digital Converter with Computation Technical BriefAnalog-to-Digital Converter with Computation Technical Brief
    Visits: 1208 Аналого-цифровой преобразователь с вычислительным модулем. ВВЕДЕНИЕ Аналого-цифровой преобразователь (ADC) с вычислительным модулем (ADC2) в 8-разрядном микроконтроллере Microchip имеет встроенные вычислительные функции, которые обеспечивают функции пост-обработки, такие как передискретизация, …
  • PIC18 – System ArbitrationPIC18 – System Arbitration
    Visits: 541 Системный арбитр. Разрешает доступ к памяти между выборами уровнями системы (т.е. Main, Interrupt Service Routine) и выбором периферийных устройств (т.е. DMA и Scanner) на основе назначенных пользователем приоритетов. Каждый …
  • DIXELL XWEB500D-EVO + RUT900 или как пробить NAT-серверDIXELL XWEB500D-EVO + RUT900 или как пробить NAT-сервер
    Visits: 979 Когда необходимо под какой нибудь контроллер имеющий вэб сервер в инет, то нужен статический IP, что оказалось проблемой при работе с операторами сотовых сетей, конкретно с оператором сети …
  • Защита датчиков температуры DS18B20 от статического электричестваЗащита датчиков температуры DS18B20 от статического электричества
    Visits: 1791 Статья перепечатана с сайта http://svetomuzyka.narod.ru При удалении датчика на большие расстояния возникает опасность наведения импульсов высокого напряжения на кабель, который соединяет датчик с контролером. Если не принимать меры защиты, …



 

Поделись этим!

Catcatcat

catcatcat

Development of embedded systems based on Microchip microcontrollers.

Продолжайте читать

НазадДалее