простой индикатор заряда lion-элемента 2
Создано: 21-12-2012 17:23:25 изменено: 14-02-2017 13:42:28  Метки: electronic
в первой части был не вполне разумный выбор схемы. Второй вариант я решил сделать более "мобильным" им можно померить напряжение на элементе lion.

Тут при напряжении на элементе меньше 3,2 вольта загорается D2, при большем напряжении D3. D1 моргает, показывая напряжение - сначала длинными вольты, потом короткими десятые, после паузы повторяет. В схеме забыл емкость на 0,1 мкФ на вход АЦП и токоограничительные резисторы 100-300 Ом для светодиодов, ну и программа написана левой ногой для примера (picbasic pro):
'@device = pic12F675, intrc_osc_noclkout, wdt_on, mclr_on, protect_off
    led1      var     GPIO.4
    led2      var     GPIO.5            
    ledind     var     GPIO.2
    trisio=%00000001 ' отключаем GPIO.0
    ANSEL = %00110001 ' внутренний RC генератор, AN0
    adcon0=%01000001 '  опорное - gp1, An0, модуль АЦП включен
    gpio = 0 
    CMCON = 7 
    define adc_bits 8 
    define adc_clock 3 
    define adc_sampleus 50 
    adval var byte
    i var byte
    ms var word 
    digit var byte
    pause 1500 ' ждем пока устаканится напряжение
main: 
    ledind = 0 ' выключаем D1
    adcin 0, adval
    if adval < 160 then 
        led1 = 0 'напряжение меньше 3,2 вольта
        led2 = 1
    endif
    if adval >= 160 then
        led2 = 0 ' напряжение больше или равно 3,2
        led1 = 1
    endif
    adval = adval/5 ' превращаем значение с АЦП в число вольт * 10
    digit = adval dig 1
    ms = 1000
    call flash ' промаргиваем еденицы вольт
    pause 1000
    digit = adval dig 0
    ms = 500
    call flash ' промаргиваем десятые вольт
    pause 5000 ' пауза перед повтором
goto main
    
flash:  while digit > 0
            ledind = 1
            pause ms
            ledind = 0
            pause 300
            digit = digit - 1
        wend
        return
end 

2113 просмотров комментировать