FAÇA UM RECEPTOR PARA CONTROLE REMOTO INFRAVERMELHO DE 5 CANAIS – COM PIC 12F675 (REF131)

Muitos profissionais necessitam ligar e desligar vários dispositivos elétricos na execução de seu trabalho. Que tal usar um controle remoto de tv ou mesmo similar, para controlar até 5 equipamentos diferentes? Ainda com função de retenção ou pulso individual por canal? Veja mais…

Veja o esquema abaixo:

Esta aplicação é uma variante do receptor de 4 canais para controle remoto infravermelho, sendo que foi eliminado o led ‘prog’ para se obter um ‘quinto’ canal. O interruptor momentâneo (dactilar) para entrar em modo de programação (Prog) ficou junto com a entrada do sinal do controle remoto, no pino 4 (gp3). Quando este botão é apertado por mais de 65 ms, indicará que não se trata de uma pausa na transmissão do controle remoto, mas sim, de uma sinalização para entrar em modo de programação. Afinal, no protocolo NEC empregado aqui, temos pausa máxima de 9 ms (na condição de aterramento ao gnd, ou seja , nivel ‘0’).
Na versão anterior de 4 canais, o led ‘Prog’, não mais usado, piscava de forma lenta para gravar as 4 teclas do controle e depoís, piscava rápido para indicar a programação para retenção ou pulso em cada tecla gravada. Com a alteração para 5 canais, e a inexistência do led ‘Prog’, ao entrar em modo de programação, o próprio led da saída é que passará a piscar, isto somente em modo de gravação das teclas desejadas. Para o ajuste do modo para retenção ou pulso, reapertamos as teclas gravadas, sendo que, se deixamos com o led aceso indicará modo ‘pulso’ para aquela saída e se reapertamos a tecla,apagando, passará a ser modo ‘retenção’. Poderá ser usado reles miniaturas de 12 volts na bobina, com capacidade de 10 amperes nos contatos, sendo suficiente para a maioria das aplicações. Em caso de necessidade de controlar correntes maiores, altere o tipo de rele para maior corrente nos contatos. Quanto a fonte, poderá ser interna com transformador de 12 volts,mais retificadores, capacitores de filtros e regulador 7805 para os 5 volts para o pic. Poderá ser usado também uma fonte externa de parede, com saídas continua de 12 a 13 volts. Nesta versão, estava disponivel um módulo receptor infravermelho usado em aparelhos de tv, um TSOP 1550, logicamente reaproveitado da minha ‘chatarra’ eletrónica.
Quanto ao protocolo ‘NEC’, compreende um periodo inicial de 9 ms em nivel ‘0’, seguido por 4,5 ms em nivel ‘1’, dai em diante, sendo seguido por 32 bits de informação, sendo enviados primeiro o LSB e por ultimo, o MSB. O primeiro byte dos 4 enviados, é o chamado ‘ADDRESS’, seguido pelo ‘ADDRESS INVERTIDO’, ou seja, com os bits invertidos, usado na confêrencia da integridade da transmissão. O Terceiro byte é do chamado ‘COMMAND’ e o quarto, o ‘COMMAND INVERTIDO’, também com o mesmo propósito do segundo byte.
A diferença do bit ‘0’ em relação ao ‘1’ é a seguinte:
Após manter a saída em nível ‘0’ por 560 uS, em seguida, 560 uS em nivel ‘1’ sera entendido como um único bit ‘0’ de informação. Já o bit ‘1’ de informação será uma sequência mantendo a saída em nivel ‘0’ por 560 uS e em seguida, em nivel um por 1950 uS. Após uma transmissão completa, não maís é enviado outra, mas um trem de pulsos chamado de ‘repeat’ a cada 110 ms, sendo composto dos 9 ms(‘0’) + 2,25 ms(‘1’) + 560 us(‘0’). Este ‘repeat’será enviado continuamente, até soltar a tecla apertada do controle remoto.
Os periodos de 9 ms e 4,5 ms devem ser usados para sincronizar a recepção do sinal. Foi usado um buffer de 4 bytes para receber a transmissão, sendo depois confirmado a qualidade da recepção somando os bytes inversos e obtendo 0xff, se corretos. (Obs. Caso esteja tentando usar um controle remoto com padrão ‘NEC’ extendido, não irá funcionar. Neste modelo, para que possa funcionar, NÃO DEVERÁ ser comparado o ADDRESS com ADDRESS INVERTIDO, pois estes não serão complementares, mas uma extensão do endereço. Se for o seu caso, altere a linha de código:
if (!(buffer[0]+buffer[1]+buffer[2]+buffer[3]+0x2)){ flag_rok=1;} por if(!(buffer[2]+buffer[3]+1)){ flag_rok=1;}. )
Os 10 primeiros bytes da EEprom são usados para gravar os ADDRESS+COMMAND para cada tecla (5×2=10). Os próximos 5 bytes da EEprom guardam o modo de operação para cada canal, sendo 0x00 para retenção e 0xff ou 0x01 para pulso.
Caso necessite de usar controle remoto de protocolo Sony de 12 bits ao invés de NEC, poderá ver a pasta zipada citada abaixo.
Atenção: Este dispositivo foi montado e testado apenas em placa de protoboard, sujeito a bugs ainda não observados,sendo fornecido os arquivos que poderão ser alterados segundo a necessidade do hobista.

