FAÇA UM RECEPTOR DE 4 CANAIS POR CONTROLE REMOTO INFRAVERMELHO – C/ PIC 12F675 – PROTOCOLO NEC (REF103)

Gostaria de controlar equipamentos a distâncias pequenas, usando um controle remoto infravermelho, destes de TV? Com capacidade de acionar até 4 aparelhos diferentes? então, veja este artigo…

Existem muitos circuitos interessantes na Internet, usando controles remotos. Um deles, oferece o recurso de controlar até 3 canais com um pic pequeno. Pensei também em montar algo desta natureza, mas usando uma maior capacidade que um pequeno pic 12f675 pode oferecer: 4 canais!

Veja o esquema abaixo:

Muitos hoje tem em suas salas, controles remotos para satélite, de protocolo geralmente ‘NEC’. Poderá usa-lo para controlar cargas no ambiente, como ventiladores, abajures, luminarias ou qualquer outro equipamento que deseje controlar.
Foi feito de maneira que possamos aprender até 4 teclas do controle remoto, de preferência, teclas não usadas, para que não ocorra o acionamento de mais de um equipamento.
Também, é igualmente possível escolher por programação, se o rele do canal escolhido atuará de forma ‘pulso’ ou ‘retenção’.

Vamos ver, então, como se procede a programação:

1) Aperte o botão ‘Prog’ por 2 segundos. Começará a piscar o led ‘Prog’ de forma normal. O led do canal 1 se acende.
2) Aperte uma tecla do controle, da sua escolha, que deseje gravar na Eeprom, para comandar o canal 1. Ao ser aceito, apagará o led do canal 1 e acenderá o led do canal 2.
3) Aperte um outra tecla do controle, para comandar o canal 2.
Ao ser aceito, apagará o led do canal 2 e acenderá o led do canal 3.
4) Novamente, aperte uma outra tecla do controle, para comandar o canal 3. Ao ser aceito, apagará o led do canal 3 e acenderá o led do canal 4.
5) E finalmente, aperte uma última tecla do controle, para comandar o canal 4. Ao ser aceito, apagará o led do canal 4 e o led ‘Prog’ começará a piscar de forma mais rápida. Isto indica que entrou na programação do ‘modo de operação’.

Siga os seguintes passos para escolher entre atuação por ‘Pulso’ ou ‘Retenção’:
1) Aperte uma das teclas do controle que foi gravada. A cada aperto, o led do canal correspondente acenderá ou apagará. Deixando aceso será modo ‘pulso’ e deixando apagado será modo ‘retenção’ para este canal.
2) Repita com as outras 3 teclas que foram gravadas.
3) Feito a gravação, aperte momentaneamente o botão ‘Prog’ para sair do modo de programação.
Caso programe uma tecla que não desejava, aperte qualquer tecla varias vezes, até começar a piscar rápido o led ‘Prog’.
Então, aperte brevemente o botão ‘Prog’ para sair de programação. Refaça os passos com as teclas corretas.
Atenção: Aprenda teclas diferentes. Se for aprendido 2 ou mais teclas iguais, somente a primeira que for aprendida é que funcionará.

Usando o receptor de 4 canais:
Ao apertar no controle remoto uma tecla previamente gravada, ela acionará uma das saídas, em modo pulso ou retenção, dependendo de como foi programado. Os reles devem ter condições de suportar as cargas de correntes em seus contatos. Poderá controlar 4 cargas diferentes, como ventiladores, abajures, luminárias em geral, bem como outros aparelhos eletrodomésticos.
Nada impede de controlar cargas DC também, visto que os contatos dos reles, nos canais, são isolados entre si.
Use controle remoto com protocolo ‘NEC’ apenas. Outros protocolos não irão funcionar.

