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. Olá Larios,
    Estou montando um projeto relativamente mais simples com o pic 12f629 porém estou utilizando outro protocolo.É possível que com base no seu programa eu altere os valores de tempo e adapte esse programa
    para o protocolo que desejo?
    Se sim me indique por onde começar pois estou ainda meio perdido em seu programa.
    Agradecido- Alencar

    1. Olá Alencar! A resposta dependerá do tipo de protocolo que irá usar. Se for semelhante, pequenas modificações bastariam. Em outros casos, é melhor começar do zero. Poderá conhecer melhor os protocolos neste excelente site aqui. Com base nele, estude as diferenças e semelhanças com o NEC postado. Daí decida o que fazer. Aviso que é um pouco chato desenvolver na unha estes protocolos. Muitos preferem usar uma estrutura que já tenha bibliotecas prontas para o protocolo desejado, como por exemplo, o Arduino e similares. Alguns compiladores ‘C’ fornecem bibliotecas ou podem ser adquiridas em sites relacionados a este compilador. Verifique junto aos foruns o melhor caminho para você seguir nesta tua empreitada.
      Cláudio

    2. Olá Larios gostaria mais para fins didatico alterar este teu programa para cada tecla apertada mostrar o codigo no display de lcd.Será que é possivel?

      1. Olá Genilsonsa!
        O que você deseja seria um leitor do código enviado pelo controle remoto, geralmente em representação hexadecimal. Não se trata de fazer uma ‘simples modificação’, mas seria um projeto novo, com esta única finalidade, tendo que se acrescentar um display LCD. Ademais, terá que ser programado para o protocolo correto correspondente ao controle remoto que irá usar. Experimente ver outros sites na internet, que talvez já tenham o que você deseja, pois ainda não tenho tal ‘projetinho’.
        Cláudio

    3. Larios eu tenho um controle remoto esse que vende na china que usa no arduino tem 20 teclas eu queria que cada tecla que apertasse escrevia o co´digo do display de lcd.Será que é possivel
      alterar esse código.

  2. Boa-noite!
    Alguém dos amigos que entendam do projeto acima, inclusive linguagem para o 16f628A poderia me prestar assessoria? Gostaria muito de aprender a trabalhar com este projeto.
    Caso sim, fico muito agradecido.

    1. Caro Alederetti, boa noite.
      Tb sou amador na área de programação de microntoladores, embora não tenho a mesma competencia e criatividade do Larios.

      Ao ler sua msg, não entendi claramente a sua dificuldade, mas me coloco a sua disposição para fornecer mais informações sobre PIC16F628a. Att Rui

  3. Claudio, boa-noite!
    Excelente o site e os projetos, meus parabéns.
    Gostaria de tirar umas duvidas contigo do projeto acima, em relação a calculo de componentes do IRM, e a possibilidade de se usar o microcontrolador 16f628a. Você poderia me passar um contato para conversarmos?
    Muito obrigado.

  4. opa amigo vi o esqeuma vou testar so pintou uma duvida o arquivo hex a ser gravado é o mesmo ?
    pois se for sera que vai cortar e o micro vai desabilitar a saida ?

    1. Olá Liliano!
      Sim , o hex é o mesmo. Programe as teclas (4) em modo pulso. Quando chegar no final de curso, cortará a base do transistor e não funcionará para este lado, somente para o oposto.
      Cláudio

Comments are closed.

Back To Top