Segue pasta zipada com os arquivos hex e “C”:

INFRA_NEC_5C_C

Segue arquivo hex (zipado) para recepção da versão estendida:

infra_nec_5c_estendido_c

Segue pasta zipada com opção de protocolo ‘Sony 12 bits’, testado com controle universal _RCA_ _SYSTEMLINK4_ programado com código ‘002’:

infra_sony12b_5c

Manuais:
PIC12F675
Protocolos para controle remoto

Curiosidades:
A verdadeira história da criação
Por que choramos?
A lanterna do vaga-lume
Como aproveitar bem seu tempo
A enigmática cola da aranha
Admire o projeto; conheça o Projetista
O segredo da borboleta bela-dama
A capacidade de armazenamento do DNA
O resistente cérebro do esquilo-do-ártico
Os cosméticos nos tempos bíblicos
“A História não mente”
Sua vida é influenciada pelos astros?

Orientações que promovem a felicidade de casais:
Como controlar as birras
Quando seu casamento não é o que você esperava
A violência doméstica tem solução!
Como tratar o conjuge com respeito
Aprenda a perdoar
Sobreviver ao primeiro ano de casamento
Quando um dos cônjuges tem necessidades especiais
Como evitar ferir com palavras?
Como resolver problemas no casamento
Como criar filhos responsáveis
Como administrar o seu dinheiro
Ensine valores morais a seus filhos

Orientações para adolescentes:
O que fazer se estão falando mal de mim?
Por que eu me corto?
Como posso ter ânimo para exercitar
Como posso controlar meu peso?
Adolescentes- O que fazer se estou sofrendo bullying?
Como posso dar conta de tanta lição de casa?
Por que devo ajudar os outros?
Videos Bíblicos

Até o próximo artigo!!!

