Реклама ⓘ
Главная » Питание
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Похожие статьи:


Реклама ⓘ

Регулируемый источник питания 1.2...14В, 5А

Регулируемый источник питания

Хотя у меня есть источник 13.8 10А для тестирования автомобильной электроники и источники 5 В и 3,3В для питания микроконтроллеров, мне понадобился ещё один БП.

При разработке блока питания с нуля, есть ряд критериев, таких как выходное напряжение, максимальный выходной ток. Но есть и другие факторы. Например, гальваническая развязка от сети. Это означает, что низкое напряжение берётся с сетевого трансформатора, что полностью исключает возможность попадания в низковольтную часть напряжения и сети. Блок питания от ПК не может этого обеспечить. На стадии проектирования, я размышлял над источником питания 0 - 12 В с максимальным током 5А. При этом, самым главным было безопасность конструкции и её высокое качество. К сожалению, детали хорошего качества довольно дорогие, поэтому некоторые детали были взяты из других плат. Сегодня для регулирования напряжения нецелесообразно  использовать отдельные транзисторы, когда есть специально разработанные микросхемы. Моим требованиям отвечает микросхема LM338. Хотя она не может выдать напряжение 0В, меня устраивает и минимальное напряжение 1,2В. В документации сказано, что микросхеме необходимо 3В разницы между входными и выходными напряжением. То есть трансформатора с выходным напряжение 15В нам хватит. При работе с относительно большим током, LM338 рассеивает большое количество энергии, поэтому ей требуется радиатор.

Выпрямление тока

Существуют три различных способа выпрямления тока.

Однополупериодный выпрямитель

Двухполупериодный выпрямитель

В дешевых китайских зарядках широко используется выпрямление с помощью одного или двух диодов. Для дешевых зарядных устройств это приемлемо, но для хорошего БП  нужно использовать полноценный диодный мост. Мой трансформатор выдает лишь 12,5 вольт без нагрузки и имеет одну обмотку. Напряжение после мостового выпрямителя и фильтрующих конденсаторов поднимается. В данном случае до 15,2В (пиковое напряжение без нагрузки), чего хватит LM338 для выдачи 12В на выходе.

Нестабильность выходного напряжения - разность напряжений  на  вторичной обмотке трансформатора, когда она находится под нагрузкой и без нагрузки. Это выражается в процентах по отношению к полным напряжением и нагрузкой, в основном, чем меньше значение, тем меньше разница напряжений. Строго говоря, в данных трансформатора (или поставщика) должно быть указано выходное напряжение, когда трансформатор находится при полной номинальной нагрузке. По формуле приведённой ниже, можно рассчитать падение напряжения на трансформаторе под его номинальной нагрузкой.

К примеру, трансформатор заявленный как 12В, 50ВА может обеспечить 12В, 4А (50ВА при 12В = 50/12 = 4.1 А). Мой трансформатор выдает без нагрузки напряжение 12.5В, разница с нагрузкой и без составит:
Расчет

Позже тесты показали, что выходное напряжение снизилось до 11,4В при нагрузке 2А, а это около 14%. Поэтому был взят другой трансформатор с выходным напряжением 15В 3.3А, которого точно хватит.

Схема источника питания

Схема источника питания

Трансформатор подключен к сети через предохранитель и выключатель. Корпус и трансформатор заземлены. Все места с большим напряжением должны быть заизолированы.
Сглаживающий конденсатор гасит пульсации напряжения, которые можно рассчитать по формуле:
 10 х (ток нагрузки в мА)
   C (мкФ)

При нагрузке 3А пульсация составит 3 вольта, - на первый взгляд очень много. Тем не менее, LM338 и гасящие конденсаторы успешно погасят их.

Индикация тока и напряжения

Измерение напряжения
Теперь необходимо разобраться с выводом информации о напряжении и токе потребляемой нагрузкой. Для этой цели я использовал два аналоговых входа микроконтроллера ATmega328, который выводит данные на дисплей 2*16 символов.

Резисторы R1, R2a и R2b образуют делитель напряжения на выходе блока питания. При номиналах, указанных на схеме, выходное напряжение с делителя будет:

Расчет

при 20 Вольтах:

Расчет

Измерение тока
Аналоговый вход микроконтроллера преобразует входящее напряжение 0…5В в цифровое значение в диапазоне от 0 до 1023. Таким образом, цифровое значение пропорционально напряжению с делителя (максимум  20В).  В программе микроконтроллера, могут быть сделаны небольшие корректировки значений резисторов.

