PROTETOR CONTRA DESCARGA EXCESSIVA DE BATERIA VEICULAR- COM PIC 12F675 (REF135)

2

Alguns equipamentos como geladeira de porta-malas e módulos de som podem facilmente descarregar a bateria do veiculo. Que tal um protetor de baterias?

Veja o esquema abaixo:

Aproveitando a montagem anterior, o artigo ‘FAÇA UM SIMPLES TESTE DE LEDS PARA COMPROVAR CARGA DO ALTERNADOR DE VEíCULOS – COM PIC 12F675’, foi acrescentado um rele de carga no pino 7 do PIC. A função deste rele é justamente desligar a carga consumidora quando a tensão da bateria cair para níveis prejudiciais, por volta de 10,5 volts. Portanto, deverá modificar a alimentação do equipamento e passa-la pelos contatos do rele. Deverá usar um rele cujos contatos sejam condizentes com a corrente consumida pelo equipamento. O rele voltará a ligar somente quando for ligado o motor do veículo e a tensão gerada pelo alternador ultrapassar os 13,5 volts. Logicamente, pode-se facilmente alterar estes patamares mudando os valores nas linhas de código e recompilando o arquivo “C” com o compilador CCS (Versão 3.200).
Os leds indicadores de estado da bateria foram mantidos, podendo-se ter um diagnóstico visual da situação atual da bateria e da carga do alternador. Para mais detalhes dos níveis de atuação destes leds, veja o artigo anterior intitulado de ‘FAÇA UM SIMPLES TESTE DE LEDS PARA COMPROVAR CARGA DO ALTERNADOR DE VEICULOS – COM PIC 12F675’, que apresenta em detalhes, incluindo a maneira de ajustar e calibrar o aparelho ao usar pela primeira vez, por meio do trimpot de 4k7 junto ao pino 5.
Para proteger os componentes, a montagem poderá ser colocada em uma pequena caixa plástica e fixada próxima do equipamento consumidor.
Obs. Esta montagem é experimental, sendo realizada apenas em placa de protoboard, sujeita a bug’s ainda não detectados. Está sendo fornecido os arquivos para que cada hobista possa alterar o programa segundo suas necessidades.

Segue pasta com arquivos ‘C’ e ‘Hex’:

protetor_bateria

Manuais:
PIC12F675

Curiosidades:
Como enfrentar os desafios do trânsito
O túnel rodoviário mais comprido do mundo
Proteja-se contra ladrões de carros
Como evitar acidentes de carro
Perigos da calibragem baixa dos pneus
Quando a montanha tentou juntar-se ao mar
Use a tecnologia de modo respeitoso e econômico
Carros – no presente e no passado
Gás natural — energia para o lar
Perigo: motoristas sonolentos!

Outros assuntos:
Como controlar seu estresse
Quando seu casamento não é o que você esperava
Recuperar a confiança no casamento
Como acabar com a tática do silêncio
Como ser feliz no casamento?
Como ser um bom ouvinte
Como lidar com as dívidas
Como resolver problemas no casamento
Aprenda a perdoar
Como lidar com os sogros
Como criar filhos responsáveis
Como administrar o seu dinheiro
Ensine valores morais a seus filhos
Como evitar ferir com palavras?
Como tratar seu cônjuge com respeito?

Até o próximo artigo!!!

2

