| Ваш IP: 35.170.81.210 | Online(37) - гости: 23, боты: 14 | Загрузка сервера: 0.55 ::::::::::::

Регулируемый стабилизатор напряжения с защитой по току (Arduino)

За основу регуляруемого стабилизатора свята схема со траницы https://rcl-radio.ru/?p=57426 , схема достаточно простая и содержит минимальный набор элементов. Выходное напряжение регулируемого стабилизатора можно регулировать от 0 до 25 В при максимальном токе 3 А. Используя Arduino можно заметно расширить функционал стабилизатора, сделать индикацию и защиту по току и КЗ, добавив дополнительно аналоговый датчик тока ACS712, и цифровой датчик температуры 18B20 для контроля температуры корпуса силового транзистора.

Как видно на изображении, на индикатор выводится текущее напряжение и ток, температура корпуса силового транзистора и значение тока при котором сработает защита. Помимо токовой защиты имеется еще защита от перегрева силового транзистора, при температуре более 85 ºС напряжение будет сброшено до 0 В в течении 5 секунд, а на индикаторе высветится надпись «ERROR». Ток защиты устанавливается при помощи кнопок «+» и «-«, от 0,1 А до 3 А с шагом 0,1 А. При достижении выходного тока стабилизатора и тока защиты, выходное напряжение сбрасывается до 0 В, то же самое происходит при КЗ. Как и при тепловой защите на экран выводится надпись «ERROR». Защита активна в течении 5 секунд.

Схема стабилизатора напряжения условно поделена на две части, цифровую (Arduino+индикатор и кнопки управления) и силовую. В силовой части используется два параметрических стабилизатора на 5,6 В для опрного источника и 27 В для питания ОУ LM358 который имеет максимальное напряжение питания 32В, что позволяет запитывать схему стабилизатора напряжением выше 32 В.

Транзистор КТ825Г необходимо установить на теплоотвод площадью не менее 400 кв. см. Переменный резистор R5 задающий выходное напряжение стабилизатора желательно применить многооборотный, если такой возможности нет, то регулировку выходного напряжения необходимо разделить на грубую и плавную, применив для этой цели два резистора.

Напряжение с точки соединения R1 и R2 подается на аналоговый вход Arduino A0 которое не превышает 4,7 В при выходном напряжении стабилизатора 25 В. С датчика тока (модуль) ACS712 напряжение подается на вход А1, а цифровой датчик (модуль) температуры (крепится непосредственно на корпус силового транзистора) подключается к выходу А2. Управление защитой осуществляется при помощи аналого выхода D12, при срабатывании защиты на выходе D12 устанавливается логический ноль который подается на неинвертирующий вход ОУ, что приводит к закрыванию силового транзистора и напряжение на выходе становится равным нулю.

Библиотеки:

ACS712.zip

DallasTemperature.h

OneWire.h

#include <LiquidCrystal.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <ACS712.h>
#include <EEPROMex.h>
  LiquidCrystal lcd(7, 6, 2, 3, 4, 5);// RS,E,D4,D5,D6,D7
  OneWire oneWire(A2);// вход датчика 18b20
  DallasTemperature t(&oneWire);
  ACS712 sensor(ACS712_05B, A1); // тип датчика ACS712_05B
  float U,I,i_reg,temp;
  float i_iz,i_sum,u_iz,u_sum;
  float kalib_u=5.32; 
  int temp_error=85;
  unsigned long time,time1,time2,time3;
  int w,i,i1,reg;
 
void setup(){ 
  Serial.begin(9600);lcd.begin(16, 2);//sensor.calibrate();
  t.begin();t.setResolution(9);//9 бит 
  pinMode(A0,INPUT);// U = 0...25 V
  pinMode(10,INPUT);pinMode(11,INPUT);//+ - 
  pinMode(11,INPUT);
  i_reg=EEPROM.read(0)/10.0;
}
 
