| Ваш IP: 18.204.227.117 | Online(48) - гости: 25, боты: 23 | Загрузка сервера: 0.77 ::::::::::::

ШИМ регулятор напряжения 0…25 В 2,5 А(Arduino)

На рисунке показана схема простого ШИМ регулятора напряжения. Выходное напряжение ШИМ регулятора может меняться от 0 до 25 В, при максимальном токе нагрузки 2,5 А (при выходном напряжении 25 В). Схема ШИМ регулятора разделена на две части, первая часть силовая, в которой основными компонентами являются два транзистора и дроссель. Вторая часть схемы это плата Arduino Nano, которая отвечает за работу силовой части, управление и индикацию.

Управление ШИМ регулятором очень простое, регулировка выходного напряжения осуществляется при помощи энкодера KY-040, а информация об установленном напряжении выводится на семисегментный четырех разрядный индикатор на базе TM1637.

  1. ШИМ регулятор имеет три режима работы:
    Основной режим — на выходе присутствует напряжение установленное при помощи энкодера, напряжение отображается на индикаторе TM1637 как U10.0
  2. Режим изменения выходного напряжения —  для перехода в этот режим необходимо нажать кнопку энкодера, на индикаторе будет отображено r10.0, поворотом ручки энкодера можно изменить выходное напряжение. Напряжение на выходе в этом режиме равно 0 В. При повторном нажатии кнопки энкодера, ШИМ регулятор переходит в режим работы №1 (на выходе появляется установленное напряжение).
  3. Режим КЗ — при коротком замыкании или при токе потребления ШИМ регулятора больше 2,7 А, выходное напряжение пропадает, на 2 секунды выводится сообщение Err0, далее ШИМ регулятор переходит в режим №2.

Сборка:

Транзистор КТ818Б необходимо установить на теплоотвод.

Дроссель — намотан на ферритовом кольце диаметром 25 мм, проводом 0,8-1 мм, намотка в один слой до заполнения.

Настройка:

  1. Установить значение 20 В, подключить к выходу вольтметр, подобрать значение переменной float pop (вольтметр должен показывать 20+/-0,1 В)
  2. При выходном напряжении 20 В, подключить нагрузку 10 Ом, подобрать значение переменной float pop1 (вольтметр должен показывать 20+/-0,1 В).
  3. Выходное напряжение во всем диапазоне выходных напряжений должен иметь погрешность +/-0,2В  с подключенной нагрузкой и без нее.
#include <STM32_TM1637.h> // https://rcl-radio.ru/wp-content/uploads/2020/02/STM32_TM1637_V1_3.zip
#include <Encoder.h>  // https://rcl-radio.ru/wp-content/uploads/2019/05/Encoder.zip
#include <MsTimer2.h> // https://rcl-radio.ru/wp-content/uploads/2018/11/MsTimer2.zip
#include <EEPROM.h>
  STM32_TM1637 tm(2,3);// CLK, DIO
  Encoder myEnc(11, 12);//CLK, DT
 
int u_dig;
float u_ust=0;
int h,reg=0;
const float pop = 5.39; // поправочный коэффициент калибровки напряжения без нагрузки
const float pop1=1.75; // поправочный коэффициент калибровки напряжения под нагрузкой
long oldPosition  = -999,newPosition;
 
void setup() { 
 MsTimer2::set(1, to_Timer);MsTimer2::start(); 
  // 31 250 Гц 9 бит
  TCCR1A = TCCR1A & 0xe0 | 2;
  TCCR1B = TCCR1B & 0xe0 | 0x09;
 pinMode(9,OUTPUT);  
 pinMode(A0,INPUT);
 pinMode(4,INPUT);
 
 u_ust = float(EEPROM.read(0))/10;
 analogWrite(9,h);
  tm.brig(7); // ЯРКОСТЬ 0...7
  newPosition=0;tm.print_float(u_ust,1, 0b00111110,0,0,0);
}
 
