Подписаться на получение новых статей на почту:

Основа работы реле напряжения (барьера) на AVR. Шаг № 9

Обновлено 3.12.15. Всем привет. В этой статье мы рассмотрим общие основы работы реле контроля напряжения (барьера), а если точнее, то использование АЦП, что является еще одним ярким примером использования микроконтроллеров в нашей жизни. Напомню в прошлой статье мы рассмотрели и изготовили UART — USB преобразователь на AVR.  Ну что ж приступим с рассмотрения железа.  

Итак что такое реле напряжения (барьер)?  Если общими словами, то это устройство для  защиты электрооборудования от перепадов напряжения (и только!), из-за которого выходит из строя как электроника, так и двигатели. На рисунке ниже, представлена одна из многих, схема простого исполнения барьера, который мне попался на PIC-ом микроконтроллере. Я все это дело переделал на AVR, еще плюс прилепил два датчика температуры… больше наверное для образовательной цели, хотя можно использовать как управление… ладно вернемся к схеме. Основа барьера это мониторинг напряжения. С помощью АЦП в микроконтроллере можно следить за ним. Конечно перед этим нам надо его уменьшить до разумных пределов 5 В и меньше. Дальше для работы АЦП необходимо ИОН, т.е. источник опорного напряжения.

ЕСхема реле напряжения (барьера) на AVR сли проще, то эталонное напряжение, с которым будет сравниваться входное напряжение на АЦП. Т.е. в программе величину ИОН мы должны задать как пропорциональное максимальному напряжению сети. Рассмотрим на примере. Я выбрал внутренний ИОН 2,56 В. Канал АЦП я выбрал ADC1, 10-ти разрядный. 10 разрядов – это 1024. Значит, шаг измерения напряжения у меня будет 2,56/1024 = 0,0025 В. Учитывая, что ИОН = 2,56В, то напряжение на АЦП должно приходить меньшее. В моем варианте схемы стоит делитель на 1 Мом. При  включение всей периферии при 234 В на входе АЦП было примерно 1,8 В. Эта величина приходит на АЦП, как полупериод на рисунке ниже.

Действующее значение реле напряженияТакой вид импульсов образовывается за счет плеча, которое состоит из сопротивлений R4-R5. Пунктирная линия по середине – это действующее напряжение, то что нам надо. Итак нам необходимо, чтобы ацп посчитало весь период. Давайте посчитаем одно колебание – это один герц. Сетевая частота 50 Гц (приблизительно :) ), значит одно колебание длится 1/50 = 0.02с или 20 милисекунд. За это время нам необходимо, чтобы ацп сделало несколько выборок, чем больше  тем лучше. Я взял 64 выборки за 20 мс. Нам надо произвести 64 цикла преобразования. Один цикл преобразования длится примерно 13 тактов. Давайте посчитаем время, которое необходимо для одного преобразования – это 0.02/64 = 0,0003125 с. Каждые 312.5 мкс необходимо мерять сигнал АЦП, т.е. частота должна равняться 1 / 312.5 мкс = 3200гц. Будем использовать таймер и работу ацп по прерыванию по переполнению. Теперь нам необходимо подобрать частоту. Выберем предделитель на таймере 8, от общей частоты  1МГц, частота таймера составит 125000 гц, после этого мы должны рассчитать число от которого будет начинаться счет в таймере для подбора нам необходимой частоты.  Т.к. таймер у меня 16 – разрядный то 125000 гц /(65535-65496= 39) 39 = 3205,128 Гц.    Также необходимо помнить, что в ацп тоже имеется свой предделитель. Выставим предделитель на 2 и получим частоту работы ацп 500кГц, т.е. один такт в ацп будет длится 1/500000 = 2 мкс, а т.к. цикл преобразования 13 тактов, то полный цикл равен 2*13 =  26 мкс. Полное время для одного преобразования составит   312 + 26 = 338 мкс * 64 = 21,632 мс.

Пишем программу. Добавляем настройки АЦП для кнопок в программу из статьи №6, где мы рассмотрели цифровые датчики:

//Настройка АЦП
ADCSRA = 129; // РАЗРЕШАЕМ АЦП, ПРЕДДЕЛИТЕЛЬ ВКЛЮЧЕН НА 500 КГЦ, ПО УМОЛЧАНИЮ РУЧНОЙ РЕЖИМ
ADMUX = 193; // ИСТОЧНИК ОПОРНОГО НАПРЯЖЕНИЯ — 2,56 , ВХодной канал adc1
//Настройка Т1
TCCR1B = (1<<CS11);// предделитель 8
ТCNT1 =  0xffd8;       //регистр счета кстанавливаем 65496
//Не забываем включить Т1
TIMSK = (1<<TOIE0)|(1<<TOIE1);//Флаг разрешенияя по переполнению таймера счетчика Т0 и т1 

//Также добавил функцию по прерыванию
//прерывания таймера Т1 — обработка ацп
SIGNAL (TIMER1_OVF_vect)
{
    unsigned int v = 0;//велечина в которую заносятся данные преобразованного напряжения
    TCNT1 = 0xffd8; //регистр счета кстанавливаем 65396
    ADCSRA|= 0×40; //ЗАПУСК ПРЕОБРАЗОВАНИЯ
    while ((ADCSRA & 0×10)==0); // ждем пока установится флаг прерывания от компаратора 0001 0000,
    ADCSRA|=0×08; //РАЗРЕШАЕМ ПРЕРЫВАНИЕ ОТ КОМПАРАТОРА
    v=(ADCL|ADCH<<8);// сначала считывается младшийбайт, т.к. если не считать то не считаеися и старший байт
/*ниже представлен цикл для обработкт среднего значения за период и среднего за 8 периодов, что должно составлять примерно160 мс, по котрому и будет производиться решение о включении или выключении реле*/
     v_sr = v_sr + v;
     v = 0;
     v_vyb++;
     if (v_vyb == 63)
     { 
         v_sr = v_sr/64;
         v_vyb = 0;
         v_8++;
         v_sr_8 = v_sr_8 + v_sr;
         v_sr = 0;
      }
//берем 8 периодов для анализа среднего
      if (v_8 == 7)
      {
          v_sr_8 = v_sr_8/8;
          v_8 = 0;
          v_rez = v_sr_8;// (unsigned int)((float) v_sr_8 * 0.3); // вычесление напряжение , где 0.3 — примерная величина, ее необходимо рассчитывать
// максимальное напряжение сети при максимальном напряжении на ацп 2,56/1024
          v_sr_8 = 0 ;
       }
       return v_rez;// остается только настроить значение ацп
}

Вот таким примерно образом работают наши барьеры.
Рисунок снизу, это силовая часть, это самое простое исполнение барьера, без всяких защит и тому подобное. Когда я закончил это устройство и приступил уже к окончательной настройке ацп, оказалось что мне не хватает тока. микроконтроллер естественно стал сбрасываться.

Плата барьераОсталось дело за малым, сделать гальванически развязанный источник для питания мк, семисегментника, датчиков и реле. Для увелечения тока можна конечно попробовать поставить в паралель еще один высоковольтный   конденсатор. Но я на этом остановился. Индикация напряжения выводится в оцифрованном виде с ацп.  Три светодиода на схеме: два для определения порядка датчиков, и один за вывод отрицательной температуры. 5 ваттный стабилитрон на 12 В я вставил сам, до них стояло два стабилитрона по 5 в, один быцл в обрыве, второй к.з. вследствии чего разлетелась кренка, поэтому поменял и ее. Делая вывод лучше не использовать такой барьер, даже для малых нагрузок. Т.к. такое питание без развязки является слаботочным, и вследсвии выхода какогото элемента по питанию может вывести из строя микроконтроллер AVR.

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

Красные линии показывают максимальное и минимальное напряжение, не приводящее к сбою в работе оборудования по отношению к времени отклонения. Кривая изначально была создана для того, чтобы помочь пользователям различного электронного оборудования решить споры и проблемы, связанные с качеством электроэнергии, с поставщиками электричества. Сегодня мы рассмотрели основы реле напряжения, в следующей статье рассмотрим еще один пример устройства на микроконтроллере а именно измерение энергопотребления и мощности на примере анализатора энергетической эффективности холодильного аппарата. Ну что ж пока на этом все. Задавайте вопроссы, критикуйте. Всем спасибо за внимание.

Просмотрено 7505 раз.

Я на Google+

Основа работы реле напряжения (барьера) на AVR. Шаг № 9: Один комментарий

Добавить комментарий

Ваш e-mail не будет опубликован.

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Subscribe without commenting