Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
inquisitor
15 / 6 / 16
Регистрация: 22.12.2015
Сообщений: 1,763
1

Где регулируется напряжение зарядки аккумулятора на atmega8?

28.11.2018, 19:57. Просмотров 186. Ответов 13
Метки нет (Все метки)

Описание взял с сайта
Где регулируется напряжение зарядки аккумулятора на atmega8?

Защиты от переполюсовки нет , при такой установке аккумулятор будет просто разряжаться через резисторы 10+3,3 Ом и диод в транзисторе. Для реализации защиты желательно добавлять реле.

Контроля температуры аккумуляторов нет ,так как ипользуеться малые токи как для разряда (около 300мА)
так и для заряда 100-400 мА. Аккумулятор даже тёплым не становится при тесте или заряде.

Мне нужно менять напряжение заряда.
Для свинцово -щелочных аккумуляторов (
sla=2.1v
LA6.12 v
vrla 4v 6v 12 v
agm vrla 2v 4v 6v 12v
gel vrla 2v 6v 12 v
opzv 2v
opzs 2v)

Для литиевых

LICOO2=3.6v
LIMNO4=3.7v
LINIMNCOO@=3.6-3.7v
LIFEPO4=3.2v
LINICOALO4=3.6v
LITISOLO2=2.4v
LIPOL=3.6v

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
//******Зарядка для литий ионного акум с ШИМ , и тестер а одном*****
/* часы работают от счетчика Т2 ,внешний такт кварц 32768 Гц . предделитель на 128
1 сек при сравнении счетного регистра с  OCR2
EEPROM  заполняется
-------------------------------------------------------------------------
 десятисн  |     100       |     245    |    200   |     0    |     0   |
 ------------------------------------------------------------------------
 значение  |     shst      | I_kof     |    U_kof |      emcost         |
-------------------------------------------------------------------------
 
*/
#define F_CPU 8000000UL // 8Mhz
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/eeprom.h>
#include <util/delay.h>
#include "lcd_lib.h"
long int emkost;
unsigned int voltage,voltage_in, current,current_in, adc_counter;            //   для  вольт-ампер  метра
volatile unsigned long voltage_value, current_value;
unsigned int  k=0, Uoff=100 ;              //   для кнопок
EEMEM unsigned int eeprom_emcost  ;
EEMEM unsigned char eeprom_U_kof  ;
EEMEM unsigned char eeprom_I_kof  ;
EEMEM unsigned char eeprom_shst  ;//  коэф шима 
unsigned char t=0, min=0 , clock=0 ,  flag=0 ,  flag_zar=0, shima=0 ,j=0 , f=0,flag_zar_in=0;
unsigned char shst; // текущий коэф шима 
#define shima_start shst
#define shima_end 32
unsigned char U_kof,I_kof;
 
void save (void)
{
    eeprom_write_byte(&eeprom_U_kof,U_kof);
    eeprom_write_byte(&eeprom_I_kof,I_kof);
    
}
ISR(ADC_vect)// Обработчик прерывания от АЦП
{
    ADCSRA = 0; // Выключаем АЦП
    if((ADMUX & 0x0F)==1) // Если был выбран канал ADC1
    {
        voltage_value = voltage_value + ADC; // Суммируем измеренные значения напряжения и помещаем в буфер
        ADMUX = (ADMUX & 0xF0) | 0; // Выбираем канал ADC0
    }
    else
    {
        current_value = current_value + ADC; // Суммируем измеренные значения тока и помещаем в буфер
        ADMUX = (ADMUX & 0xF0) | 1; // Выбираем канал ADC1
        adc_counter++; // Увеличиваем счетчик выборок АЦП на 1
    }
    // Включаем АЦП
    ADCSRA |= (1 << ADEN)|(1 << ADSC)|(1 << ADPS2)|(1 << ADPS1)|(1 << ADPS0)|(1 << ADIE);
}
ISR(TIMER2_COMP_vect)// ==========Обработчик прерывания от TIMER2 (1 секунда)
{
    if ((flag==1)||(flag_zar==1)){t++;}
}
void Tip_Ak(void) //--проверка типа акум  Li-ion или Ni-Mg
{
    lcd_gotoxy(0, 0);
    if (voltage >200){lcd_string("Lion ",5);Uoff = 290;}  // отключение теста для Li-ion акумул 2,8 вольт
    else             {lcd_string("NiMg ",5);Uoff = 100;}// отключение теста для Ni-Mg акумул 1 вольт
}
void shima_set(void)
{   
    sh:
    lcd_gotoxy(0, 0);
    lcd_string("3AP TOK ",8);
    switch(shst)
    {
        case 50: lcd_string(" 235 mA ",8);break;
        case 75: lcd_string(" 365 mA ",8);break;
        case 100: lcd_string(" 470 mA ",8);break;
        case 125: lcd_string(" 615 mA ",8);break;
        case 150: lcd_string(" 745 mA ",8);break;
        case 175: lcd_string(" 840 mA ",8);break;
        case 200: lcd_string(" 990 mA ",8);break;
        case 225: lcd_string("1120 mA ",8);break;
        default:lcd_gotoxy(0, 1);
    }
    lcd_gotoxy(0, 1);_delay_ms(200);
    lcd_string("S MAX=",6);lcd_num_to_str(shst, 3);lcd_string(" KH Z,T",7);
            if ((PINC &(1<<PC2))==0)   // если нажата кнопка ZAR
                    {   shst=shst+25;_delay_ms(140);
                        if (shst>225){ shst=50;}
                                    
                    }
            if ((PINB &(1<<PB0))==0) // если нажата кнопка TEST запомнить и выход
                    {
                        eeprom_write_byte(&eeprom_shst,shst);
                        return;
                    }
    
    
    goto sh;
}
void start (void)
{
    lcd_gotoxy(0, 0);          //   печать на дисплей с 0 места ,1 строки  (всего 16 символов (0-15)
    lcd_string("---_ U-.-- A.---",16);
    lcd_gotoxy(0, 1);                           //   печать на дисплей с 0 места ,2 строки  (всего 16 символов (0-15)
    lcd_string("----mA/c -:--:--",16);
}
void LCD_Time (void)
{
    
    if (t==60)
    {   min++;t=0;                           // минуты увеличиваем на 1
        if (min==60)
        {
            min=0;
            clock++;
        }
        
        if (flag==1)                    // если мосфет ВКЛ  ТЕСТ то считаем емкость
        {
            emkost=emkost + current;
            lcd_gotoxy(0, 1);
            lcd_num_to_str(emkost/60, 4);
        }
        
    }
    lcd_gotoxy(14, 1);
    lcd_num_to_str(t, 2);
    lcd_gotoxy(8, 1);
    lcd_num_to_str(clock, 2);
    lcd_gotoxy(11, 1);
    lcd_num_to_str(min, 2);
}
 
