Это зарядное устройство выполнено на базе обычного блока питания компьютера, переделка которого описана во множестве на всех сайтах электроники. От себя добавил только блок контроля напряжения и тока. Идея поставить микроконтроллер для измерений пришла во время изготовления первых аналогичных устройств со стрелочными индикаторами.
Стрелочные индикаторы брались от старых магнитофонов и различных ретродевайсов. Мороки было предостаточно : приходилось добавлять схему , для растягивания шкалы вольтметра, подбирать шунт амперметра и рисовать шкалу на приборах.
В первой зарядке сначала стояла колодка с предохранителем, защищавшем от КЗ. Но после того, как от случайных замыканий клемм сгорел весь запас 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 единиц ацп. Схема, разводка и программа находятся в архиве по этой ссылке
В дальнейших планах - источник тока и напряжения, контроль температуры аккумулятора на базе все того же компьютерного блока питания.
|