Para a recepção do protocolo ‘NEC’ foi usado o timer 1 para medir os tempos e determinar se o bit recebido é 1 ou 0. Este protocolo tem como característica um cabeçalho de 9 milisegundos, seguido por um período de 4,5 milisegundos de pausa, antes do envio do primeiro bit. Temos 8 bits de endereços , seguidos de 8 bits de endereço invertidos, mais 8 bits de comandos e 8 bit de comandos invertidos. É a distancia entre pulsos que determina um ‘0’ ou ‘1’. Se a tecla for mantida apertada, será enviada a primeira transmissão completa, seguida de transmissões com apenas o cabeçalho e um bit ‘1’, repetindo a cada 110 milisegundos.
Já o timer 0, foi usado em modo de interrupção, para testar o botão ‘Prog’ a cada 65 mseg, acionar o led ‘Prog’ em piscadas, normais e rápidas, e atuar contadores de tempo.
A rotina foi mantida bem simples, com muitas repetições, mas facilmente compreensíveis. Apesar disto, ainda sobram muitas linhas de flash.
Com respeito alimentação de tensão para o circuito, providencie uma fonte com transformador de 12 volts, bem como diodos retificadores, capacitores de filtro e regulador 7805 para os 5 volts do PIC.

Obs. Este dispositivo é apenas didático, sendo montado apenas em protoboard e sendo sujeito a bugs não identificados. O hex gerado poderá ser usado para gravar também no Pic 12f629.

Segue o arquivo ASM (atualizado em 12/08/13):

rx_4c_infra_nec_v1_asm

Segue o arquivo HEX:

rx_4c_infra_nec_v1_hex

Veja também, esta versão que utiliza triacs na saída, mas com o mesmo Hex -> Esquema com triacs

Agora está também disponível em arquivo “C” para os que não são muito fãs do Assembly. Segue pasta zipada com os arquivos em “C”:

INFRA_NEC_4C_C

Segue o desenho da placa de circuito impresso, uma gentileza realizada pelo colaborador ‘FOXCONN’, a quem agradecemos:

CONTROLE 675 IR NEC disponivel

Segue abaixo, o esquema para acionamento de 2 motores de 12 volts (note que a tensão poderá ser alterada visto que estamos usando reles), com o objetivo didático de acionar uma persiana de janela. Após a carga do Hex no chip, deverá ser gravado 4 teclas de um controle remoto (padrão NEC), todas em modo ‘pulso’. Usa-se reed switch ou microchaves para fins de curso (proteção), os quais, ao acionar, cortam a polarização do transistor que aciona o respectivo rele:

CR_PERSIANA_ELET

Manuais:

Pic 12f675
Protocolo NEC

Curiosidades:
Petróleo — métodos de extração
Controle remoto e o gás de efeito estufa
Cirurgia robótica
Imitação das asas da gaivota
O passado e o presente dos brinquedos
Tortura à venda
“Ouro vermelho” do Mediterrâneo
Assista videos educativos

Outros assuntos:
Como criar filhos bondosos num mundo egoísta?
Como acabar com a tática do silêncio
Os milagres são possíveis – 3 objeções
Como enfrentar o bullying sem ter de partir para a briga (animação)
Como criar filhos responsáveis
Como administrar o seu dinheiro
Ensine valores morais a seus filhos
Ensine seus filhos bons principios com atividades de colorir
Como posso ter ânimo para exercitar
Como posso controlar meu peso?
Entrevista com um bioquímico
Adolescentes- O que fazer se estou sofrendo bullying?
Como evitar ferir com palavras?
Como tratar seu cônjuge com respeito?

Até o próximo artigo!!!

83 comments on “FAÇA UM RECEPTOR DE 4 CANAIS POR CONTROLE REMOTO INFRAVERMELHO – C/ PIC 12F675 – PROTOCOLO NEC (REF103)

  1. lario boa noite: quero montar este circuito,voce me orienta fazer com o pic 12f675 ou 629?
    se aperto uma tecla para ligar o rele,como faço para desliga_lo? obrigado

    1. Olá José Luiz! O arquivo hex do blog está compilado para o 12f675. Você pode programar 4 teclas de um controle remoto infravermelho (padrão Nec somente, como o usado no receptor de satélite Elsys), e escolher se atuarão em modo ‘pulso’ ou ‘retenção’. Em modo ‘ pulso’, apertou irá ligar e soltando irá desligar. Em modo ‘retenção’, apertando uma vez irá ligar e apertando outra vez irá desligar.
      Cláudio

    1. Olá Liliano!
      Eu pessoalmente não gosto de sistema microcontrolados ligados direto a rede, mas irei ver isto em um artigo futuro.
      Claudio

  2. Boa tarde Claudio. Você desenvolveu algum projeto em que utilizou as 1024 divisões do conversor AD? Gostaria de saber se possui algum projeto com um programa que tenha feito isso usando este recurso, pois estou tentando usar e não consigo. Gostaria de fazer um voltímetro e utilizar esse recurso mostrando num LCD, por exemplo medindo 5 volts que em 1024 divisões fica um salto de 0,004 mV, mas só acho projetos que dividem em 255 valores. Poderia me ajudar? Lembrando que não sei inglês, só o basicão, daí não posso entender o datasheet.

    1. Olá Deivid!
      Para obter precisão usando 1024 bits do AD, com certeza, você terá de usar a biblioteca de ponto flutuante. Creio que os projetos que usam 255 valores visam facilitar os cálculos com matemática de ponto fixo. Outra forma, seria a de usar uma tensão de referência de 4,096 volts, fornecendo valores redondos para facilitar os cálculos. Só que neste caso, a escala irá de 0 a 4,096 volts. Digamos que trabalhar com AD é um pouco chato!!!
      Cláudio

  3. olá Claudio bom dia , peço uma ajuda sua , montei no sábado esse circuito e na hora de programar os botões do controle funciona certinho , mas na hora de definir a função de pulso/retenção ele não responde direito e quando termino os canais 2, 3 e 4 funciona mais ou menos direito e o canal 1 não funciona . o que pode ser ??
    o receptor de infravermelho eu tirei de um mini helicóptero velho ( rsrs ) e testei com controles diferentes ( acho que não é os controles pois na hora de programar funciona 100% ) .

    1. Olá Michel!
      Por favor, defina melhor a expressão ‘mais ou menos’. O canal 1 não opera nada? Fica direto? Gravou os mesmo número? De um descritivo do que está acontecendo na sua montagem.
      Claudio

      1. tem hora que funciona e hora não, as vezes tem que ficar esperando uns segundos para apertar o botão , tem hora que tem que apertar 2 vezes o mesmo botão para configurar . gravei números diferentes . o canal 1 só funciona na primeira configuração e depois nada . já tentei vários botões diferentes .

    2. Olá Michael!
      Ok. Realmente, as cezes demorava para programar a função pulso/reset. Alterei o asm e o hex. Por favor, recarregue o novo hex e teste se está a contento.
      Cláudio

      1. olá claudio , desculpe pela demora . gravei o pic com esse novo hex mas continua dando problema . chegou hoje um receptor infravermelho KSM603 que comprei no solda fria mas continua dando problemas .

        obs: estou usando o pic 12f629 . será que é isso?

        1. Olá Michel! Vamos tirar a prova. Você poderia eliminar do código ASM, por comentar a linha desta forma:

          ; MOVLW .0
          ; MOVWF ANSEL

          , logo no ínicio do programa e substitua o arquivo include de 12f675 para 12 f629, desta forma:

          LIST P=12f629 , R=DEC
          INCLUDE “P12F629.INC”

          Depois recompile e use o arquivo HEX para gravar o teu 12f629.
          Se funcionar desta forma…

          Cláudio

          1. bom dia claudio , testei aqui e deu um efeito um pouco diferente mas continua não respondendo direito e o canal 1 está funcionando dessa vez . tira uma dúvida sobre o controle: se funciona certinho na primeira configuração é porque é compatível ?? vou comprar um 12f675 na próxima vez que pedir material aqui para a firma e testarei assim que chegar . obrigado pela sua atenção e até mais .

          2. Olá Michel!
            Infelizmente estou sem 12f675 para testar. Peguei um lote que em 2 gravações seguidas já pifaram. Está acontecendo muito isto. Já com os 16f628a, tenho um que tem mais de 3 anos gravando e regravando sem problemas. Verifique se o seu controle realmente é padrão ‘Nec’ (controle Elsys, remoto de Semp,alguns LG). Os teste que fiz foi sobre o 12f675 e roda bem com o novo HEX.
            Cláudio

  4. amigo muito bom este projeto , agora seria interessante pegar o projeto do dimeer e ao inves de controlar a carga como dimmer acionar igual a este projeto , ou seja 4 canais com tiac seria interessane tb .
    Sucesso nos projetos amigo que Deus te ilumine cada vez mais

Comments are closed.

Back To Top