Utilizei o microprocessador PIC 12F675 no projeto, que tem a função de segurança do dispositivo.
Funcionamento:
Após 3 segundos ao ser energizado, será ativada a saída GP0, que dá início ao processo, esse tempo é para o carregamento dos capacitores.
Configurado como ADC, quando a tensão na entrada do GP1 for maior que 1volt, a proteção contra curto-circuitos será habilitada, enviando sinal alto a saída GP4, que desligará o sistema.
A entrada GP2 também foi configurada como analógica, quando a tensão for maior que 2 volts, a saída GP5 terá sinal alto, que tem a função de avisar se a bateria está fraca.
Código de fonte:
#include <12f675.h>
#device adc=10
#use delay(clock=4000000)
#fuses NOWDT,INTRC_IO,PUT,NOPROTECT,BROWNOUT,NOMCLR,NOCPD
#define Mode PIN_A3 // GPIO.3
#byte GPIO = 0x00
long ad = 0;
void main()
{
output_a(0x00);
set_tris_a (0x0E); // GPIO.5, GPIO.4 e GPIO.0 como saidas
setup_adc_ports(sAN1|sAN2|VSS_VDD);
setup_adc (ADC_CLOCK_DIV_8); // A/D clock/8 @4MHz, Tempo A/D = 2uS
setup_comparator (NC_NC_NC_NC);
delay_ms (3000); // tempo de inicialização
OUTPUT_HIGH(PIN_A0);
while (true)
{
ad = 0;
set_adc_channel (1);
delay_us (20);
ad = read_adc ();
delay_us (20);
if (ad <= 102) OUTPUT_LOW (PIN_A4);
ELSE OUTPUT_HIGH (PIN_A4);
delay_ms (20) ;
ad = 0;
set_adc_channel (2);
delay_us (20);
ad = read_adc ();
delay_us (20);
if (ad <= 409) OUTPUT_LOW (PIN_A5);
ELSE OUTPUT_HIGH (PIN_A5);
delay_ms(20);
}
}
Imagem do circuito: