FAÇA UM ALARME VEICULAR COM CONTROLE REMOTO RF – COM PIC 12F675 (REF139)

Está procurando um esquema fácil de alarme veicular, com controle remoto RF? Que possa usar estes controles remotos comerciais de alarme/portões? Com um pequeno microcontrolador PIC de 8 pinos?

Quando desejamos construir um alarme veicular (moto/carro/onibus,etc), ficará mais fácil se utilizarmos os recursos internos de um microcontrolador. Com poucos componentes interligados a um pequeno PIC 12f675, facilmente obtemos o resultado desejado. O grande problema, para maioria de nós, é ‘como fazer o programa que rodará no PIC’. Este artigo fornece uma sugestão de programa em ‘C’, que poderá ser uma base para seu próprio projeto (relembrando que sou apenas um ‘hobista’ e não ‘programador profissional’!). Veja o esquema abaixo:

Foi usado um receptor comercial de 433mhz, com um pedaço de fio servindo de antena, para receber os sinais emitidos por transmissores do tipo ‘chaveiro’ também de 433mhz. Outras frequências podem ser usadas, desde que tanto o receptor como os transmissores utilizem a mesma frequência.
O pino 4 do PIC está programado para receber os sinais transmitidos pelos ‘chaveirinhos’. Já no pino 7 temos um misto entre o acionamento do led ‘monitor’ e a entrada do botão de programação ‘learn'(prog). O programa se encarrega de alternar entre a função de ‘entrada’ para ler o botão e como ‘saída’, para acionar as piscadas no led ”monitor’. O pino 5 é uma entrada para disparo do alarme, sendo ligado interruptores nas portas, capô e porta-malas, além de outras fontes de disparo, de forma positiva ou negativa. O pino 2 irá acionar um rele destinado a fazer piscar as setas do carro, sendo usado um rele com duplo contato, de 12 volts na bobina. Para acionar a sirene eletrônica ou a buzina (opção) foi usado outro rele de 12 volts, por meio de um transistor BC548, cuja base é acionada pelo sinal proveniente do pino 3. Também temos outro rele que pode ser usado para cortar a alimentação da bomba de combustível ou que interrompa a alimentação da bobina de ignição, quando ocorrer um disparo do alarme. Foi usado outro BC548 para acionar este rele em seu coletor, sendo que sua base é acionada pelo pino 6 do PIC.
Foi previsto no programa a função ‘rearme’ para quando o alarme se encontrar disparado e alguém tentar desligar a bateria para dar um ‘reset’ no alarme. Se isto ocorrer, o alarme reinicia a sirene, bloqueia bomba/bobina e pisca as setas por mais um período de tempo. Utiliza-se a ultima posição da EEprom para guardar o estado do alarme (disparado=0x00 e não disparado = 0xff).

O led ‘monitor’ indica por suas piscadas que o alarme está ativado. Deverá ficar em lugar visível para quem está de fora do carro, com um indicativo de existência de alarme no veiculo. Quando ocorre um disparo do alarme, ele passa a piscar de forma mais rápida, e continuará, mesmo que pare a sirene após um tempo de disparo. Somente retornará a piscar mais lento quando for acionado o controle remoto para desligar/ligar. Este led também é usado para indicar o aprendizado do controle remoto.

Programando controles remotos:

Aperte o botão ‘LEARN’ momentaneamente. Deverá acender o led monitor. Acione um dos botões do controle remoto. Deverá apagar o led, indicando o aprendizado.

Apagar controles remotos da EEprom:

Aperte o botão ‘LEARN’ por mais de 15 segundos. Irá acender e continue a apertar o botão até o momento em que apagará. Solte o botão ‘LEARN’. Está feito o apagamento! Nenhum controle mais funcionará! Deverá ser seguido os passos de aprendizado dos controles desejados, para voltar a operar o alarme.

O programa em ‘C’ permite que o usuário possa ajustar algumas características de funcionamento e depois recompilar, para gerar o arquivo .hex a ser usado na programação do PIC. Por exemplo: Pode-se mudar de 3 para 2 toques ao ligar, escolher o modelo do chip usado no chaveirinho transmissor, acionamento do alarme de modo continuo ou tempo de 5 minutos, único disparo ou não, etc.
Todos os testes foram feitos com um HT6P20b no chaveirinho. Os outros modelos foram apenas simulados e não foi possível fazer um teste mais abrangente. No caso do chip da família HCS200…301, consegui resultados somente quando programado para baud rate de 400 useg, sem usar ‘hopping code’, fazendo uso apenas do ‘serial number’. Este também foi truncado para 3 bytes, visando usar as mesmas rotinas de escrita/leitura dos outros ci’s.
Ao comprar os controles remotos comerciais, certifique que todos sejam iguais (com o mesmo chip interno, conforme as opções do programa).
Se possível, prefira os que tem HT6P20b internamente. Depois carregue o arquivo hex correspondente ao chip usado, fornecidos abaixo na pasta de arquivos.
Importante lembrar que o PIC a ser usado na programação tenha o seu byte de calibração intacto, do contrário não funcionará nada do programa. Caso tenha perdido, altere o arquivo “C” por descomentar a opção ‘perdi_byte_calibração’ e recompilar. Este colocará um valor provisório para teste. As temporizações poderão ser alteradas visto que o oscilador poderá estar com frequência mais alta ou mais baixa que 4 mhz. Para obter o valor correto do byte de calibração do seu PIC, leia o artigo ‘ Como calibrar a frequência do oscilador interno do pic 12f675/629‘.
O programa tem cabeçalhos que mostram o que cada porção do programa realiza, facilitando mudanças no programa.
Quanto ao tempo que o alarme fica disparado (5min) poderá ser alterado na constante:

byte const TMAX_SIRENE = 8*(5);//sirene ligada

Altere o valor entre parenteses de 1 até o limite de 31 min, como máximo permitido.
Obs. Esta montagem foi realizada apenas em placa de protoboard, sujeita a bug’s ainda não detectados. Está sendo fornecido os arquivos que poderão ser alterados conforme a necessidade dos hobistas. O autor não se responsabiliza por acidentes relacionados a montagem/uso deste alarme, em virtude do objetivo apenas didático do artigo.

Segue pasta com os arquivos “C” (CCS COMPILER V. 3.200) e “HEX”:

ARQUIVOS_ALARME_VEICULAR

Manuais:
Pic 12f675

Outros assuntos:
Por que vencer o perfeccionismo?
Você se exercita o suficiente?
A língua da selva — segredos da comunicação entre os animais
Por que se preocupar com a exposição ao sol?
Conceito equilibrado sobre animais de estimação
Quando um bebê gorila chorou
Tome medidas para melhorar sua saúde
Medicina transfusional — seu futuro está garantido?
Mães saudáveis, bebês saudáveis
Esportes radicais — Vale a pena correr o risco?
Viver sob o controle da superstição

Orientações para uma vida melhor:
Como aproveitar bem seu tempo
Como controlar o estresse
Como proteger seus filhos
Por que continuar? Três razões para não desistir da vida
Qual é o sentido da vida?
“Tenho certeza de que existe um Criador”
A verdade sobre magia, encantamento e feitiçaria
Como posso causar uma boa impressão?
Transtornos de humor – Como obter alívio
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!

