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

1

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!!!

1

61 comments

  1. 0

    Olá Claudio! Parabéns pelos projetos,eu queria saber se é possível fazer uma alteração.
    Quando o led 1 ficar aceso,ao acionar o led 2 o led 1 vai apagar.E ao contrário ,quando o led 2 estiver aceso, só vai apagar quando acionar o led 1.É possível?Valeu!

    1. 0

      Olá Geraldo!
      Você terá que alterar a rotina com cabeçalho ‘acionar saídas conforme programação’ conforme porção abaixo:

      //=============================================================================
      // ACIONAR SAÍDAS CONFORME PROGRAMAÇÃO
      //==============================================================================

      De:

      if((!flag_prog)&&(flag_rok)){
      if(mem(0)){
      if(read_eeprom(10)){s1=1;flag_m1=1;cnt1=TLIGADO;}
      else{s1=!s1; flag_m1=0;}
      }
      else
      if(mem(2)){
      if(read_eeprom(11)){s2=1;flag_m2=1;cnt2=TLIGADO;}
      else{s2=!s2; flag_m2=0;}
      }

      else
      if(mem(4)){
      if(read_eeprom(12)){s3=1;flag_m3=1;cnt3=TLIGADO;}
      else{s3=!s3; flag_m3=0;}
      }
      .
      .
      .

      Para:

      //=============================================================================
      // ACIONAR SAÍDAS CONFORME PROGRAMAÇÃO
      //==============================================================================

      if((!flag_prog)&&(flag_rok)){
      if(mem(0)){
      if(read_eeprom(10)){s1=1;flag_m1=1;cnt1=TLIGADO;}
      else{s1=1; s2=0; flag_m1=0;} //alterado aqui para ligar s1 e desligar s2
      }
      else
      if(mem(2)){
      if(read_eeprom(11)){s2=1;flag_m2=1;cnt2=TLIGADO;}
      else{s2=1;s1=0; flag_m2=0;}//alterado aqui para ligar s2 e desligar s1
      }

      else
      if(mem(4)){
      if(read_eeprom(12)){s3=1;flag_m3=1;cnt3=TLIGADO;}
      else{s3=!s3; flag_m3=0;}
      }
      .
      .
      .

      Depois compile novamente no CCS C Compiler para obter o novo Hex.
      Não testei mas acredito que deva funcionar.
      Lembrando que estes dois canais devem ser programados para modo retenção para funcionar nesta modificação.

      Cláudio

  2. 0

    olá larios em que linha do código desse programa eu devo alterá para se obter as saídas invertidas(se iniciava em estado baixo para iniciar em estado alto)? ❓

    1. 0

      Olá Morais! Neste código não tem opção específica para mudar de saída normal para invertida. Terá que fazer isto na ‘unha’, trocando em cada linha que tenha menção a saídas.
      Cláudio

    1. 0

      Olá Carlucio!
      Infelizmente, eu não tenho disponível, pois tenho me concentrado no programa ao invés da montagem prática em placa. Mas pode ser que algum colaborador tenha feito. Se for este o caso, alguém poderia fornecer estes arquivos?

      Cláudio

    2. 0

      Montei uma pci e conferi tudo. Ao checar o momento de testar o circuito aciona o rele 1 como um pisca pisca sem comando nenhum dado e não aceita entrar no modo de gravação. Estou utilizando o sensor de ir vs1838b, e também já troquei o pic e gravei o código novamente e continua o problema. Quando se retira o pic da placa não aciona a saída a não ser se eu mandar o 5v no pino 3 referente a saída 1 do rele. O que pode estar fazendo isso? Tem alguma dica?

      1. 0

        Olá Carlucio!
        Eu nunca usei este sensor. Tente ver no datasheet se não tem diferença de pinagem. Também alguns sensores necessitam de um resistor pull up, entre 10 a 50 k (do pino out ao vcc). Neste caso, ele talvez esteja ‘meio que aterrando’ , imitando o botão de aprendizado pressionado. Tente conferir se não esqueceu alguma trilha na hora de fazer o desenho da placa, seguindo pino a pino e conferindo.
        Cláudio

      2. 0

        os problemas eram solda fria, não estava chegando tensão de 5v para o ir, so 2,38v no sensor de ir, código de usar era o nec estendido e sensor ir aparentemente havia apresentado defeito. Feito isso esta funcionando.

  3. 0

    Amigo no caso tem como eu alterar o tempo do modo pulso para mias rapido o acionamento e desligamento ? pois ele funciona mas pro que eu preciso tem que ser metade do tempo de espera que esta

    1. 0

      Olá Liliano!
      Em modo pulso é necessário um pequeno tempo em que se mantém ligado a saída até que se receba o novo trem de pulsos. No arquivo “c” temos a seguinte constante que determina este tempo:
      int const TLIGADO=30; //tempo mínimo para manter acionamento com botão apertado

      Se for muito menor, poderá fazer a saída pulsar mesmo com o controle constantemente apertado, pois não dará tempo de receber um novo trem de pulso.
      Se for aumentado, ficará mais tempo ligado após soltar o botão.
      Sugiro que tente reduzir experimentalmente este valor até um que satisfaça a sua necessidade. Terá que ser por tentativa e erro (altere e recompile com o CCS ).

      Cláudio

      1. 0

        mas no caso o que acontece que fico segurando quando solto aidna fica uns milisegundos acionado , então se eu reduzir esse tempo de 30 isso deve resolver , mas esse tempo é 30 segundos ? no caso o modo pulso so fica por 30 segudos armado dai faz uma nova leitura de botão pressionado ?

        1. 0

          Olá Liliano!
          O tempo relativo a constante TLIGADO foi obtido experimentalmente no desenvolvimento. Eu não sei informar quantos milissegundos exatos corresponde, mas é um pouco mais de 10 ms. Portanto, não é 30 segundos como possa ter imaginado. Na realidade, esta constante determina quanto loops do while principal precisam ser feitos para então desligar uma saída acionada em modo pulso. Com valor 30 teremos:
          30 x 0,01 seg = 0,3 segundos (300 ms) aproximadamente, já que tem um pouco mais de 10 ms em cada loop.

          A recepção e decodificação acontece por interrupção por mudança de estado da porta de entrada do infrared, mas a interpretação se foi recebida ou não, ocorre nos ‘ loops’ da rotina principal, a cada 10 ms.
          Dito de outra forma, a cada 10 ms é verificado se existe uma transmissão recebida e lido qual botão foi pressionado no controle.
          Mas o tempo de uma transmissão de código do tx demora muito mais que 10 ms ( a cada 110 ms é enviado um trem de pulsos pelo tx).
          Portanto, o programa tem que manter a saída em modo pulso acionada até poder receber um novo trem de pulsos com a informação do novo estado dos botões. Pela lógica, o valor de TLIGADO
          não poderá ser menor que 11 (110 ms).
          Sugiro que tente alterar para 15 e ver se funciona a contento, pois irá reduzir a metade deste tempo. Um detalhe importante é que os loops da rotina principal podem não ter tempos iguais devido as interrupções e os acionamentos. Portanto, poderá acontecer que com um valor como 15 ele funcione, mas as vezes fique instável, piscando uma saída, sendo que devia continuar acionada estando o botão do tx acionado direto. Neste caso, terá que alterar para 16, e ir mudando até obter um valor estável.
          Espero que tenha entendido alguma coisa do acima, porque sei que as vezes é muito difícil passar uma informação de forma compreensível para outros.

          Cláudio

          1. 0

            Muito obrigado melhor explicação que essa impossivel , vou ir tentando então ate achar o melhor valor obrigado e Fique com Jesus .

  4. 0

    Olá Claudio montei este receptor e usei o fonte para TX Sony e o mesmo funcionou muito bem só uma obs o controle remoto que usei é o do som do meu carro o modelo do tx é RM-X211 agora vou usar para acender e apagar a luz de cortesia rsrsrssr que de tanto ligar e desligar o botão original dela ja esta meio que falhando.

    Obrigado Edmilson

  5. 0

    Caro Cláudio, Parabéns! seu projeto é muito legal e tem me ajudado bastante, contudo, estou precisando da sua ajuda para compreende-lo melhor, estou precisando ler o código do controle e imprimir esse código na porta RS232, gostaria de saber onde e como o código é armazenado?
    Obrigado!

    1. 0

      Olá José! Obrigado por suas expressões de apreço pelo trabalho deste blog! Quando ocorre uma recepção de um controle, ele é recebido no buffer[0] e buffer[2], sendo que buffer[1] e [3] tem a cópia invertida para conferencia (exceto versão ‘estendida’). Poderá pegar seu conteúdo e direcionar para uma rotina de serial por software, a qual enviará por meio de um dos pinos para um ci 232 e deste para um PC pela porta serial DB9. Como todos os pinos já foram utilizados, terá que usar um pic com mais pinos, ou mesmo, eliminar a rotina de saída para um dos canais, usando este para a serial. Os controles que são gravados ficam armazenados na EEprom interna , e quando ocorre uma recepção, ela é comparada com os controles gravados na EEprom, e se for igual, aciona a saída correspondente . Para entender o protocolo NEC , poderá fazer algumas pesquisas na internet e estudar como o programa fez a captação deste sinal.
      Cláudio

      1. 0

        Cláudio, muito obrigado pela a atenção em esclarecer minha dúvida!
        Ainda não consegui pegar o dado correto, apenas 00, acho que estou imprimindo o valor antes da variável receber um valor e depois de ser resetada. Você sabe dizer em que parte do programa eu posso pegar o valor após o recebimento do sinal? A “flag_rok” é a flag responsável pela leitura do sinal?
        Mais uma vez, muito obrigado!

        1. 0

          Olá José! Quando o flag_rok for = 1 então teremos uma recepção. Poderá tentar tirar na parte da rotina que faz a comparação com a eeprom. Logo após a porção de código:

          //=============================================================================
          // ACIONAR SAÍDAS CONFORME PROGRAMAÇÃO
          //==============================================================================

          if((!flag_prog)&&(flag_rok)){

          //coloque aqui a rotina para pegar o valor do buffer e enviar pela serial

          if(mem(0)){

          Cláudio

          1. 0

            Cláudio, mais uma vez muito obrigado pela sua ajuda, consegui resolver o problema, havia testado coletar o código exatamente nesse ponto e não tive sucesso, acabei descobrindo que o fototransistor estava com problema 😡 !
            Mais uma vez, obrigado!
            jose emilio

  6. 0

    Amigo seria possivel usando o site que vc postou dos protocolos SB eu acho mudar o protocolo NEC para RC5 fiquei nesta duvida , seria até bom se for possivel pois assim a pessoa pode escolher o protocolo que vai trabalhar e compliar o micro ja com o devido protocolo , assim como vc fez no RF colocou vairas opções tipo ht6p20B , o hopcode e outros seria possivel nessa mudar o protocolo ?
    Desde ja agradeço

    1. 0

      Olá Liliano!
      Como disse anteriormente, existem muitos protocolos. Para piorar a situação, são de formatos e tamanhos totalmente diferentes entre si. Fazer uma biblioteca com todos estes protocolos está fora de cogitação para mim, pois exigiria muito tempo. Quanto ao RC5 , não tenho nada pronto que pudesse ser útil. Quem sabe, em um futuro artigo, tendo tempo, possa analisar este protocolo.
      Cláudio

      1. 0

        Amigo te intendo so te pergunto como eu faço pois andei mechendo em uns projetos seus e são bem claros e detalhados por isso acredito que posso fazer mais não tenho muito experiencia , então eu na minha inesperiencia achei que fosse apenas mudar os bits de forma que identifique o protocolo memso assim tenho estudado esse codigo então conto com sua ajuda se possivel me indicar como eu faço , onde tenho que alterar

        1. 0

          Olá Liliano!
          Em relação aos protocolos já postados, como o Nec e o Sony, não saberia ainda dizer o que tem que mudar. Precisaria estudar o protocolo e ver qual a melhor maneira de decodifica-lo.
          Talvez envolva reescrever inteiramente as linhas de código.
          Claudio

          1. 0

            Ta certo amigo eu te agradeço muito , vou dar umas mexidas e qualqeur acerto te comunico , tem um projeto que encontei na internet um clap swicth mas foi programado para 12f683 então resolvi mudar sera que posso postar ele aqui pois é uma versão modificada do projeto , eu fiz a modificação mas não o projeto em si

    2. 0

      Amigo segue umas fotos da placa que eu fiz se quiser postar no blog , utilizei a ideia do seu projeto e fiz so umas mudanças em relação ao esquema e acrescentei uma fonte chaveda direto na mesma placa se quiser eu te envio o layout ok

      https://www.dropbox.com/s/3vmencv4wxbhzlp/20qmbye.jpg?dl=0

      https://www.dropbox.com/s/rcdlprc7pz5wjjv/23lgrxz.jpg?dl=0

      não sei como postar imagem por aqui dai segue o link

      [img]http://i62.tinypic.com/2uikd1t.jpg[/img]

      [img]http://i57.tinypic.com/27xo2so.jpg[/img]

      [img]http://i60.tinypic.com/23lgrxz.jpg[/img]

      [img]http://i62.tinypic.com/20qmbye.jpg[/img]

      [img]http://i59.tinypic.com/2iitnyw.jpg[/img]

  7. 0

    Peço mais uma vez sua ajuda neste projeto amigo a um tempo atras coloquei a duvida sobre controlar um motor com IR sendo que usaria sensor fim de curso dai vc me veio com a ideia de usar em modo pulso bem funcional so tem um porem a chance do usuario se irritar com o manter do botão pressioando , dai te pergunto não ha possibilidade de mudar este sistema e deixa-lo para modo retenção 2 canais e 2 canais para o fim de curso assim com um simples pressionar giraria em um sentido e ao chegar no fim ele desligaria ao apertar o outro botão ele inverteria todo o sistema . ate pensei na possibilidade do RESET mas neste projeto ele ja utilizado pois se pudesse colocar um fim de curso e resetar o micro ele desligaria a saida assim ficaria funcional tb tipo um sistema IR de 2 canais com o reset opcional ja resolveria todo o caso obrigado amigo

    1. 0

      Olá Liliano!
      Sua necessidade então seria 2 canais em modo de retenção, com o reset funcionando para ligar o fim de curso, certo? Note que o ‘reset’ teria que ser momentâneo, talvez com o uso de um capacitor em série, ou outro sistema (monoestável). Com 2 canais para receber os fins de curso não haveria esta necessidade, e reduziria as peças, mas aumentaria o número de fios.
      Cláudio

      1. 0

        amigo preciso que acione o motor e quando chegar nas extremidades o motor se desligue , tipo um fim de curso para cada lado eu pensei no reset por ser bem pratico e permitindo usar as 4 portas com opção de 2 motores ou ate mesmo usar o pino analogico do 12f675 e usar variação de resistencia acho que daria certo tb so não sei na parte de programar , a principio preciso de 2 saidas em retenção com 2 fim de curso sendo que ao chegar em um deles desliga o motor e fica parado

      2. 0

        Seria muito dificil separar o reset ou ate mesmo direcionar 2 portas para o fim decurso ou indo mais alem da imaginação na mesma porta de entrada do receptor IR colocar os fins de curso ?

        1. 0

          Olá Liliano! Sobre usar o reset, se você tem 1 motor já operando para abrir uma persiana, por ex., e então você acionar o outro botão para fechar uma segunda persiana ( o outro motor), quando o primeiro abrir completamente irá resetar e parar o movimento do segundo motor que estava fechando, deixando o comando incompleto.
          Usar entrada de sinal do infrared é inviável, pois os fins de curso seriam ligados ao gnd assim que chegasse ao seu limite máximo, curto circuitando o sinal.
          Talvez se possa pensar é usar as saídas para os motores (‘frente/tras’) também como entradas para os fins de curso (aciona ‘frente’ como saída e ‘tras’ como entrada do fim de curso, idem quando aciona ‘tras’ , usando ‘frente’ como entrada).
          Cláudio

          1. 0

            Olá Liliano! Na realidade, não é ‘um motor desligando outro’ mas o lado passivo (ex. ‘frente pino 3’ – em nivel ‘0’ – ligado ao acionamento do rele para movimento a frente) desligando o lado ativo(ex. ‘tras pino 2’ – nivel ‘1’ – já acionando o rele para tras) de um mesmo motor. Quando tiver um tempo para montar em protoboard, irei fazer uns testes e postarei no futuro.
            Cláudio

          2. 0

            Mas amigo tem como me dizer como fazer pois preciso mudar isso , pensei em mesclar o codigo do sistema que vc fez do controle de portão mas em RF so precisava que vc em IR dai pensei em pegar a parte da saida e analisar .

          3. 0

            Olá Liliano! Não sei ainda como faremos esta mudança. Temos que analisar melhor para ver qual processo pode ser utilizado para fazer isto. Mas fique a vontade para fazer suas tentativas! Irá ajuda-lo a se desenvolver na ‘arte de programação’!
            Cláudio

          4. 0

            Olá Liliano!
            Certamente. Apenas a maneira de aprendizado deverá ser diferente. Você falou de 2 botões com retenção. Apertando uma vez, abre e outra vez fecha (se estiver abrindo/fechando , irá parar)? Ou seria um botão para fechar e outro para abrir?
            Cláudio

          5. 0

            Amigo então justamente seria assim um botão para abrir e outro para fechar mas se ficar mais facil apenas um botão para fazer todo o trabalho mas teria a necessidade de pressionar ele mais vezes , tipo abrir , para fechar , de preferencia 2 botões ja daria muito certo agora gostei da ideia de usar a mesma saida como entrada do sensor assim poderia ser feito o controle de 2 motores idependentes . so não quero te dar trabalho amigo se puder fazer desta maneira de 2 botões ta de otima ajuda

  8. 0

    Hi

    Thank you for project remote control learning control by remote format NEC I’m interested in circuit if you can made project vontrol by sony remote 8 ch. use pic16f628a I really like diy

    thank you so much

  9. 0

    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. 0

      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

  10. 0

    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. 0

      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. 0

        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. 0

            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. 0

          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. 0

            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. 0

            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 ?

  11. 0

    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. 0

      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. 0

        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

  12. 0

    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. 0

      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. 0

        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. 0

      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

  13. 0

    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.