void ZAR_REG (void)// регулировку уровня шим  i 255-0
{
    _delay_ms(10);
    
    if (flag_zar==1) // *********************ВКЛ ЗАРЯД
    {
        TCCR1A |= (1 << COM1A1)|(0 << COM1A0)|(1 << WGM11)|(0 << WGM10);
        TCCR1B |= (1 << WGM13)|(1 << WGM12)|(1 << CS12)|(0 << CS11)|(0 << CS10);
        
                            if (flag_zar_in==0) // самое начало зарядки
                            { shima=shima+1;}
                            _delay_ms(10);  
                                if ((voltage >= 422 )&&(flag_zar_in==0)) // конец начала зарядки
                                {flag_zar_in=1;}
                            _delay_ms(10);
                            if (shima>shima_start)  // конец начала зарядки
                            {flag_zar_in=1; }
                            
                            _delay_ms(10);
                            if ((voltage >= 422 )&&(flag_zar_in==1)) // промежуточный этап заряда
                            {   shima=shima-2;}
                                
                            if ((shima<shima_end)&&(flag_zar_in==1)) // конец заряда
                            { flag_zar=0;PORTC &= ~(1<<PC3);} // off подсветка 
            
                            
    OCR1A = shima;
    
    }
    
    
    if (flag_zar==0) // *******************ВЫКЛ ЗАРЯД
    {
        OCR1A=0;shima=0;flag_zar_in=0;
        TCCR1A = 0;
        TCCR1B =0;
        
    }
}
//********************************************************
 
 
int main(void)
{
    DDRC |=(1<<PC4);  //  инициализация  PC4 -выход MOSFET теста акум
    DDRB |=(1<<PB1);  //  инициализация  PB1 -выход MOSFET зарядки акум   R 1.8 Om ШИМ
    PORTB &= ~(1<<PB1);  // выход 0
    DDRB &=~(1<<PB0);  //  инициализация  PB0 -вход  КНОПКА  теста емкости 
    DDRC &=~(1<<PC2);  //  инициализация  PC2 -вход КНОПКА   зарядки акум
    PORTB |=(1<<PB0);   //резисторы к PB0
    PORTC |=(1<<PC2);   //резисторы к PC2
    DDRC |=(1<<PC3); //  инициализация  PC3 -выход подсветка*/ 
    PORTC |=(1<<PC3); // вкл подсветку
    shima=0;
    
    
    
                                //**************** отладка , кнопки pb4+   pb5-     koff
                                DDRB |=(0<<PB4)|(0<<PB5);  //   -вход  КНОПКА
                                PORTB |=(1<<PB4)|(1<<PB5);//резисторы
                                U_kof=eeprom_read_byte(&eeprom_U_kof);
                                I_kof=eeprom_read_byte(&eeprom_I_kof);
                                // *****************отладка
                                // *****************отладка  шима 
                                shst=eeprom_read_byte(&eeprom_shst);
                                if ((shst>230)||(shst<50))  // регулироваться будет в пределах 225- 50
                                {shst=100;}
                                
                                
                                
                                // *****************
    
        ADMUX |= (1 << REFS1)|(1 << REFS0); // Внутренний ИОН 2,56V
        ADMUX |= (1 << MUX0); // Подключаем канал ADC1
        _delay_us(10); 
        ADCSRA |= (1 << ADEN) // разрешение АЦП
        |(1 << ADSC) // запуск преобразования
        |(1 << ADPS2)|(1 << ADPS1)|(1 << ADPS0) // предделитель на 128 (62.5Khz) при частоте проца 8М Гц
        |(1 << ADIE); // разрешение прерывания от АЦП
        
    ////    настройка таймера   Т1 - ШИМ *******************************************************
                        
                                    TCCR1A |= (1 << WGM11)|(0 << WGM10); // Установим биты COM1A1-COM1A0:0b10, означает сброс вывода канала A при сравнении
                                     // Установим биты WGM13-10:0b1110, согласно таблице это  (коэф деления )
                                    TCCR1B |= (1 << WGM13)|(1 << WGM12) // будет режим - FAST PWM, где верхний предел счета задается битом ICR1
                                    |(1 << CS12)|(0 << CS11)|(0 << CS10); // Битами CS12-10:0b001 задаем источник тактового сигнала для таймера МК, включен делитель 8
                                    TCNT1 = 0x00; // начальная установка счетчика
                                    ICR1 = 0xFF; // задаем период ШИМ, здесь у нас число 255,
                                    // по формуле fPWM=fclk_I/O/8(1+ICR1)// вычисляем частоту ШИМ, она будет равна 3906 Hz
                                    //OCR1A = 0xFF; // начальный коэффициент заполнения ШИМ
 
        //    настройка таймера Т2 1 сек *******************************************************
                        ASSR|=(1<<AS2); // асинхронный режим 
                        TCCR2 |= (1<<WGM21) // режим сравнения с OCR2
                        |(1 << CS22)|(0 << CS21)|(1 << CS20); //32768/128=256 Hz для счетчика времени 
                        OCR2 = 255;// остаток после деления пред делителя
                        TIMSK |=(1<<OCIE2) ;// вкл прерывание сравнения с OCR2
                        sei(); // Глобально разрешаем прерывания (устанавливаем бит I  в регистре SREG) 
 
        lcd_init(); // Инициализация LCD
        lcd_clr();// очистить LCD
        _delay_ms(25);
        
        lcd_gotoxy(0, 0);          //   печать на дисплей с 0 места ,1 строки  (всего 16 символов (0-15)
        lcd_string("OLD C ",6);
        unsigned int temp;
        temp=eeprom_read_word(&eeprom_emcost);
        lcd_num_to_str(temp, 4);lcd_string(" mA/c",5);
        lcd_gotoxy(0, 1);                           //   печать шима текущего 
        lcd_string("S MAX=",6);lcd_num_to_str(shst, 3);
    
    
        _delay_ms(250);_delay_ms(250);
        _delay_ms(250);_delay_ms(250);
        _delay_ms(250);_delay_ms(250);
        _delay_ms(250);_delay_ms(250);
        _delay_ms(250);_delay_ms(250);
        
    start();
    
    while(1)  //  здесь крутится бесконечный цикл
    {
        svet:                           
            if (adc_counter > 500)
        {
        
        // преабразуем данные в реальное значение напряжения
        // коэф не 1/2 так как есть нелинейность АЧХ компоратора ,при 100/196 напряжение на индикаторе чуть больше
        voltage = (voltage_value/adc_counter) * 100/U_kof;  
        
        // преабразуем данные в реальное значение тока .
        //ток снимаем с резистора 5.1 Ом (без микросхемы)на контроллер сигнал ид\т через резистор 1 КОм
        current = (current_value/adc_counter) *I_kof/500;
        
        Tip_Ak();           // Определяем тип акумулятора
        
        adc_counter = 0; // Обнуляем счетчик выборок АЦП
        voltage_value = 0; // Обнуляем буфер значений напряжения
        current_value = 0; // Обнуляем буфер значений тока
                
        lcd_gotoxy(6, 0);
        lcd_num_to_str(voltage/100, 1);  // Выводим напряжение  на LCD
        lcd_gotoxy(8, 0);
        lcd_num_to_str(voltage, 2);
        
        
        }   
   _delay_ms(50); 
   //***************************************************
                                    
                                                
                                            
                                            if (((PINB &(1<<PB4))==0 )&&(flag==0))  //  если нажата кнопка + и режим заряда или режим простоя
                                                {U_kof++;_delay_ms(100);    }
                                                    
                                            if (((PINB &(1<<PB4))==0 )&&(flag==1)) //  если нажата кнопка + и режим ТЕСТА
                                            {I_kof++;_delay_ms(100);    }
                    
                                            if (((PINB &(1<<PB5))==0 )&&(flag==0))  //  если нажата кнопка - и режим заряда или режим простоя
                                                {U_kof--;_delay_ms(100);    }
                                                    
                                            if (((PINB &(1<<PB5))==0 )&&(flag==1))  //  если нажата кнопка - и режим ТЕСТА
                                            {I_kof--;_delay_ms(100);    }
                    
        if ((PINB &(1<<PB0))==0 )  // если нажата кнопка то ..ТЕСТ
                {   if ((PINC &(1<<PC3))==0 ){PORTC |=(1<<PC3); _delay_ms(500);_delay_ms(500);goto svet; } // подсветка ВКЛ
                    
             
                            while((PINB &(1<<PB0))==0 ) // ждем  отпускания кнопки (PB0) ТЕСТ
                                { k++;
                                    _delay_ms(18);
                                    if (k>150   ) // если долго нажата то обнуляум ~ 2 сек
                                    {flag=flag_zar=min=k=clock=t=emkost=0;
                                        save (); _delay_ms(500);start();_delay_ms(500) ;   // запоминаем коррекции коэфициенты
                                        goto svet;}
 
                                }
            
                    PORTC |=(1<<PC4); flag=1;// то выставляем 1 на порте Pc4 , ВКЛ Мосфет ТЕСТ
                    PORTB &= ~(1<<PB1); shima=0;
                    flag_zar=0;// отключаем МОСФЕТ ЗАРЯДА , нет зарядки
            
                }
        
        if (((PINC &(1<<PC2))==0)&&(Uoff==290))  // если нажата кнопка то ..ЗАРЯД
                {   if ((PINC &(1<<PC3))==0 ){PORTC |=(1<<PC3); _delay_ms(100);_delay_ms(500);goto svet; }// подсветка ВКЛ
                    
                            while((PINC &(1<<PC2))==0 ) // ждем  отпускания кнопки (PC2) zaryad
                            { k++;
                                            _delay_ms(18);
                                            if (k>150   ) // если долго нажата то уходим на регул шима ~ 2 сек
                                            {k=0;shima_set();
                                                flag=flag_zar=min=clock=t=emkost=0;
                                                _delay_ms(500);start();_delay_ms(500) ;
                                              
                                            goto svet;}
 
                            }
                            
                            
                            
                    flag_zar=1;
                    
                    PORTC &= ~(1<<PC4); //    МОСФЕТ ЗАРЯДА
                    flag=0; // нагрузка откл
            
                }
        //    ==========  конец  ТЕСТА ========                         
         if ((voltage < Uoff)&&(flag==1))   // если вольтаж меньше 1в (2,80в Li-ion) то конец теста
                 {
                     PORTC &= ~(1<<PC4);  // отключаем МОСФЕТ ,нагрузку
                     flag=0;
                     eeprom_write_word(&eeprom_emcost,emkost/60);
                     if ((Uoff==290)&&(flag_zar==0))  // если стоит (2,80в Li-ion) после теста ВКЛ заряд LI-ion акум
                     {  
                         flag_zar=1;
                         _delay_ms(100);
                         min=0 ;
                         clock=0 ;
                         t=0;
                     }
                 }
         
         //    ==========  индикация тест или заряд ========
         if ((flag==1)||(flag_zar==1))                      // если мосфет включен
                {
                 LCD_Time();
                 if (flag_zar==1)
                                     {lcd_gotoxy(11, 0);lcd_string("S.",2);lcd_num_to_str(shima, 3);
                                                             lcd_gotoxy(10, 0);
                                                             if (j<6)
                                                             {lcd_dat(j);j++;_delay_ms(100);} // индикатор процесса заряда на дисплее
                                                             else
                                                             {j=0; }
                 
                 
                                     }
                 if (flag==1)    // тест
                                    {
                 
                 
                                        lcd_gotoxy(10, 0); // индикатор процесса разряда на дисплее
                                        if (j<=0)
                                        {lcd_dat(j);j=5;_delay_ms(100);}
                                        else
                                        {lcd_dat(j);_delay_ms(100);j--; }
                                        lcd_string("A.",2);lcd_num_to_str(current, 3); // тест
                                    }
                 }
        //без заряда и теста
        else {   lcd_gotoxy(11, 0);lcd_string("_STOP",5);  }    
                        
            ZAR_REG (); 
                                                                                            lcd_gotoxy(0, 2);
                                                                                            lcd_num_to_str(U_kof, 3);
                                                                                            lcd_gotoxy(5, 2);
                                                                                            lcd_num_to_str(I_kof, 3);                           
                                
    }
    
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2018, 19:57
Ответы с готовыми решениями:

ATMega8. Опорное напряжение АЦП
Привет всем. Только начал изучать авр. Меня интересует, какое максимальное напряжение можно подать...

Разница между ATMEGA8-16AI и ATMEGA8-16AU
Кто подскажет, в чем разница между ATMEGA8-16AI и ATMEGA8-16AU. Смотрю в Платане цены между ними...

максимум зарядки аккумулятора
подскажите пожалуйста как в Windows 8 снизить максимальный процент зарядки аккумулятора ноутбука с...

Индикатор зарядки Li-ion аккумулятора
Привет всем! Нашлось пара &quot;ненужных&quot; аккумов от мобилок, и появилась идея собрать походную...

Amilo mini ui 3520 отключается при 80% зарядки аккумулятора.
Проблема в следующем: Fujitsu-Siemens Amilo mini Ui 3520, возраст почти три года, эксплуатация...

13
inquisitor
15 / 6 / 16
Регистрация: 22.12.2015
Сообщений: 1,763
28.11.2018, 21:04  [ТС] 2
Логически я понимаю.что
Изменяя ШИМ изменяем напряжение .
Чем больше напряжение ШИМ тем больше ток заряда.
То есть ток регулируем посредством напряжения.

Мне цифры,которые поменять,значения переменных.
0
tatarva87
98 / 19 / 8
Регистрация: 23.03.2018
Сообщений: 94
29.11.2018, 17:51 3
Через ножку Рв1 подается шим сигнал (ножка используется в режиме внутреннего шим генератора ос1а) . это заряд. Причем управляемый. А разряд неуправляемый. Или включается или выключается. Ножкой pc4. Утеска тут единственная - постоянно по измерительным резисторам 10к и 10к. Ну там ток небольш9ой. В принципе эти резисторы можно пропорционально увеличить вдвое. Утечка уменьшится в 2 раза. А защиты от переполюсовки нет. Можно попробовать два мощных диода поставить. Гу только нужно подумать где. Чтоб на подчет тока и напряжения не повлиять.

Добавлено через 8 минут
Один диод надо ставить между истоком А1262 и резистором 10к анодом к транзистору. А второй между резист 5.1ом и полевиком катодом к транзистору. В таком случае подчеты не должны измениться.
1
inquisitor
15 / 6 / 16
Регистрация: 22.12.2015
Сообщений: 1,763
29.11.2018, 18:10  [ТС] 4
Цитата Сообщение от tatarva87 Посмотреть сообщение
Один диод надо ставить между истоком А1262 и резистором 10к анодом к транзистору. А второй между резист 5.1ом и полевиком катодом к транзистору. В таком случае подчеты не должны измениться.
С током корректировка по заряду и разряду не требуется.
Подскажите на какой ножке и как программно уставить точную величину напряжения
Для свинцово -щелочных аккумуляторов (
sla=2.1v
LA6.12 v
vrla 4v 6v 12 v
agm vrla 2v 4v 6v 12v
gel vrla 2v 6v 12 v
opzv 2v
opzs 2v)

Для литиевых

LICOO2=3.6v
LIMNO4=3.7v
LINIMNCOO@=3.6-3.7v
LIFEPO4=3.2v
LINICOALO4=3.6v
LITISOLO2=2.4v
LIPOL=3.6v
0
tatarva87
98 / 19 / 8
Регистрация: 23.03.2018
Сообщений: 94
29.11.2018, 18:23 5
Для работы с 12 вольтами он не предназначен.

Добавлено через 4 минуты
62 строка установкой uoff определяется конечное напряжение.

Добавлено через 1 минуту
Сразу не скажу цифры. Надо с калкулятором посидеть чтоб получить uoff для какого нибудь своего напряжения.
1
inquisitor
15 / 6 / 16
Регистрация: 22.12.2015
Сообщений: 1,763
29.11.2018, 18:40  [ТС] 6
Цитата Сообщение от tatarva87 Посмотреть сообщение
62 строка установкой uoff определяется конечное напряжение.
Uoff = 290;
Как его пересчитать в вольты?

Добавлено через 2 минуты
Цитата Сообщение от tatarva87 Посмотреть сообщение
Для работы с 12 вольтами он не предназначен.
Может есть схема аппаратной регулировки напряжения на обозначенные номиналы,раз больше 5в получить нельзя.Может схему подскажите что бы ножка как выход открывает транзистор а тот уже пропускает скажем 12в.А ток заряда тогда,как регулировать?
0
tatarva87
98 / 19 / 8
Регистрация: 23.03.2018
Сообщений: 94
29.11.2018, 20:04 7
Для 12 вольт эту схему точно никак ни применить. А про другую схему 12вольтовую я так на вскидку не скажу.
1
inquisitor
15 / 6 / 16
Регистрация: 22.12.2015
Сообщений: 1,763
29.11.2018, 20:29  [ТС] 8
Цитата Сообщение от tatarva87 Посмотреть сообщение
Для 12 вольт эту схему точно никак ни применить. А про другую схему 12вольтовую я так на вскидку не скажу.
Где регулируется напряжение зарядки аккумулятора на atmega8?
0
inquisitor
15 / 6 / 16
Регистрация: 22.12.2015
Сообщений: 1,763
29.11.2018, 20:32  [ТС] 9
P1 регулирует ток получается
0
tatarva87
98 / 19 / 8
Регистрация: 23.03.2018
Сообщений: 94
30.11.2018, 15:31 10
Нет. Не получается ... 12 вольтовое напряжение будет усли только сразу после диодного моста поставишь резистор и вместо р1 поставишь стабилитрон. Но все равно к той схеме, которую ты вначале выложил этот блок питания напрямую не подклюсить

Добавлено через 1 минуту
И у тебя ток написано 150 мА. Тауим током ты вряд ли че нибудь зарядишь.

Добавлено через 38 секунд
Если только светодиод!!!!)))
1
Ктонибудь
5 / 5 / 0
Регистрация: 11.05.2017
Сообщений: 8
01.12.2018, 00:44 11
Подставь DC-DC преобразователь и управляй им через AVR. Вот, подсмотренная схема, ШИМ управляется PD8(15).
Напряжение можно получить от 2 до 20 В в точке Батт+.
1
Миниатюры
Где регулируется напряжение зарядки аккумулятора на atmega8?  
Ктонибудь
5 / 5 / 0
Регистрация: 11.05.2017
Сообщений: 8
01.12.2018, 00:46 12
Защиту от переполюсовки можно тоже вот так реализовать...
2
Миниатюры
Где регулируется напряжение зарядки аккумулятора на atmega8?  
Ктонибудь
5 / 5 / 0
Регистрация: 11.05.2017
Сообщений: 8
01.12.2018, 00:59 13
А я так думаю, модно использовать любой DC-DC преобразователь с предустановленньіми шагами Ubat в зависимости от заряжаемой батареи.
1
inquisitor
15 / 6 / 16
Регистрация: 22.12.2015
Сообщений: 1,763
01.12.2018, 01:53  [ТС] 14
Цитата Сообщение от Ктонибудь Посмотреть сообщение
Подставь DC-DC преобразователь и управляй им через AVR. Вот, подсмотренная схема, ШИМ управляется PD8(15).
Напряжение можно получить от 2 до 20 В в точке Батт+.
C ток можно регулировать с МК с одновременным регулированием напряжения по вашей схеме?
0
01.12.2018, 01:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2018, 01:53

Приспособить 12-ти вольтовый адаптер для зарядки 6-ти вольтового аккумулятора
Есть такой аккум: Не моу понять написанно там LI или LJ? (Склоняююсь к Литий-Ионные) ...

Acer Aspire V3-772G не включается без аккумулятора и нет зарядки
Acer Aspire V3-772G не включается без аккумулятора и нет зарядки аккумулятора. Аккумулятор...

Выходное напряжение зарядки для сотового
Здравствуйте! Помогите баклану разобраться как электричество работает, плиз. :) Есть у меня...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru