К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

DC-DC преобразователь с 12 на 2,5 вольт

CK
0 - 31.07.2014 - 22:44
И так, есть пара фонарей с лампами ЛФПФ 2.5-10+6
Там две нити 10Вт и 6Вт, питающиеся напряжением 2,5В.
Вот ссыль, кто-то продаёт такие же лампы:
http://lvov.lv.slando.ua/obyavlenie/...6-ID9ym8b.html
.
Задача, заменить штатные (щелочные кажись) аккумуляторы на 12-ти вольтовые от ИБП.
Требуется достаточно мощный преобразователь 12-2,5 вольт.
Но необходимо выполнить два условия.
1. На дать аккумулятору разрядится ниже 9 вольт, чтоб не убивать его просто так.
2. Всётаки иметь режим полного высасывания аккумулятора, например в экстремальной ситуации.
.
Схем в интернете полно, интересуют советы тех кто реально пробовал что-то подобное.



HAM
Модератор
1 - 01.08.2014 - 12:46
масса готовых шим контроллеров продается
Погуглите.
CK
2 - 01.08.2014 - 16:02
(1) HAM
...спасибо, я гуглил.
Выбора полно. Просто думал может кто-то проверенную лично схему подскажет.
.
Как я написал выше, надо ещё придумать защиту от переразряда аккумулятора.
Шиму то всё равно что на входе.
Гость
3 - 01.08.2014 - 18:21
А не хотите вместо лампочек светодиоды впихнуть?
Гость
4 - 01.08.2014 - 19:27
3-Batarelka > Вот я тоже не понимаю, зачем сейчас связываться с лампами накаливания. Светодиоды всяко удобнее.
CK
5 - 01.08.2014 - 19:47
...ну извращенец я, не люблю светодиодное освещение.
Тут даже жаба ни при чём, мне эти фонари с их лампами выкинут не жалко.
Просто хочется на интерес восстановить и пустить в дело.
Фонари новые, в обоих стояли ни разу не пользованные щелочники.
CK
6 - 01.08.2014 - 19:52
...в походах пользую по понятным причинам светодиодные фонари.
Один налобник для ближнего света, с нормальным не синюшным светом.
Второй тактический с мощным светом и линзой, который очень помогает пробираться по лесу ночью, когда надо просмотреть расстояние впереди себя за сотни метров вперёд.
Оба не дешёвые.
Гость
7 - 02.08.2014 - 15:07
Цитата:
Сообщение от CK Посмотреть сообщение
... Фонари новые, в обоих стояли ни разу не пользованные щелочники.
Тогда уж и батареи родные стоит раскачать. Они хорошо работают. Если покопаться, может и не выбросил пакетики с заправкой, впрочем, это и так не проблема.
CK
8 - 02.08.2014 - 17:47
(7) drdrdr
...да они так и валяются новёхонькие.
Сухие и кажись в какойто консервационной смазке.
Не хочу даже связываться с этими аккумами.
Могу придарить кому нить, если надо.
Гость
9 - 02.08.2014 - 21:56
можно как то так сделать, схема в принципе проверенная, но не на 2,5V

хотя на мк было бы функциональнее, но программу лень писать.
Гость
10 - 02.08.2014 - 22:01
я тоже считаю что щелочные аккумуляторы будут лучше, но при одном условии - наличии поэлементного автоматического зарядного с предварительным разрядом банок.
Гость
11 - 02.08.2014 - 22:51

исправлена случайная ошибка в схеме
CK
12 - 03.08.2014 - 13:42
(11) 8pin
...спасибо за комментарий и схему.
Буду думать.
Гость
13 - 03.08.2014 - 15:13
для ламп возможно удобнее будет использовать просто шим, без дросселя и конденсаторов на выходе.
Гость
14 - 03.08.2014 - 15:25

может быть так, но это не проверено. или взять 555-й таймер, ему и драйвер не требуется чтобы управлять транзистором.
CK
15 - 03.08.2014 - 17:59
(14) 8pin
...по схеме в (11) пятая нога торчит в делителе выходного напряжения.
Я так понимаю это цепь стабилизации выходного напряжения.
.
Что тогда делает стабилитрон TL431 мне не понятно.
Он стоит по входному питанию и подключён к третьей ноге.
Хотя в схеме (14) он подключён тоже к пятой.
.
И почему исчез дроссель который стоял в схеме (9)?
CK
16 - 03.08.2014 - 18:02
(14) 8pin
...или взять 555-й таймер, ему и драйвер не требуется чтобы управлять транзистором...
.
...попробую сначала с MC34063 поиграться и если не понравится, опробую идею с 555-ым.
:-)
CK
17 - 03.08.2014 - 18:07
(13) 8pin
...для ламп возможно удобнее будет использовать просто шим, без дросселя и конденсаторов на выходе...
.
...я верно понимаю, что дроссель и кондёры на выходе лучше не убирать в схеме с MC34063?
Гость
18 - 03.08.2014 - 19:19
0) 10Вт и 6Вт, питающиеся напряжением 2,5В. - ток, соответственно, 4а + 2,25а.Какой MC34063? Только с мощным транзистором.
Гость
19 - 03.08.2014 - 19:24
в схеме (11) 431-й выключает преобразователь если напряжение питания снижается до 10,8V
cхема из (14) не стабилизирует напряжение на выходе, а только ограничивает ток, для упрощения конструкции (но можно и оставить дроссель). 431 стабилизатор также выключает преобразователь когда напряжение на его управляющем входе снижается, он закрывается и выключает 34063 путём подачи повышенного напряжения на вход компаратора напряжений.
должно быть проще всего получится с 555 таймером - обычный шим-регулятор яркости без всяких дросселей.
для лампы накаливания вероятно форма тока и напряжения не столь важна, главное ограничить мощность а конденсаторы и дроссель увеличат габариты конструкции так что с ними может и лучше, но без них удобнее, даже с учётом того что ключевой транзистор придётся ставить с запасом по току.
Гость
20 - 03.08.2014 - 19:25
в схеме (9) верхний дроссель затесался по ошибке, из "рыбы" повышающего преобразователя.
CK
21 - 03.08.2014 - 20:07
(18) saurus
...Какой MC34063? Только с мощным транзистором...
.
...дак пока и склоняюсь к схеме (11) в которой он этот транзистор и присутствует.
Понятное дело, что голую микросхему нельзя пользовать.
CK
22 - 03.08.2014 - 20:15
(19) 8pin
...в схеме (11) 431-й выключает преобразователь если напряжение питания снижается до 10,8V...
.
...это то что мне и нужно.
Но требуется второй (экстримальный) режим, при котором аккум будет высасываться полностью.
Каким нить переключателем менять номиналы делителя в цепи TL431 или есть другой способ?
CK
23 - 03.08.2014 - 20:21
8pin
... да, кстати, в Вашей схеме имеется транизстор структуры P-FET.
Можете подсказать какой менно подойдёт для моей задачи?
Гость
24 - 03.08.2014 - 20:53
поскольку явно лучше если яркость свечения была бы неизменной можно остановиться на схеме (11). P-канальный транзистор любой на напряжение от 20V и ток ампер на 10. И чтобы пороговое напряжение было не слишком малым, а то придётся немного усложнять схему управления (вводить отрицательное смещение или полевой транзистор на закрытие).
можно попробовать AO4411 (30V,8A,0.003R) - у него gate theshold min -1,2V

чтобы преобразователь работал и ниже порога отключения нужно так или иначе исключить влияние tl431 - например замкнув управляющий электрод на плюс кнопкой с фиксацией.
CK
25 - 03.08.2014 - 22:01
(24) 8pin
...спасибо, принято.
:-)
CK
26 - 02.09.2014 - 17:16
...и так докладываю.
Накидал на макетке схему из поста (11).
В результате получилось вот что.
Ток потребления на входе 12V - 2A
Ток потребления лампы на выходе 2,5V - 3,2A
Сильно греющийся P-канальный мосфет 2SJ308 (другого не нашлось).
.
Ну с мосфетом понятно, сопротивление в открытом состоянии ~ 0.4 Ом.
Великовато, потому может и греется.
Немного улучшило результат параллельное подключение второго такого-же мосфета.
.
С лампой мне не понятно.
По паспорту написано, что мощность 10Вт, потому ток потребления должен быть 4A при 2,5V.
А он до 3,2 еле дотягивает.
Думал тестер врёт из-за ВЧ пульсаций, проверил осцилом - показывает 2,52V и размах пульсаций 0,7V под нагрузкой.
Всё равное не понятно, почему замеренный ток не 4А как должно быть?!
.
Измерения показывают, что мощность потребления всего устройства 12V x 2A = 24W
Полезная мощность нагрузки 2,5V x 3,2A = 8W
Куда девается 16W мощности, в тепло что-ли?
Или я что-то не так считаю?
Гость
27 - 04.09.2014 - 22:55
ватт 10 на ключе, пара ватт на токоизмерительном резисторе, один ватт на диоде, сколько то на дросселе - сходится. но всё же это лучше чем линейный стабилизатор. а хотите сэкономить энергию используйте просто шим, без измерения тока, дросселя и диода. удобно сделать на мк - и подстройку длительности импульсов в зависимости от напряжения аккумулятора, и автооключение при разряде и зарядное заодно и прочая
Гость
28 - 05.09.2014 - 00:54
но вообще преобразователь конечно должен работать намного лучше. вот например тот что на картинке - также из MC34063 + внешний р-канальный транзистор, 32>6...24V 1,5A (регулятор для вентилятора) и не греется почти. в качестве датчика тока запаян чип-резистор нулевого сопротивления.