24 comments

  1. 0

    Olá, Larios parabéns pelos projetos, gostaria de implementar esse projeto para monitorar tensões de um circuito, esse circuito funciona da seguinte forma, um fio que manda entorno de 5v e conforme aperta o botão dele ele diminui essa tensão para 4v, 3v, 2v, 1v mais ou menos isso gostaria que esse circuito só ativasse com uma tensão escolhida exemplo 4volts mas só ativasse o led piloto quando atingir essa tensão depois de pressionar o botão por volta de 4 segundos led ascende e depois a hora que apretar e segurar por 4 segundos ele desligar o led, como se fosse um botão um toque liga um toque desliga mas com um delay de 4 segundos para ativar e destivar, mas a tensão de entrada pode ser regulada com trimpot ou se possível um botão de lear para gravar essa tensão.
    Sei que é muito corrido pra vc mas se conseguir me ajudar nesse projeto fico muito contente.
    Obrigado e parabéns pelos projetos aconpanho todos !!!
    Obrigado

      1. 0

        Seria para controle de uma mesa de som digital, e precisava liberar esse acionamento para outro sistema, mas como disse, precisava as veses mudar o botão de acionamento que varia tensão da maneira que comentei é um fio que manda o sinal de 9 botões ai queria gravar um que menos utilizo para acionar o outro sistema com o delay de no máximo 4 segundos ai liga e se pressionar novamente por 4 segundos desliga seria isso, espero que possa me ajudar, desde já agradeço seu retorno muito obrigado !

        1. 0

          Larios, montei esse projeto funcionou do jeito que eu comentei com você fiz uma alteração nele que foi alterar o teimpot para 100k pq o de 4k7 estava impedindo de funcionar tanto o circuito quanto alguns comandos da mesa e a unic coisa que se possível alterar era o relé para que funcione de acordo com que te passei eu, peguei o meio termo do ou seja o led amarelo e quando presiono qualquer outro botão ele não ascende a não ser esse que calibrei para acesder com o led amarelo ser que você consegue alterar para mim para ter um delay para acionar ele de 4 segundos e para que o rele funcione junto ai quando apertar uma vez ascende o led e aciona o rele e apertar de novo ascende o led e desliga o rele,obrigado!

        2. 0

          Olá Carlos!
          Obrigado por compartilhar o uso. Bem interessante, por sinal.
          Pensei em um circuito com um botão para aprendizado do nível da entrada, um led para indicar o aprendizado, e uma saída para acionar um rele e o led indicador.
          A entrada tem que ser de 0 a 5 volts. Valores maiores terá que colocar um trimpot de 10k para abaixar dentro da faixa permitida.

          Veja abaixo o código c:

          /*******************************************************************************

          Interruptor por nível de tensão (pré-programável)

          C/ PIC 12f675

          Autor: Cláudio Lários

          Se a tensão se manter no valor programado por um periodo determinado (4 seg)
          então inverte a saída. Então aguarda alterar o valor de entrada fora da faixa,
          para permitir uma nova comparação e se for igual, um novo acionamento, inver
          tendo a saída (função retenção).

          Para programar:
          Ajuste para uma tensão na entrada entre 0 e 5 volts que seja usada como
          um valor secreto de acionamento. Aperte o botão ‘PROG’. Irá piscar o led
          de programação, para indicar a gravação do valor na EEprom interna.
          Uso:
          Toda vez que a tensão programada for colocada na entrada do equipamento, após
          um tempo, irá acionar a saída, invertendo o ultimo estado. Para novo aciona-
          mento, retire a tensão de entrada ou a altere, e em seguida retorne ao mesmo
          valor programado, para acionar novamente a saída.

          A saída pode ser programada para operar em modo pulso ou retenção no programa
          ‘c’, alterando a escolha do usuário e recompilando.

          Possíveis aplicações:
          1)Detectar queda de tensão na linha de alimentação, como em caso de
          curtos e desligar equipamento.
          2)Segredos para carro: onde colocando-se um resistor no circuito, gera o nivel
          necessário para liberar o funcionamento do veiculo. (Nota: O resistor poderá
          ficar dentro de um plug do tipo P2, que seria encaixado no circuito do segredo
          para ligar).

          Use CCS C Compiler.

          Data: 22/03/2016

          Uso didático

          Este arquivo é parte integrante do blog “LARIOS.TECNOLOGIA.WS’

          *******************************************************************************/

          #include
          #device adc=10
          #use delay(clock=4000000)
          #fuses NOWDT,INTRC_IO, NOCPD, NOPROTECT, NOMCLR, PUT, BROWNOUT

          #use fast_io(A) // sentido das portas feita pelo programador

          #byte gpio = 0X05
          #byte tris = 0X85

          #bit prog = 0x5.1 //interruptor de programação pino 6
          #bit led = 0x5.5 //pino 2
          #bit saida= 0x5.4 //pino 3
          unsigned int16 valor,valeep;
          unsigned int8 cnt;
          unsigned int1 f_t=0;

          #define tolerance 20 //tolerancia permitida entre medições
          #define vdel 100 //tempo que a tensão deve ficar constante
          //antes de acionar (100 x 40ms= 4 seg)
          //para eliminar o tempo coloque apenas 1 ao invés de 100

          //=============================================================================
          // escolha aqui o modo de operação da saída entre pulso ou retenção (recompile)

          #define retencao //descomente para retenção e comente (//) para pulso

          /*******************************************************************************
          ROTINA MAIN
          *******************************************************************************/

          void main() {

          setup_counters(RTCC_INTERNAL,RTCC_DIV_1);
          setup_timer_1(T1_DISABLED);
          setup_comparator(NC_NC_NC_NC);
          setup_vref(FALSE);
          setup_adc_ports(sAN2 | VSS_VDD); //seleciona AN2 e 5v como referência
          setup_adc(ADC_CLOCK_DIV_8 );// ajusta o clock do adc
          set_adc_channel(2); //ajusta para o pino 5 (AN2)
          delay_us(10); //delay
          tris=0b001111; //direção das portas (tudo entrada,exceto pino 2 e 3 como saídas)
          gpio=0;

          /*******************************************************************************
          LAÇO PRINCIPAL DE REPETIÇÃO
          *******************************************************************************/

          for(;;){
          if(!prog){//se foi apertado botão de programação do nivel de tensão
          valor = (int16)READ_ADC();// lê valor da tensão de entrada do pino 5
          write_eeprom(0,valor>>8);//salva na eeprom interna valor high
          write_eeprom(1,valor);//salva na eeprom interna valor low
          led=1;//pisca led
          delay_ms(300);//delay 300 mseg
          led=0;
          while(!prog)delay_ms(50);//aguarda soltar interruptor de programação
          }
          else{//modo uso
          delay_ms(40);//delay entre leituras do adc
          valor = (int16) READ_ADC();// lê valor da tensão de entrada do pino 5
          valeep= (unsigned int16) read_eeprom(0)<=valeep)&&(valor<=valeep+tolerance)){//compara dentro da tolerancia

          if((–cnt==0)&&!f_t){
          #ifdef retencao
          saida=!saida;
          #else
          saida=1;
          #endif
          f_t=1;

          }//se deu tempo acionado, inverte a saída (retenção) ou desliga (pulso)
          }
          else{
          cnt=vdel;
          f_t=0;
          #ifndef retencao
          saida=0;
          #endif

          }// se a tensão mudou para diferente, reseta contador e libera flag

          }//else

          }//for(;;)

          }//void main()

          Clique aqui para obter a pasta com os arquivos para teste.
          Cláudio

          1. 0

            Olá Carlos, desculpa a demora para responder, estava meio corrido aqui, fiz os teste e esta tudo ok funcionando perfeitamente até o momento, gostaria de saber com você se é possível acrescentar mais uma saída o funcionamento seria o mesmo, mas acrescentar mais uma saída iria ser assim, ao ligar apertando o botão por 4segundos ele ativa essa saída que já esta no projeto e ao pressionar novamente por 4 segundos ele ativar a outra saída e manter a primeira ligada, e ao pressionar novamente desligar as duas, seria possível acrescentar mais essa saída ai ficaria perfeito aqui pra mim.
            Espero que tenha entendido vou simplificar aqui apertou uma vez por 4 segundos ele liga uma saída apertou mais 4 segundos ele liga a segunda saída e mantém a primeira ligada e ao pressionar a terceira vez ele desliga as duas saídas e outra coisa tem como ao desligar a alimentação do pic ele ficar com a ultima memória gravada para que volte no mesmo estado esse ultimo se possível o mais importante seria essa outra saída mesmo, espero que possa me ajudar mais uma vez fico muito grato pela sua ajuda.
            obrigado.
            Carlos Henrique.

          2. 0

            Olá Carlos!
            Que bom que funcionou!
            Quanto a esta alteração, não estou dispondo de tempo no momento, mas poderá tentar alterar o programa para esta nova funcionalidade, recompilando depois com o CCS C compiler.
            Cláudio

          3. 0

            Ola Larios, agradeço o retorno, mas não entendo de programação, só sei mesmo gravar o pic heheh, se vc conseguir me ajudar mais uma vez como faço as alterações no programa agradeço. Obrigado.

          4. 0

            Olá Carlos!
            Seria bem interessante você começar a aprender, para que possa criar seus próprios programas e soluções. Comece vendo os tutoriais na internet de como programar em assembly e depois em “C”.
            Adquira uma placa experimental, um pic, resistores, fonte de alimentação de 5 volts, e baixe um compilador (asm ou C). Tente fazer os exercícios do tipo ‘pisca led’. Leia os datasheets do pic escolhido. Com o tempo vai passando para programas mais complexos.
            Como disse, a falta de tempo é um grande problema, creio que para a maioria de nós.
            Assim que tiver um pouco vou ver o que pode ser feito.
            Cláudio

          5. 0

            Sim Larios, obrigado você teria algum curso ou video aulas que indica pode ser do youtube mesmo, obrigado, agradeço!

  2. 0

    Bom dia Larios.

    Seria possível vc fazer este projeto para bateria de 6v ?

    Desde já agradeço .

    Genir Macagnan

    Toledo PR.

    1. 0

      Olá Larios, montei o projeto estou, só não tive tempo de ligar ele na mesa ainda mas assim que tiver te dou um retorno avisando como esta o funcionamento, agradeço muito de coração obrigado por compartilhar seus projetos que são muito bons, parabéns!

  3. 0

    lario esqueci este relé irá desligar o primario do trafo o circuito eletronico vai ser alimentado neste caso pela bateria.
    carregador desconectado da bateria não fornece corrente.

  4. 0

    lario estes são os seguintes dados do carregador,tensão 14,5vcc trafo em torno 60a e é onda completa.os diodos em questão são de uso veicular parafusado em chapa de aluminio. grato

  5. 0

    lario não sei se será possivel voce atender este parecer.como eu ja dei meu comentario sobre circuito protetor de bateria que é muito otimo.desta vez eu gostaria de inverter o estado de tensão deste protetor,por ex eu montei um carregador de bateria com uma corrente consideravel para ajudar manter a carga da bateria enquanto o som está ligado,e agora eu gostaria que quando a tensão estiver em torno de 15v quero que o relé desliga e quando a tensão cair por volta de 12,5v o relé liga novamente.voce poderá atender seu amigo? valeu

    1. 0

      Olá José!
      Você estará usando um transformador + retificadores para carregar a bateria? Quantos amperes e a voltagem de saída deste transformador? Ponte completa na retificação ou meia onda?
      Claudio

    1. 0

      Olá Josivanio!
      Você se refere a desenho para placa de circuito impresso? Se for, tenho usado o PcbExpress para fazer placas pequenas manualmente. Alguns usam o Proteus, CAD EAGLE, etc, o quais tem roteadores automáticos, mas não estou muito familiarizado com eles.
      Cláudio

  6. 0

    bom dia lario muitissimo thanks por humildimente atender nossos sinceros pedidos,estarei gravando o pic estalando no veiculo e de emediato lhe enviando os resultado esperado. agora tornou_se um projeto multiuso , pois pode ser empregado tambem em monitoramento de carga de bateria de sistema solar entre outro so usar a imaginação.lario meus valorosos elogios.jose luiz

Comments are closed.