Приветствую Вас Гость | RSS

       КОНТРОЛЛЁРЫ
Среда, 08.05.2024, 16:31
Главная » 2012 » Декабрь » 24 » Зарядное устройство с ЖК индикатором
14:55
Зарядное устройство с ЖК индикатором
lico



Это зарядное устройство выполнено на базе обычного блока питания компьютера, переделка которого описана во множестве на всех сайтах электроники. От себя добавил только блок контроля напряжения и тока. 
Идея поставить микроконтроллер для измерений пришла во время изготовления первых аналогичных устройств  со стрелочными индикаторами. 


Starii


Стрелочные индикаторы брались от старых магнитофонов и различных ретродевайсов. Мороки было предостаточно : приходилось добавлять схему , для растягивания шкалы вольтметра, подбирать шунт амперметра и рисовать шкалу на приборах. 


Wkala


В первой зарядке сначала стояла колодка с предохранителем, защищавшем от КЗ. Но после того, как от случайных замыканий клемм сгорел весь запас 10-амперных предохранителей, было решено демонтировать колодку и поставить авиационный азс на 5 ампер.Благо места в корпусе предостаточно. Автомат справляется отлично- замечаний нет.




Вообщем , учитывая все  ошибки старой конструкции и для совершения новых был сделан микропроцессорный блок измерения на PIC 16F877a.
Схема
 Скажу сразу , возможности этого контроллера избыточны для этой схемы , но учитывая распространенность и цену был выбран именно этот сороконог.



Измеритель нового зарядного устройства расположился на съёмной крышке блока питания. Его размеры подгонялись под размеры ЖК индикатора. Можно посмотреть на картинке - сделано немного коряво, но надежно :)
Падение напряжения на шунте усиливается операционным усилителем на LM358. Это позволило значительно снизить сопротивление шунта. Я , например , использовал кусок медного провода диаметром 0.3-0.4 и длиной около 5 сантиметров.

С помощью переменных резисторов настраиваются напряжение и ток соответственно. Кварц использовался на 4 мГц. ЖК индикатор 16x1.

Разводка печатной платы проводилась в Sprint-Layout.


Размеры и крепежные отверстия платы  совпадают с ЖК индикатором.

Программа написана в PicBasic pro.
Ничего сложного в ней нет. Оба измерения проводятся в 8-битном режиме АЦП. 

DEFINE LCD_DREG PORTB          ' Задать порт для передачи данных на ЖКИ 
DEFINE LCD_DBIT 0                   ' Задать первый вывод порта PORTB
DEFINE LCD_RSREG PORTB        ' Задать порт для сигнала RS на ЖКИ 
DEFINE LCD_RSBIT 7                 '  вывод порта PORTB, сигнал RS на ЖКИ 
DEFINE LCD_EREG PORTB           ' порт  сигнал E на ЖКИ 
DEFINE LCD_EBIT 6                    ' вывод порта PORTB,сигнал E на ЖКИ 
DEFINE LCD_BITS 4                    ' Задать 4-битный режим обмена информацией для ЖКИ 
DEFINE LCD_LINES 2                   'опред тип ЖКИ'
 define lcd_commandus 2000         'время задержки между командами на ЖКИ'
 define lcd_dataus 50                    'время задержки между посылками данных'


define adc_bits 8                          '    задаем параметры АЦП
define adc_clock 3
define adc_sampleus 50

promegA var word                         'задаем служебные промежуточные 
promegV var word                         '       переменные
v1 var word
v2 var word
tok1 var word
tok2 var word
TRISA=%11111111 
trisb=0
PAUSE 1000
ADCON1 = %00000000                    'AN0-АN4 как Аналоговые входы;это для 8-разрядного АЦП 
                                                     ' для 10-разрядного :  adcon0=%11001001
OPTION_REG=0                              '   включаем подтягивающие резисторв
lcdout $fe,1                                     '   очищаем экран
lcdout $fe,$c0
main: 
adcin 0,promegA
if promega>189 then                      ' вывожу знаки >>> если лм-ка выдит в насыщение ,
lcdout $fe,2,"I >>>>"                     '  что говорит о превышении тока
endif
adcin 1,promegV       'мах напряжение 25.6 вольт,делим на10 число 256
if promegv>=255 then      '   знаки .>>> если ацп войдет в насыщение
lcdout $fe,$c0,"U >>>>"   '
endif
tok1=promegA/19                               '  мах напряжение с лм-ки всего 3.7 вольта,что соотв
tok2=promegA//19                              ' 190 едениц ацп.след-но им соотв верхний предел 
tok2=tok2*10/19                                 ' 10 ампер.Делим остаток на коэф 19

 v1=promegV/10                                   '  делим что бы отделить целую часть 
 v2=promegv//10                                  ' это оператор возвращает остаток от деления в v1- 
                                                           ' он у нас как раз равен десятым от промежV
 lcdout $fe,2,"I=" ,#tok1,".",#tok2," A"
 lcdout $fe,$c0,"U=" ,#v1,".",#v2," V"' добавляем вторую строку в лсд
 pause 500
 goto  main
 end

Максимальное измеряемое напряжение зададим 25.5 вольт, учитывая что при 8-битном режиме разрешение составит 255 бит.Соответственно ,что каждый вольт будет равен 255/25.5 =10 единицам. В данном случае это удобно , т.к. у пикбасик нет десятичных и их получение это дополнительные ресурсы.
А вот с током этот трюк не проходит. Задаем мах ток 10 ампер.Тогда один ампер будет соответствовать Х/10=19 единицам АЦП.
5В/3.7=255/Х ( 3.7 - это напряжение на выходе LM 358, выше и усилитель входит в насыщение)
 Х - примерно 190 единиц ацп.
Схема, разводка и программа находятся в архиве по этой ссылке

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

Просмотров: 2982 | Добавил: Underground | Теги: PIC16F877a, контроль напряжения, компьютерный блок питания, зарядное устройство, микроконтроллеры, регулировка напряжения и тока, ЖКИ, контроль тока | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: