Лабораторный БП из компьютерного ATX

Автор: | 10.02.2016

В наше время наверное только ленивый, не переделывал компьютерный AT или ATX блок питания в лабораторный или зарядное устройство для автомобильной АКБ. И я решил не оставаться в стороне. Для переделки взял старый ATX 350 Вт блок питания с ШИМ контроллером TL494 или его аналогом KA7500B, блоки с таким контроллером легче всего переделывать. Первым делом необходимо убрать лишние компоненты с платы, дроссель групповой стабилизации, конденсаторы, некоторые резисторы, не нужные перемычки, цепь power ON с ней же и компаратор LM393. Стоит заметить что все схемы на TL494 похожи, иметь могут только не большие различия, поэтому для понимания как переделывать БП можно взять типовую схему.

 

Вообщем вот типовая схема ATX блока питания на TL494.

 

 Вот схема с удаленными лишними элементами.

bpatx

На первой схеме я выделил участок, этот участок отвечает за защиту от перегрузок по мощности у себя я его счел нужным удалить о чем немного сожалею. Советую этот участок не удалять. В выходной цепи вместо диодной сборки +12 В необходимо поставить диодную сборку Шоттки с максимальным импульсным обратным напряжением 100 В и током 15 А примерно такую: VS-16CTQ100PBF. Электролитический конденсатор после дросселя должен иметь емкость 1000-2200 мкФ и напряжение минимум 25 В. Нагрузочный резистор должен иметь сопротивление 100 Ом и мощность около 2 Вт. Дроссель

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

Схему управления взял из этой статьи: Лабораторный БП из AT. В этой статье очень подробно описывается переделка. 

 

На операционном усилителе DA1.1 собран дифференциальный усилитель в цепи измерения напряжения. Коэффициент усиления подобран таким образом, что при изменении выходного напряжения блока питания от 0 до 20 В (с учётом падения напряжения на шунте R7), на его выходе сигнал меняется в пределах 0…5 В. Коэффициент усиления зависит от соотношения сопротивлений резисторов R2/R1=R4/R3.

На операционном усилителе DA1.2 собран усилитель в цепи измерения тока. Он усиливает величину падения напряжения на шунте R7. Коэффициент усиления подобран таким образом, что при изменении тока нагрузки блока питания от 0 до 10 А, на его выходе сигнал меняется в пределах 0…5 В. Коэффициент усиления зависит от соотношения сопротивлений резисторов R6/R5.

Сигналы с обоих усилителей (напряжения и тока) подаются на входы компараторов ошибки ШИМ-контроллера (выводы 1 и 16 DA2). Для установки необходимых значений напряжения и тока, инвертирующие входы этих компараторов (выводы 2 и 15 DA2) подключены к регулируемым делителям опорного напряжения (переменные резисторы R8, R10). Напряжение +5 В для этих делителей снимается с внутреннего источника опорного напряжения ШИМ-контроллера (вывод 14 DA2).

Резисторы R9, R11 ограничивают нижний порог регулировки. Конденсаторы C2, C3 устраняют возможный «шум» при повороте движка переменного резистора. Резисторы R14, R15 также установлены на случай «обрыва» движка переменного резистора.

На операционном усилителе DA1.4 собран компаратор для индикации перехода блока питания в режим стабилизации тока (LED1).

 

Моя схема

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

Сборка

Шунт сделал из текстолита и куска проволоки из черного метала, сопротивление получилось примерно 0,001 Ом, чего вполне достаточно. Крепится к корпусу на стойки для печатных плат.

 

S1330014

Разместил все в готовом корпусе:

Готовый корпус заводского изготовления (G768 140x190x80мм).

korpus

 

korpus_1

 

 

 

 

 

 

 

Чертеж передней панели:

1

Плата от компьютерного блока питания, легко устанавливается в этот корпус.

 

S1330011

Сзади установлен вентилятор охлаждения, он продувает воздух через весь корпус, в верхней крышке насверлил отверстий по бокам для выхода воздуха. Обороты заданы DC-DC преобразователем, питание взято с дежурки 20V.

S1330013

Плата индикации:

Вид сверху:

board

Вид снизу:

board_topo

Плата создана в программе Dip Trace Скачать

Плата управления:

Вид сверху:

verh

Вид снизу:

niz

Плата создана в программе Dip Trace Скачать

Код программы для Atmega8

Код создан в среде CodeVisionAVR. Особо ничего не придумывал, использовал математику с float. Архив с проектом, в нем же можно найти прошивку Скачать

#include <mega8.h>
#include <delay.h>
#include <alcd.h>
#include <stdio.h>


// Voltage Reference: AREF pin
#define ADC_VREF_TYPE ((0<<REFS1) | (1<<REFS0) | (0<<ADLAR))

// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | ADC_VREF_TYPE;
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=(1<<ADSC);
// Wait for the AD conversion to complete
while ((ADCSRA & (1<<ADIF))==0);
ADCSRA|=(1<<ADIF);
return ADCW;
}
unsigned char lcd_buff[16];
int data; 
float V, I, W;



void main(void)
{

// Port D initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
DDRD=(0<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);


// ADC initialization
// ADC Clock frequency: 125,000 kHz
// ADC Voltage Reference: AREF pin
ADMUX=ADC_VREF_TYPE;
ADCSRA=(1<<ADEN) | (0<<ADSC) | (0<<ADFR) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (1<<ADPS1) | (1<<ADPS0);
SFIOR=(0<<ACME);



// Alphanumeric LCD initialization
// Connections are specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTD Bit 0
// RD - PORTD Bit 1
// EN - PORTD Bit 2
// D4 - PORTD Bit 4
// D5 - PORTD Bit 5
// D6 - PORTD Bit 6
// D7 - PORTD Bit 7
// Characters/line: 8
lcd_init(16);



while (1)

{
     lcd_clear( );
      read_adc(1);
        V =0;
        data = ADCW; // Вычитываем значение 
        V = (float) (data*5.095*10.905)/1000; // Переводим в вольты 
       sprintf(lcd_buff,"U=%.2f", V);
        lcd_gotoxy(0,0); // Выставляем курсор
        lcd_puts( lcd_buff ); // Выводим значение
        
        
        read_adc(2);
        I =0;
        data = ADCW; // Вычитываем значение 
        if(data > 515){I = (float) (data-515)/20;}; // Переводим в вольты 
       sprintf(lcd_buff,"I=%.2f", I);
        lcd_gotoxy(9,0); // Выставляем курсор
        lcd_puts( lcd_buff ); // Выводим значение 
        
        W = V * I;
        sprintf(lcd_buff,"W=%.3f", W);
        lcd_gotoxy(0,1); // Выставляем курсор
        lcd_puts( lcd_buff ); // Выводим значение 
        
        
        delay_ms(400); // Задаем задержку в 400 миллисекунд 
}
}

 

Лабораторный БП из компьютерного ATX: 13 комментариев

  1. masterpaiki

    Спасибо за толковую инструкцию. А как с охлаждением получилось? Хватает маленького вентилятора и нескольких дырок по бокам корпуса?

  2. yriy Автор записи

    Вполне хватает, на полной мощности из них идет теплый воздух.

  3. gogazegoga

    Наконец-то и я зарегистрировался!
    Долго искал схему полноценной индикации для лабораторного БП. В интернете вариантов много, но все без индикации установленного тока стабилизации. Наткнулся на Вашу и загорелся!
    Идея в следующем: с вывода платы управления, который идет на 15 ногу TL494 сделать выход на плату индикации. Напряжение на нем меняется от 0 до 5 вольт в зависимости от установленного тока стабилизации. Подключить к МК и сделать так, чтобы при установке максимального тока стабилизации (5в) на дисплей выводилось фактическое значение тока. Я думаю, что Вы меня поняли.
    И еще вопрос — можно ли заменив шунт из «черного металла» на качественный манганиновый 0,01 Ом использовать его и как датчик тока для платы управления и для показаний текущего тока и исключить ACS712?
    Для меня для воплощения моей мечты в жизнь переделать прошивку (даже при наличии исходников) задача невыполнимая. Если окажете помощь — буду в восторге.

  4. yriy Автор записи

    ACS712 можно исключить из схемы и поставить обычный шунт что я планирую в ближайшем будущем сделать.

  5. gogazegoga

    Да, еще две непонятки по схеме
    1. Для чего в обвязке TL494 вместо электролита «мягкого старта» между 4 и 14 выводами установлен резистор 100kOm?
    2. Почему не используется вывод дежурки +5 вольт, а установлен стабилизатор 7805 на 12-20 вольтовый выход дежурки?

  6. yriy Автор записи

    Про такой параметр «Dead time» слышали?

  7. Игорь

    Слышал. Я обе статьи Голубева досконально изучил и не один блок переделал по его методике.

  8. Игорь

    Действительно, в схеме Вашего БП нет конденсатора.

  9. yriy Автор записи

    У вас как напряжение и ток выводятся?

  10. Игорь

    Думал, что уже и не ответите. В общем, попытался сделать сам.
    Получилось так (Видео 3 минуты) собрано «в соплях» https://www.youtube.com/watch?v=w6YSbtifqUw
    Окончательный вариант http://radikal.ru/users/gogaze#img=6159203141&rnd=3
    Теперь хочу, по мере дальнейшего изучения программирования, сделать меню
    1. Блок питания (все оставить так как сейчас есть)
    2. Зарядное — то же самое, только вместо мощности счетчик ампер часов.
    Спасибо за исходники программы!!! Пригодилось для изучения.

  11. mr.tiristor

    можно в лайоте печатки попросить?

  12. yriy Автор записи

    А почему в нем?

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