void loop() {
  if(digitalRead(10)==HIGH){i_reg=i_reg+0.1;delay(200);w=1;}
  if(digitalRead(11)==HIGH){i_reg=i_reg-0.1;delay(200);w=1;}
  if(i_reg<=0){i_reg=0.1;}if(i_reg>3){i_reg=3;}
  ////////////////// измирение напряжения, вход А0 ////////////////////
  u_iz=analogRead(A0);i1++;u_sum=u_sum+u_iz;
  if(i1==10){U=u_sum/10;u_sum=0;i1=0;}
  if(millis()-time>200){
  U = U*5.00*kalib_u/1023;
  lcd.setCursor(0,0);lcd.print("U = ");lcd.print(U,1);lcd.print(" V  ");
  time=millis();}
////////////////////// измерение температуры корпуса транзстора ///////
  if(millis()-time1>1000){ t.requestTemperatures();
  temp=t.getTempCByIndex(0);
  lcd.setCursor(12,0);lcd.print(temp,0);
  lcd.print(char(223));lcd.print("C     ");
  time1=millis();
  }
/////////////////////// измерение тока ///////////////////////////////
  i_iz = sensor.getCurrentDC();i++;i_sum=i_sum+i_iz; // измерение
  if(i==10){I=i_sum/10;i_sum=0;i=0;}
  if(millis()-time2>300){lcd.setCursor(0,1);if(I<=0){I=0;}
  lcd.print("I = ");lcd.print(I,1);lcd.print(" A  ");
  time2=millis();}
///////////////////// вывод рег тока ///////////////////////
  lcd.setCursor(11,1);lcd.print(i_reg,1);lcd.print(" A");
  if(I>i_reg||temp>temp_error||i_iz>i_reg+0.5){pinMode(12,OUTPUT);digitalWrite(12,LOW);
  lcd.setCursor(11,1);lcd.print("ERROR");delay(5000);I=0;U=0;
  pinMode(12,INPUT);}
  ///////////////////// eeprom ///////////////////////////
  if(w==1&&millis()-time3>10000){reg=i_reg*10.0;EEPROM.update(0,reg);w=0;time3=millis();}
}

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

  • float kalib_u=5.32;
  • int temp_error=85;

Первая переменная калибрует напряжение выводимое на индикатор, вторая переменная отвечает за температурную защиту.

Комментарии

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

Войти с помощью: 

Случайные статьи

  • Простой стереоусилитель

    Простой стереоусилитель

    Характеристики: Номинальный диапазон частот при неравномерности АЧХ 6дБ от 60 до 22000Гц Входное напряжение ЗЧ для номинальной мощности 0,2В Номинальная выходная мощность при Rн=4 Ом(8Ом) 6Вт(3Вт) КНИ не более 0,3% Напряжение питания 12В Усилитель выполнен на одной микросхеме К548УН1А и комплектарной паре составных транзисторов. Основное усиление по напряжению происходит в …Подробнее...
  • Индикатор уровня сигнала на транзисторах

    Индикатор уровня сигнала на транзисторах

    Это простой индикатор уровня сигнала для звуковоспроизводящей аппаратуры, схема адаптирована к различным потребностям пользователей. Может быть адаптирована к различным уровням входного сигнала- TR1 (регулировка уровня входного напряжения), TR2 (регулировка усиления). Принцип работы: после усиления ОУ на TL017 сигнал выпрямляется диодами D1-D2 (в дальнейшем используется только положительная полуволна сигнала), далее сигнал …Подробнее...
  • TDA1514A — 50W усилитель мощности

    TDA1514A — 50W усилитель мощности

    На TDA1514A микросхеме усилителя мощности, можно получить до 50W  выходной мощности при хороших параметров звучания. TDA1514A -Fi  усилитель мощности может быть использован как усилитель для радио, ТВ и для другой аудио-аппаратуры. Высокая эффективность IC отвечает требованиям цифровых источников (например —  компакт-диск проигрыватель). Схема полностью защищена, два выходных транзисторов защищены от …Подробнее...
  • Микрофонные усилители на ОУ

    Микрофонные усилители на ОУ

    Ниже показана схема микрофонного усилителя на ОУ которая имеет следующие параметры: Номинальное входное напряжение Номинальное выходное напряжение Отношение сигнал\шум Рабочий диапазон частот Коэффициент гармоник Максимальное выходное напряжение Входное сопротивление Минимальное сопротивление нагрузки 1мВ 100мВ 56дБ 30…30000Гц 0,05% 7В 1кОм 10кОм   ОУ включен по схеме инвертирующего усилителя. Коэффициент усиления определяется …Подробнее...
  • L5970D импульсный DC-DC преобразователь

    L5970D импульсный DC-DC преобразователь

    ИМС L5970D — импульсный DC-DC преобразователь, используется в понижающих, повышающих и инвертирующих преобразователях с использованием минимального количества внешних элементов. Основные особенности преобразователя: входное напряжение от 4.4В до 36В; низкое потребление тока в отсутствие нагрузки; внутренняя схема ограничения выходного тока; выходной ток до 1А; функция отключения при перегреве микросхемы; выходное напряжение регулируется …Подробнее...