void loop() {
  if(digitalRead(4)==LOW&&reg==0){analogWrite(9, 0);reg=1;MsTimer2::start();tm.print_float(u_ust,1,0b01010000,0,0,0);delay(300);}
  if(digitalRead(4)==LOW&&reg==1){reg=0;MsTimer2::stop();tm.print_float(u_ust,1,0b00111110,0,0,0);delay(300);EEPROM.update(0,round(u_ust*10));}
 
 
  if(reg==0){
  while(5.00/1023*analogRead(A0)*pop>u_ust+float(h*pop1)/1000){
    if(5.00/1023*analogRead(A0)*pop > u_ust*1.2){h=h-20;}
    h--;if(h<0){h=0;}analogWrite(9,h);}
 
  while(5.00/1023*analogRead(A0)*pop<u_ust+float(h*pop1)/1000){h++;if(h>511){h=511;}analogWrite(9,h);delayMicroseconds(100);
        if(h>450){h=0; tm.print_float(0,0, 0b01111001,0b01010000,0b01010000,0);
        analogWrite(9,h);MsTimer2::start();newPosition=0;delay(2000);reg=1;}
        }
  }
 
if(reg==1){analogWrite(9, 0);tm.print_float(u_ust,1, 0b01010000,0,0,0);
if (newPosition != oldPosition) {
      oldPosition = newPosition;
      u_ust=u_ust+float(newPosition)/10;
      if(u_ust<0){u_ust=0;}if(u_ust>25){u_ust=25;}
      newPosition=0;myEnc.write(0);}
}
 
}// loop
 
void to_Timer(){newPosition = myEnc.read()/4;}

Форум — http://forum.rcl-radio.ru/viewtopic.php?id=150

Тестирование

Установленное напряжение Без нагрузки Ток нагрузки  С нагрузкой

 

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

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

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

  • Как работает микрофон

    Как работает микрофон

    В этом выпуске: что такое микрофон, принцип действия микрофона, как работает микрофон.Подробнее...
  • Низковольтный двухканальный усилитель мощности звуковой частоты КР174УН31

    Низковольтный двухканальный усилитель мощности звуковой частоты КР174УН31

    Микросхема КР174УН31 предназначена для применения в качестве оконечного каскада усиления звукового сигнала, подаваемого с микросхемы непосредственно на громкоговорители (сопротивление более 8 Ом), в малогабаритной аппаратуре (радиоприемниках, плейерах, беспроводных телефонах). Параметры микросхемы представлены в табл.1. Микросхема выпускается в 8-выводном корпусе DIP (типа 2101.8-1). Чертеж дан на рис.1. Типовые схемы включения — …Подробнее...
  • Простой преобразователь однополярного напряжения в 2-х полярное

    В маломощных уст-вах для питания например ОУ необходимо двух полярное напряжение питания, но имеется только один источник напряжения, например батарея КРОНА, что бы решить эту проблему можно применить простой преобразователь показанный на рисунке. В схеме использован таймер NE555 который работает как генератор импульсов с частотой 100Гц, на выходе генератора стоят …Подробнее...
  • Входной делитель для частотомера

    Входной делитель для частотомера

    Данная приставка позволяет расширить диапазон частотомера до 100-300МГц при верхнем пределе частотомера в 10-30МГц, то есть приставка представляет собой ВЧ делитель частоты на 10. Входное сопротивление приставки 75 Ом, чувствительность по входу 0,5В. VD1 VD2 совместно с R1 представляют собой ограничитель входного напряжения. Далее следует ВЧ дифференциальный усилитель на D1.1, …Подробнее...
  • Термостабилизатор для аквариума

    Несмотря на простоту предложенная схема обеспечивает высокую точность поддержания температуры и экономичность, при выключенном нагревателе уст-во потребляет не более чем 1,5Вт. Датчиком температуры является терморезистор RK1 с отрицательным ТКС. При снижении температуры воды на выводе 6 DA1 появиться напряжение низкого уровня относительно минуса питания (катод VS1). В цепи базы VT1 …Подробнее...