61 comments on “FAÇA UM RECEPTOR PARA CONTROLE REMOTO INFRAVERMELHO DE 5 CANAIS – COM PIC 12F675 (REF131)

  1. lario caso esta linha seja alterada,este receptor servirá para o 2 controles protocolo nec, tanto o normal ja conhecido,como padrão nec extendido?ou não?
    gostei deste projeto interessantissimo nota 10 parabens.

    1. Olá José! Sim, irá funcionar para os dois. Na ocasião que postei, nem sequer pensei nisto. Quando tiver uma oportunidade irei acertar isto.
      Cláudio

  2. amigo acho que não vai funcionar mesmo este protocolo nec é o usado em sony e o controle da sky é o protocolo RC5 da philips . por isso não vai dar certo são bits diferentes .

    1. Amigo larios teria como vc fazer a copilação e postar o hex pra eu testar pois não tenho o ccs na minha maquina e quase não usei ele , isso pode ser quando vc tiver um tempinho ok

      1. Olá Liliano!
        Na pasta zipada ‘INFRA_NEC_5C_C’, no artigo, já contém o arquivo hex. Seria para a versão ‘extendida’ que você deseja o hex?
        Cláudio

          1. Olá Liliano! Por favor, veja o artigo novamente. Está a disposição o hex para versão estendido ‘nec’. Note que outros controles remotos que não sejam protocolo ‘nec’ não irão funcionar.
            Cláudio

        1. amigo testei a versão extendia aqui e funciona mas so deu certo com meu controle de um DVD antigo Digix , agora te faço uma pergunta é tão complicado mudar para o protocolo RC5 a philips ?
          da uma olhada neste site de protocolos amigo :

          http://www.sbprojects.com/knowledge/ir/rc5.php

          sera que não teria como mudar pra esse protocolo pois ele aceita muto mais controle remotos usados por ai

          1. Olá Liliano! Infelizmente, existem inúmeros protocolos atualmente sendo usados. Parece que cada empresa quer ter o seu próprio. Isto dificulta fazer projetos que possa atender a todos. A solução é usar o controle remoto universal, que aceita a grande maioria de protocolos. Quanto a mudar para RC5, tenho certeza que outro necessitará do padrão ‘Sony’ ou mesmo RC6 , sem haver fim de fazer novas versões de receptores de controles remotos, no tempo escasso que tenho. Talvez em um futuro projeto possa também ‘testar’ este protocolo.
            Cláudio

          2. ok amigo é verdade isso era pra ser um sistema padronizado , lembro muito bem a sony quando quis lançar a vita vhs beta max so pra diferencia dos outros era uma fita enorme e so cabia no video k7 sony .
            mesmo assim obrigado por me responder amigo eu so lhe pedi pois o protocolo RC5 é muito mais usado pois varias marcas usaram , so que uma coisa que estava comparando aqui é que um controle que gravei no protocolo ]RC5 funcionou com esse protocolo que vc usou NEC extendido . sera que a alguma compatibilidade ?
            uma outra coisa que ia te perguntar mas isso no futuro que vc tiver um tempo sobrando era sobre mesclar o projeo do trava graça com o projeto que vc fez de criar um ci ht6p20b( chaverinho ) em um pic 12f675 , dai vc definia o codigo e o pic fazia o papel dos dois ao inves de ter que usar um pic pro trava graça e o ci HT . isso é muito complicado de ser feito pois eu imagino em inserir um programa dentro do outro mas teria que definir as portas para não ter conflitos e defir no rpograma o que a saida deveria fazer certo ?

  3. ok amigo vou tentar vc usou o ccs como programador certo ?
    outra coisa me diz como faço pra identificar padrão nec extendido ?

    1. Olá Liliano! Boa pergunta! Poderá usar um osciloscópio digital com memória e gravar uma inteira transmissão, e depois analisar o que chegou comparando se o byte 1 é o inverso do byte 2. Senão for, e o restante corresponder ao protocolo, então é um ‘nec extendido’. Ou, tente entrar em contato com o fabricante do controle remoto em busca de informação do protocolo.
      Cláudio

      1. vou verificar sim mas como te falei o controle da sky é padrao RC5 , da philips e o padrão nec é da sony então não vai funcioanar mesmo

  4. amigo montei o circuito tudo certo dai quando pressionei o botão de modo pra gravar o canal 1 fica piscando mas não aceita o o codigo do controle e este controle eu uso em outro sistema que usa o protocolo nec e funciona perfeitamente , ele não sai deste canal o que fazer?

    1. Olá Liliano! Verifique, por favor, a parte que está ligada ao pino 4 do pic. Observe se efetivamente está chegando o sinal do controle remoto neste pino. Em alguns casos, elimine o resistor de 150 ohms do filtro do VCC, ligando direto para teste. Poderá usar um disco piezoelétrico ligado um fio no gnd e o outro, em serie com resistor de 2k2 , no pino 4, para ‘ouvir’ o sinal chegando. Ou do modo ‘chic’, usar um osciloscópio para certificar isto.
      Claudio

      1. amigo no circuito eu alimentei o receptor direto nos 5V e o sinal esta chegando sim o que aconteceu voi de entrar no modo programa e ele não grava o sinal mas pude observar com o multimetro pois este receptor varia a tensão de saide de 5V para menos quando tem recepeção . mesmo assim vou tentar ver aqui . so queira fazer um teste com a alteração da linha que vc falou .

    2. Olá Liliano! Lembrei de algo. Verifique, por favor, se o seu controle não é ‘Padrão NEC extendido’. Caso esteja tentando usar um controle remoto com padrão ‘NEC’ extendido, não irá funcionar. Neste modelo, para que possa funcionar, NÃO DEVERÁ ser comparado o ADDRESS com ADDRESS INVERTIDO, pois estes não serão complementares, mas uma extensão do endereço. Se for o seu caso, altere a linha de código:

      if (!(buffer[0]+buffer[1]+buffer[2]+buffer[3]+0×2)){ flag_rok=1;}

      para esta nova linha :

      if(!(buffer[2]+buffer[3]+1)){ flag_rok=1;}. e então, recompile para obter o novo hex.)
      Cláudio

  5. Obrigada Cláudio, protocolo nec em C é tudo que eu queria. Estou sem computador, mas assim que puder monto o projeto. Vindo de você tenho certeza que está d+. Obrigada por compartilhar seus conhecimentos com a gente.

Comments are closed.

Back To Top