35 comments on “FAÇA UM ALARME VEICULAR COM CONTROLE REMOTO RF – COM PIC 12F675 (REF139)

  1. Bom dia. Não entendi como fica a ligação dos sensores. Na entrada positiva eu monto um sensor (uma chave na porta por exemplo)fechando com os 5V da placa ou é um sinal 12V direto da bateria mesmo? E as entradas negativas? Me desculpe se não fui claro sou leigo no assunto. Ah e obrigado pelo ótimo artigo!

    1. Olá Moretti! O objetivo destas entradas + e – é para facilitar a ligação conforme o veículo que o hobista tem. Alguns veículos tem interruptores ligados ao +12volts e a luz de cortesia ao negativo. Outros tem o +12 volts na luz de cortesia e os interruptores ligado ao chassis (-). Assim , escolha a que favoreça no seu caso e deixe desligada as não usadas. Nas portas traseiras geralmente se coloca interruptores adaptados para acionar o alarme ligando ao – (chassis). O mesmo no capo e porta_malas. As entrada positivas podem sim receber +12v direto da bateria porque tem os resistores limitadores.
      Cláudio

  2. Boa noite Larios. Estou tendo um problema no alarme pois após um dia ligado direto ele começa a ligar sozinho sem comando algum do controle!
    Teria uma Solução Grato!

    1. Olá Matheus!
      Eu não entendi bem o seu problema: O alarme dispara? Ou religa se estiver desligado? Se ele for disparado pelos sensores, e for desligado a alimentação irá religar disparado. Será que tem alguma coisa a ver? Por favor, não economize linhas para descrever o seu problema.
      Cláudio

      1. Boa tarde Larios!
        O problema e o seguinte: Ja coloquei o alarme em um carro e o problema é q ele ta rearmando sozinho sem comando
        algum.Isso só acontece depois de um dia de funcionamento até ja comprei outro pic tentei programa-lo e fico na mesma depois de um dia ele rearma.

        Só queria saber se teria uma opinião do que pode ser!
        Grato

        1. Olá Matheus!
          Interessante! Qual o chip do controle remoto (chaveirinho) que está usando? Quando ele fica um dia ligado ele também desliga?
          Quando você diz ‘um dia de funcionamento’ quer dizer: ficou ligado o dia todo e depois você o desligou usando o controle remoto, mas após isto, passando-se um tempo desconhecido, ele rearma sozinho, ficando ligado novamente do ‘nada’? Ou não é nada disto?
          Claudio

          1. Boa tarde!
            O chip que estou utilizando é o HT6p20b. Ele não desliga só esta rearmando do nada,e depois disso começa a rearmar direto se tentar desligar ele rearma de novo.
            Grato!

          2. Olá Matheus! Se tanto desligasse como ligasse sozinho, acharia que fosse algum tipo de interferência na RF. Mas parece que o caso é proveniente de um provável ‘reset’ decorrente de picos na alimentação ocasionadas por indutâncias . Pode ocorrer depois de acionar algum dispositivo elétrico como por exemplo relés, acionados sem ter um diodo em sua bobina. Você colocou o diodo 1n4007 na entrada junto ao 7805 e nas bobinas dos reles? Tente perceber se o defeito se apresenta ao acionar um determinado dispositivo elétrico do carro.
            Cláudio

  3. Olá amigo, estou utilizando um controle remoto Peccinin eu gostaria de saber o Baud rate que você colocou no seu projeto para os controles, o chip interno do meu controle, é um chip da microchip HCS201.
    Aaah, já ia esquecendo… Gostei muito do tópico, ficou muito bom ! 🙂

    1. Olá TJmarino! Com controles usando chip HCS somente funcionarão os que tiverem sido programado para pulso básico de 400 Microsegundos. Não sei dizer qual é a duração da programação do seu controle, apesar de você informar que é da empresa Peccinin. Poderá visualizar a transmissão usando um receptor de 433mhz e um osciloscópio ligando na saída ‘out digital’, para tirar a duvida. Também, lembrando que não operará a parte do ‘hopping code’, sendo usado somente o ‘serial number’ enviado na parte fixa do código.
      Cláudio

  4. Boa noite Larios,
    Fiz a montagem do alarme na placa de circuito impresso e até agora está funcionando corretamente
    de acordo com as suas especificações só gostaria de mudar de 3 para 2 toques e se possível mudar a velocidade dos toques de: suponho 1 segundo para 0,5 segundos é possível ?

    1. Olá Carlos!

      Para alterar de 3 para 2 toques terá que alterar o arquivo ‘c’ na porção de código mostrada abaixo, comentando o define ‘3toques’ por colocar // na frente e recompilar
      o arquivo c novamente usando o compilador CCS.

      // ESCOLHA SE DEVERÁ SER 2 TOQUES OU 3 TOQUES NA SIRENE, PARA INDICAR ‘LIGADO’
      // #DEFINE 3TOQUES // SERÁ 3 TOQUES //<<<<<<comente esta linha aqui!!!!!!!!!!
      // OBS. DESCOMENTE O DEFINE ACIMA PARA 3 TOQUES E COMENTE PARA 2 TOQUES.
      Já para mudar a velocidade dos toques, terá que alterar na porção abaixo de código, trocando 'ts2,3' por ts2,2. Isto reduzira pela metade o tempo do toque. Também terá que recompilar usando o compilador C da CCS.

      //=======================================================================================
      // GERA TOQUE NA SIRENE
      //=======================================================================================
      if (bit_test(flag_1toq)){
      sirene=1;
      seta=1;
      if(bit_test(ts2,3)){ //<<<<<<<<<<<<trocar ts2,3 por 'ts2,2'!!!!!!!!!!
      sirene=0;
      seta=0;
      bit_clear(flag_1toq);
      ++tok;
      }
      }

      #IFDEF 3TOQUES
      if (bit_test(flag_2toq)){ //OPÇÃO 2 TOQUES
      if ((tok==0) || (tok==2)||(tok==4)) { bit_set(flag_1toq);}
      if((tok==1)||(tok==3)){ if (!bit_test(ts2,3)){ ++tok;} //<<<trocar ts2,3 por 'ts2,2'
      }
      if(tok==6) {bit_clear(flag_2toq);}
      }
      #ELSE
      if (bit_test(flag_2toq)){ //OPÇÃO 3 TOQUES
      if ((tok==0) || (tok==2)) { bit_set(flag_1toq);}
      if(tok==1){ if (!bit_test(ts2,3)){ ++tok;} //<<<<<<trocar ts2,3 por 'ts2,2'
      }
      if(tok==4) {bit_clear(flag_2toq);}
      }
      #ENDIF

      //========================================================================================
      Divirta-se!!!!
      Cláudio

Comments are closed.

Back To Top