Наиболее распространенный метод измерения тока - это установка низкоомного мощного резистора последовательно с выходом и измерения падения напряжения на нем.  К примеру на при использовании сопротивления 0.01 Ом и токе 4А, согласно закону Ома:
V = R*I=0.01*4=40мВ.
Входной диапазон АЦП микроконтроллера составляет 0…5 Вольт, и падение напряжения в 40мВ даст очень малую точность измерения тока. Поэтому необходимо использовать усиление сигнала х10 или х100.
Увеличение значения резистора приведет к увеличению напряжения падения, но увеличит его рассеиваемую мощность и снизит максимальное выходное напряжение.

ACS712 - 5A датчик тока
В качестве альтернативного подхода, можно использовать ACS712 – измеритель тока.  5А версия микросхемы обеспечивает 185мВ/А, что при значении напряжения, равному 4А, дает нам 740 мВ, чего более чем достаточно для удовлетворения наших требований. Точность измерения составит 0.05А.

Дополнительные выходные напряжения 5В и 12В

Микроконтроллеру ATmega328 необходимо в стабильное  питание 5В, которое берётся из микросхемы 7805. Микроконтроллер потребляет небольшой ток, поэтому на переднюю панель выведен разъем дополнительный разъем 5В.

Поскольку напряжение с мостового выпрямителя составляет около 20 вольт без нагрузки, это очень много для 7805. Напряжение с мостового выпрямителя сначала подается на 7812 – 12В 1А стабилизатор, а потом на 7805. Напряжение 12В также выведено на переднюю панель.
Оба эти стабилизатора поставлены на радиаторы маленького размера.

ЖК-дисплей и USB

Я использовал 2* 16 символов дисплей в комплекте с платой последовательного интерфейса. Подключение без дополнительной платы также возможно - есть много незадействованных выходов ATmega328, но это добавит лишние провода между контроллером и дисплеем.

BV104 представляет собой USB-to-Serial конвертер для программирования ATmega328. Он не запаивается на плату навсегда, а подключается только для программирования и отладки.
Обратите внимание на подключение контакта "DTR" к BV104. Он используется для автоматического сброса ATmega328 во время программирования.

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

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

Расположение элементов

Фото платы

Дополнительно использовались следующие компоненты:
Корпус 235 x 150 x 80mm
Радиаторы 60 x 165.5 x 35mm
10,000мкФ 63В конденсатор
4к7 5-оборотный потенциометр
Трансформатор 7.5 + 7.5В 50ВА
Терминальные зажимы 4 мм

Передняя и задняя панели

Передняя панель

Передняя панель

Задняя панель

Задняя панель

Изготовление панели

Подключение

Внутренности источника питания

LM338 на радиаторе
LM338 установлена на радиатор через слюду.

Светодиод
Светодиод подключен к выводным терминалам через токоограничительный резистор.
При подключении к 5В необходим резистор 330 Ом, при 12В - 1.2 кОм.

Установка LCD
Опоры для LCD-экранчика (высота 6мм).

Итоговый вид источника питания

Программирование ATmega328

Для программирования используется ByVac BV104. После подключения устройства, Windows 7 сама скачает и установит драйвера. В противном случае, вам нужно загрузить драйвер с официального сайта самостоятельно. После установки, интерфейс настраивает себя как «Виртуальный COM-порт" .

Прошивается микроконтроллер через среду Arduino IDE. В настройках программы необходимо выбрать виртуальный СОМ-порт для прошивки.

Arduino IDE

Исходный код программы

#include 

#define rxPin 0
#define txPin 8

 SoftwareSerial lcd(rxPin, txPin);    
 int analogInputVolts = A5;
 int analogInputAmps = A4;
 float vout = 0.0;
 float vin = 0.0;
 float amps = 0.0;
 
 float R1 = 9970.0;        // resistance of R1 
 float R2 = 3330.0;        // resistance of R2
 float V5 = 5.00;          // Arduino supply

 int readVoltsADC = 0;
 int readAmpsADC = 0;

void setup(){
   pinMode(analogInputVolts, INPUT);
   pinMode(analogInputAmps, INPUT);
   delay(1000);
    
   lcd.begin(9600);                     // 9600, 14,400, 19,200 or 38,400 available on the ByVac LCD.
                                         // Arduino recommend no higher than 9600.
   lcd.print("\r");                      // Send 'CR' for the LCD to establish the speed.
   delay(500);
  
   lcd.print("ac1\r");                   // Clear display. Terminate data with 'CR' (0x0d)
   lcd.print("acc\r");                   // Cursor Off
   delay(500);
   lcd.print("adVolts\r");
   lcd.print("acc0\r");
   lcd.print("adAmps\r");
}

float fmap(float x, float in_min, float in_max, float out_min, float out_max) {
  return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}

void loop() {
   readVoltsADC = analogRead(analogInputVolts);
   readVoltsADC = readVoltsADC + analogRead(analogInputVolts);
   readVoltsADC = readVoltsADC / 2;
   vout = (readVoltsADC * V5) / 1023.0;
   vin = vout / (R2/(R1+R2));  
   delay(100);
   
  
   readAmpsADC = analogRead(analogInputAmps);
   readAmpsADC = readAmpsADC + analogRead(analogInputAmps);
   readAmpsADC = readAmpsADC + analogRead(analogInputAmps);
   readAmpsADC = readAmpsADC / 3 ;      // get average of 3 readings 

   amps = fabs(fmap(readAmpsADC, 512.0, 701.0, 0.0, 5.0));

   if (amps < 0) amps = 0.0;

   lcd.print("ac85\r");   
   delay(100);
   lcd.print("ad  ");
   if (vin < 10) lcd.print(" ");
   lcd.print(vin);
   lcd.print("  \r");
   
   lcd.print("acc5\r");   
   delay(100);
   lcd.print("ad   ");
   
   lcd.print(amps);
   lcd.print("  \r");  

   delay(400); 
}

В следующих строках хранятся значения R1 и R2:
float R1 = 9970.0; // resistance of R1
float R2 = 3330.0; // resistance of R2
float V5 = 5.00; // Arduino supply

Используя измерительный прибор, измерьте реальное напряжение на выходе и сравните показания с ЖК-дисплеем источника питания. Тонкая настройка значений R1 и R2 в программе (и повторной загрузки программы ATmega328) позволит вам получить более точное значение на дисплее.

Нижеследующая строка программы, позволяет при необходимости откалибровать показания тока на ЖК-дисплее:
amps = fabs(fmap(readAmpsADC, 512.0, 701.0, 0.0, 5.0));

Здесь значения 512,0 и 701,0 соответствуют тока 0А и 5А. Приведенные значения должны быть достаточно точными. Отметим, что хотя цифровые значения, прочитанные с аналогового входа ATmega328 это целые числа в диапазоне от 0 до 1023, они отображаются в виде чисел с плавающей точкой. Значения получены следующим образом:

Выход из ACS712 = 2,5 + (0,185 вольт на ампер)

При 0 А, выход = 2,5 вольт
значение с АЦП = 1023/(5/2.5) = 512 (целочисленное значение)

При нагрузке 5А, на выходе ACS712 = (0,185 х 5) + 2,5 = 3.425 вольт

значение с АЦП = 1023/5  = 204.6 единиц на 1 Вольт

При 3.425 Вольтах (т.е. при токе в 5 А) 204.6 x 3.425 = 700.755
округляя получаем значение 701.0

На фото ниже автомобильная лампа используются в качестве нагрузки для калибровки питания

Arduino IDE

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
МК AVR 8-бит
ATmega328
1 Поиск в магазине ОтронВ блокнот
Модуль USB-to-SerialBV1041 Поиск в магазине ОтронВ блокнот
МикросхемаACS7121 МодульПоиск в магазине ОтронВ блокнот
Линейный регулятор
LM338
1 Поиск в магазине ОтронВ блокнот
Линейный регулятор
LM7805
1 Поиск в магазине ОтронВ блокнот
Линейный регулятор
LM7812
1 Поиск в магазине ОтронВ блокнот
Выпрямительный диод
1N4002
2 Поиск в магазине ОтронВ блокнот
Диодный мост5 А1 Поиск в магазине ОтронВ блокнот
Электролитический конденсатор10000 мкФ 63В1 Поиск в магазине ОтронВ блокнот
Электролитический конденсатор3300 мкФ 35В1 Поиск в магазине ОтронВ блокнот
Электролитический конденсатор100 мкФ2 Поиск в магазине ОтронВ блокнот
Электролитический конденсатор10 мкФ1 Поиск в магазине ОтронВ блокнот
Конденсатор100 нФ6 Поиск в магазине ОтронВ блокнот
Конденсатор10 нФ1 Поиск в магазине ОтронВ блокнот
Конденсатор22 пФ2 Поиск в магазине ОтронВ блокнот
R1, ? Резистор
10 кОм
2 Поиск в магазине ОтронВ блокнот
R2a Резистор
3 кОм
1 Поиск в магазине ОтронВ блокнот
R2b Резистор
330 Ом
1 Поиск в магазине ОтронВ блокнот
Резистор
270 Ом
1 Поиск в магазине ОтронВ блокнот
ADJ Переменный резистор5 кОм1 Поиск в магазине ОтронВ блокнот
Кварц16 МГц1 Поиск в магазине ОтронВ блокнот
LCD-дисплей1 HD44780?Поиск в магазине ОтронВ блокнот
T1 Трансформатор220 В - 2x7.5 В / 50 ВА1 Поиск в магазине ОтронВ блокнот
SW1 Кнопка с фиксацией220 В1 2 контактные группыПоиск в магазине ОтронВ блокнот
RESET Кнопказамыкающая1 Поиск в магазине ОтронВ блокнот
12V, 5V, ON Тумблер3 Поиск в магазине ОтронВ блокнот
Плавкий предохранитель240В 1А1 Поиск в магазине ОтронВ блокнот
Плавкий предохранитель20В 5А1 Поиск в магазине ОтронВ блокнот
15VAC, 12V, 5 V, ADJ Клеммы2 контакта4 Поиск в магазине ОтронВ блокнот
LCD Разъём3 контакта1 Поиск в магазине ОтронВ блокнот
TP1 Цанговый разьёмSCSL-21 Поиск в магазине ОтронВ блокнот
Радиатор3 Для стабилизаторовПоиск в магазине ОтронВ блокнот
Терминальные зажимы8 Поиск в магазине ОтронВ блокнот
5V, 12V, Variable Светодиод3 Поиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Оригинал статьи

Теги:

Шпакунов А. Опубликована: 2012 г. 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (12) | Я собрал (0) | Подписаться

0
Вячеслав #
Я поражаюсь тому как у них все эстетично получается, один только корпус уже вызывает уважение.
Ответить
0
Батоныч #
Только у нас это настоящая редкость (элегантность внутри, элегантность снаружи)
Ответить
0
pryanic #
Было бы хорошо, если то, что находится внутри, соответствовало фасаду.
Ответить
0
hd44780 #
Красиво, но некошерно питать контроллер от силовой обмотки. А если КЗ по 12в или 5в каналу?

Да, LM-ки имеют защиту, но проц вырубится.

Его надо питать от отдельной обмотки либо 2-й транс ставить.
Ответить
0
klop #
В статье не написано какой переменный резистор вы используете для регулировки напряжения? На фотографии видно что какой-то большой. Просто у меня они все перегорают.
Ответить
0
Алексей #
Не совсем понятно как дисплей 16x2 подключается?
Ответить
0
Сергей #
Судя по фотке, там стоит преобразователь из USART в HD44780-совместимый вывод данных на дисплей, думаю можно самому спаять на какой-нибудь Тини2313.
Ответить
0
Алексей #
А как адаптировать под mega 8?
Ответить
0
valeon #
Можно, правда и схему придется немного переделать
Ответить
0
WebStrannik #
А не проще ли заюзать полевик в режиме шим? И нагрева не будет практически!
Ответить
0
Колян Электрик #
На какой еще конвертер можно заменить BV104, так как не смог найти подходящий на Али?
Ответить
0
romiztj #
Привет всем не знаю где задать вопрос по этому пищу здесь , у меня есть блок питания от пк ,я вырезал все провода и оставил три плюс один минус (12v:5v:3,3v и минус) я подклчаю к бп
Моторчик стеклоподъемника у него большая нагрузка(до 10А) вот решил сделать что то вроде переключатель напряжения чтобы кажди раз не снимать клеми от напряжения 12в и подключить к 5 вольт ,что по советуюте ?
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическое сопротивление?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Регулятор мощности 2 кВт
Регулятор мощности 2 кВт
Набор для сборки - LED лампа Бокс для хранения компонентов
вверх