возможно у вас дроссель не той системы или напутано в драйвере.
CK
29 - 05.09.2014 - 09:11
(28) 8pin
...возможно у вас дроссель не той системы или напутано в драйвере...
.
...скорее всего я много хочу.
Надо будет ещё попробовать схему с использованием N-канального транзистора и драйвера к нему IR2117.
Вот как здесь: http://www.radiohlam.ru/pitanie/preobr_down_pol_n.htm
Тем более что с дохлых материнок я N-канальных мосфетов наковырял мешок, пока искал P-канальный на пробу.
:-)
Ну а там уже можно и о ШИМе поразмышлять.
Спасибо за участие.
Гость
30 - 05.09.2014 - 09:33
мосфеты это хорошо, но на старых системных платах как раз используются отличные многофазные понижающие преобразователи питания процессора которые можно выпилить ножовкой и приспособить к делу.
Гость
31 - 05.09.2014 - 10:17
так могла бы выглядеть схема с мк
CK
32 - 05.09.2014 - 10:41
(31) 8pin
...да уж, проще некуда.
При условии что с МК дружишь.
:-)
Гость
33 - 05.09.2014 - 13:29
набросок программы для схемы с мк:
Код:
/*****************************************************
CVAVR V2.05
Chip type               : ATtiny13A
AVR Core Clock frequency: 9,600000 MHz
*****************************************************/

#include <tiny13a.h>


#define Rb_upr 51000 //Ohms
#define Rb_lwr 3600   //Ohms
#define Ub_max_adc ((110*(Rb_upr+Rb_lwr))/Rb_lwr) //=U_max*100, 16,68V*100
#define ADC_itn 8
#define ureg 25


unsigned char tmr0,tmr1,ADC1;
unsigned int tmr2;

enum {start, normal, lobat, cutoff** dev_state=start;


void t0_cfg()
**
 TCCR0A=0;
 TCCR0A|=1<<COM0A1|1<<WGM01|1<<WGM00;  //fast pwm, set at top
 TCCR0B|=1<<CS01|1<<CS00; // /64 586Hz pwm
 OCR0A=1; 
 TIMSK0|=1<<OCIE0A;
**
void ports_cfg()
**
 PORTB=0b11100000;
 DDRB =0b11111011;
**
void adc_cfg()
**
 ADMUX  |=1<<REFS0|1<<ADLAR|1;
 ADCSRA |=1<<ADEN|1<<ADSC|7; 
**
void adc_scan()
**
 static unsigned char ADC1_tmp [ADC_itn]; 
 unsigned int dtmp=0;
 unsigned char i = 0;


if(!ADCSRA.ADSC)
** 
  for (i=0; i<(ADC_itn-1); i++ ) {ADC1_tmp [i] = ADC1_tmp [i+1];**
  ADC1_tmp [(ADC_itn-1)] = ADCH;
  for (i=0; i<(ADC_itn); i++ ) ** dtmp += ADC1_tmp [i];**
  ADC1 = dtmp/ADC_itn; 
  ADCSRA |= 1<<ADSC;
**
**
unsigned char bat_detect()
**
 unsigned char tmp;  
 tmp=((unsigned long)ADC1*Ub_max_adc/(0xff*10));
   
 return tmp;
**

interrupt [TIM0_COMPA] void timer0_compa_isr(void)
**
 
    if(tmr0)tmr0--;
    if(tmr1)tmr1--;
    if(tmr2)tmr2--; 
    
    #asm("wdr")
   
**            

void main(void)
**
ports_cfg();
adc_cfg();
t0_cfg();


// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
// Watchdog Timer Prescaler: OSC/2k
#pragma optsize-
WDTCR=0x18;
WDTCR=0x08;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

#asm("sei")

while (1)
      **  
     // static bit trg0, trg1, trg2, trg3;
      unsigned char btmp;
           
       switch(dev_state)
       **
        case start:
        ** 
                
        tmr0=100;
        while(tmr0){adc_scan();**
        btmp=bat_detect();
        if(btmp>110)
          **
           while (OCR0A<(ureg*255/btmp)){if(!tmr1){OCR0A++; tmr1=1;****
          
          **
           else if(btmp>100){dev_state=lobat;**
            else dev_state=cutoff;
        **
        
        break;
        
        case normal:
        **
        adc_scan();
        btmp=bat_detect();
        if(btmp>110)
        **
        dev_state=normal;
            if((OCR0A<(ureg*255/btmp))&&(OCR0A<(255*30/100)))OCR0A++;
            else if(OCR0A>(ureg*255/btmp))OCR0A--;
        **
        else if(btmp>100){dev_state=lobat;**
        else dev_state=cutoff;    
        ** 
        break;
        
        case lobat:
        **
         tmr2=600;
         OCR0A=ureg*127/btmp;
         while(tmr2);
         tmr2=1200;
         OCR0A=ureg*255/btmp;
         while(tmr2); 
         
        adc_scan();
        btmp=bat_detect();
        if(btmp>110){dev_state=normal;**
        else if(btmp<90) dev_state=cutoff;  
        
        
        ** 
        break;
        
        case cutoff:
        **
         OCR0A=0;
         MCUCR|=1<<SE;
         #asm("sleep")
         adc_scan();
         btmp=bat_detect();
         if(btmp>110){dev_state=normal;**
         else if(btmp>100) dev_state=lobat;
         
        ** 
        break;    
       **
       

      **
**
CK
34 - 05.09.2014 - 17:44
(33) 8pin
...ээээ...(смотрит как на новые ворота) спасибо конечно.
А каков алгоритм работы этой программы.
Как МК делает понижение и стабилизацию?
В двух словах.
Мне правда интересно.
Гость
35 - 05.09.2014 - 18:48
мк измеряет напряжение батареи и обратно пропорционально устанавливает заполнение шим, то есть если напряжение батареи больше, то заполнение меньше и наоборот, в диапазоне до 30%. лампа накаливания достаточно инерционна чтобы модуляция с частотой 600 Гц была не заметна, и потери при переключении транзистора так меньше чем на десятках килогерц в схеме с MC34063.
При включении мк измеряет напряжение батареи и если оно в норме, то за полсекунды уменьшает скважность до рассчитанного максимума заполнения.
В рабочем режиме отслеживается напряжение на батарее и корректируется скважность. Если батарея разряжается ниже 11V то контроллер сигнализирует об этом снижением яркости лампы на одну секунду через две. Когда напряжение батареи становится меньше 9V контроллер гасит лампу и ждёт когда напряжение придёт в норму.
Если есть идеи насчёт того как это улучшить то мне тоже интересно.
Гость
36 - 05.09.2014 - 21:07
слегка исправленный код, проверен в Proteus.
Код:
/*****************************************************
/*****************************************************
CVAVR V2.05
Chip type               : ATtiny13A
AVR Core Clock frequency: 9,600000 MHz
*****************************************************/

#include <tiny13a.h>


#define Rb_upr 51000 //Ohms
#define Rb_lwr 3600   //Ohms
#define Ub_max_adc ((110*(Rb_upr+Rb_lwr))/Rb_lwr) //=U_max*100, 16,68V*100
#define ADC_itn 8
#define ureg 38


unsigned char tmr0,tmr1,ADC1;
unsigned int tmr2;

enum {start, normal, lobat, cutoff** dev_state=start;


void t0_cfg()
**
 TCCR0A=0;
 TCCR0A|=1<<COM0A1|1<<WGM01|1<<WGM00;  //fast pwm, set at top
 TCCR0B|=1<<CS01|1<<CS00; // /64 586Hz pwm
 OCR0A=1; 
 TIMSK0|=1<<OCIE0A;
**
void ports_cfg()
**
 PORTB=0b11100000;
 DDRB =0b11111011;
**
void adc_cfg()
**
 ADMUX  |=1<<REFS0|1<<ADLAR|1;
 ADCSRA |=1<<ADEN|1<<ADSC|7; 
**
void adc_scan()
**
 static unsigned char ADC1_tmp [ADC_itn]; 
 unsigned int dtmp=0;
 unsigned char i = 0;


if(!ADCSRA.ADSC)
** 
  for (i=0; i<(ADC_itn-1); i++ ) {ADC1_tmp [i] = ADC1_tmp [i+1];**
  ADC1_tmp [(ADC_itn-1)] = ADCH;
  for (i=0; i<(ADC_itn); i++ ) ** dtmp += ADC1_tmp [i];**
  ADC1 = dtmp/ADC_itn; 
  ADCSRA |= 1<<ADSC;
**
**

interrupt [TIM0_COMPA] void timer0_compa_isr(void)
**
    
    if(tmr0)tmr0--;
    if(tmr1)tmr1--;
    if(tmr2)tmr2--;
    
    
    #asm("wdr")
    
   
**            

void main(void)
**
ports_cfg();
adc_cfg();
t0_cfg();


// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

#pragma optsize-
WDTCR=0x38;
WDTCR=0x28;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

#asm("sei")


while (1)
      **  
          
       switch(dev_state)
       **
        case start:
        ** 
                
        tmr0=100;
        while(tmr0){adc_scan();**
        
        if(ADC1>170){while (OCR0A<(ureg*255/ADC1)){if(!tmr1){OCR0A++; tmr1=1;******
           else if(ADC1>150){dev_state=lobat;**
            else dev_state=cutoff;
        **
        
        break;
        
        case normal:
        **
        adc_scan();
        if(ADC1>170)
        **
            dev_state=normal;
            if((OCR0A<(ureg*255/ADC1)))OCR0A++;
            else if(OCR0A>(ureg*255/ADC1))OCR0A--;
        **
        else if(ADC1>150){dev_state=lobat;**
        else dev_state=cutoff;    
        ** 
        break;
        
        case lobat:
        **
         tmr2=600;
         OCR0A=ureg*127/ADC1;
         while(tmr2);
         tmr2=1200;
         OCR0A=ureg*255/ADC1;
         while(tmr2); 
         
        adc_scan();
        if(ADC1>170){dev_state=normal;**
        else if(ADC1<140) dev_state=cutoff; 
        
        
        ** 
        break;
        
        case cutoff:
        **
         TCCR0A&=~(1<<COM0A1);
         MCUCR|=1<<SE;
         #asm("sleep")
         adc_scan();
         if(ADC1>170){dev_state=normal;TCCR0A|=1<<COM0A1;**
         else if(ADC1>150){dev_state=lobat;TCCR0A|=1<<COM0A1;**
        ** 
        break;    
       **
       
      
      **
**
t13icl.zip на uafile.com.ua
Гость
37 - 06.09.2014 - 00:20
аналогичная схемка на 555 микросхеме.
CK
38 - 06.09.2014 - 15:31
(35) 8pin
...Если батарея разряжается ниже 11V то контроллер сигнализирует об этом снижением яркости лампы на одну секунду через две. Когда напряжение батареи становится меньше 9V контроллер гасит лампу и ждёт когда напряжение придёт в норму...
.
Подобный алгоритм используется в фонарях ФОС идущих в пожарно-спасательные подразделения.
Первым делом приняв их в эксплуатацию, из них выкидывают всю электронику и соединяют лампу напрямую.
И никаких проблем из-за этого нет.
Своевременная зарядка сразу после использования держит фонарь в тонусе.
А выкидывают электронику потому, что в самый ответственный момент, когда боец например в подвале в дыму, он начинает терять яркость или моргать.
Ему и так тяжело, а тут ещё и это.
CK
39 - 06.09.2014 - 15:36
(35) 8pin
...Если есть идеи насчёт того как это улучшить то мне тоже интересно...
.
На мой взгляд использование рабочей лампы как маяка разряда в экстремальной работе не приемлимо.
Уж лучше делать отдельный сигнальный канал с контроллера на копеечный светодиод.
Можно для интереса и красоты сделать двухцветный.
Зелёный норма, красный разряд.
Хотя уменьшение накала лампы при разряде аккумулятора можно оставить.
И в полной темноете не оставит человека и даст ему понять что пора заряжатся.


К списку вопросов






Copyright ©, Все права защищены