DIMMER AC COM CONTROLE REMOTO INFRARED (PROTOCOLO ‘NEC’) – COM PIC 12F675 (REF100)

Que tal usar o controle remoto de sua TV para controlar outros equipamentos, como, por ex., um dimmer? Veja mais…

Existem muitíssimos protocolos para controle remotos infravermelhos para TV, Receptor de Satelites, DVDs, etc. Mas nesta montagem, optou-se pelo padrão ‘Nec’ usado em TVs LG, Semp, Elsys, etc. A idéia é bem simples: Gravar 4 teclas de um controle remoto para acionar esta montagem, controlando uma lampada ou outro equipamento resistivo ligado a rede elétrica. Veja o esquema abaixo:

Para receber o sinal oriundo do controle remoto, foi usado um receptor infrared retirado de uma placa de TV, que trabalha com frequência de 38khz. Existem vários modelos disponíveis no mercado, apropriados para este padrão ‘Nec’. O restante do circuito, já foi usado no receptor de controle remoto via RF. Convém lembrar da necessidade de ter muito cuidado ao montar este tipo de circuito, que trabalha diretamente ligado a rede. Acidentes podem levar a eletrocução, por isto, se for monta-lo, use um transformador isolador 1:1 , durante os testes, que ajuda muito a evitar choques em relação ao terra. Não tente carregar o chip com o firmware, ligado na rede. Grave fora, com circuito de baixa tensão e depois coloque no circuito.

Como usar?
Primeiro, terá que gravar 4 teclas, que forem mais convenientes, para comandarem 4 funções: aumentar, diminuir, desligar e ligar.
Aperte o botão ‘learn’ e em seguida, aperte a primeira tecla desejada’, e solte ambos. Deverá acender brevemente o led ‘learn’, para indicar que foi gravada a tecla. Prossiga com as outras 3 teclas da mesma forma. Para trocar as teclas memorizadas, aperte o botão ‘learn’ por mais de 8 segundos. Após piscar 3 vezes o led ‘learn’, indicando o apagamento, poderá gravar os novos botões. Caso se tente gravar teclas sem apagar as anteriores, o led ‘learn’ piscará varias vezes e de forma rápida, indicando a necessidade de apagar primeiro a memória.
Obs. Esta montagem é didática, sendo realizado a montagem apenas em placa de protoboard, sujeito a bugs ainda não observados.
Por ter riscos de acidentes elétricos, ficará por conta do montador assumir este risco, usando de normas de segurança adequadas. Este circuito foi previsto para cargas resistivas. Cargas indutivas ou capacitivas poderão ter seu funcionamento alterado, não funcionando corretamente.

Segue o arquivo ASM:

NEC_DIMMER2_ASM

Segue o arquivo HEX:

NEC_DIMMER2_HEX

Segue arquivo com ‘Flow Chart’ do programa, em Excel, gentilmente cedido pelo colaborador Rui Lopes Viana:

PIC_CtlRem_NEC

manuais:
PIC12f675
PROTOCÓLOS DE CONTROLE REMOTO

Curiosidades:
Como lidar com problemas da próstata
Mapeamento do céu: no passado e no presente
Alimentos nutritivos ao seu alcance
Tomar chá à moda chinesa
Como é viver acima das nuvens
Gota — causas e fatores de risco
O projeto maravilhoso da molécula de hemoglobina
O que fazer para dormir melhor
Pressão alta: prevenção e controle
Quem criou as leis que governam o Universo?
Como o árabe tornou-se a lingua dos instruidos
Mestres medievais da astronomia
Faça bom uso de sua curiosidade

Outros assuntos:
Como disciplinar seu filho adolescente
Por que eu me corto?
Desempenhem bem o papel de pais
Como fazer seu segundo casamento dar certo
O que acontece quando morremos?
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!!!

Clique aqui para comentarios/sugestões fora deste tópico

29 comments on “DIMMER AC COM CONTROLE REMOTO INFRARED (PROTOCOLO ‘NEC’) – COM PIC 12F675 (REF100)

  1. ola Claudio,aqui vai uma sugestão.
    esse projeto dimmer ac e ótimo?
    minha sugestão seria invés de usa alta tensão.
    poderia usa um sistema para rotaciona um motorzinho junto a um potenciômetro, sobe desse liga desliga.
    George Lima…

      1. amigo claudio , tenho um projeto que acho que ja te enviei antes de controle IR e que usa protocolo NEC ( RC5 ) , precisaria mudar para modo pulso pois ele serve para 4 canais porem somente em retenção o problema maior é que só tenho o HEX dele dai fiquei imaginando como vc ja manja do protocolo NEC seria possivel a mudança

        1. Olá Liliano!
          Se você não tem o asm, fica difícil. Teria que fazer um projeto novo, usando o mesmo esquema e obtendo informação do que original fazia.
          Claudio

  2. Olá Claudio.
    Aprendo bastante com os seu projetos. Atualmente está um pouco difícil de encontrar algo parecido e no nível dos seus na internete. Espero que sempre tenha motivação para criar coisas simples e ao mesmo tempo complexas como estas para pessoas como nós (eu e outros da NET) que não sabem e querem aprender sozinhos. Parabéns!!
    Com relação ao projeto em questão, poderia explicar como funciona a decodificação da leitura do sinal (rotina IN_1)?
    Um abraço.

    1. Olá Jalves!
      Agradeço seu gentil comentário. O sistema em questão, trabalha com interrupção do timer 0 para disparar a gate do triac e a a interrupção de mudança de estado de pino para carregar o tempo antes do disparo (quando passa por zero). Já o timer 1 é usado para obter a transmissão infravermelho do controle remoto, pegando os valores do tempo de cada pulso padrão NEC e determinando se deve carregar no buffer de recepção (res3…res0) o bit ‘0’ ou o ‘1’. Se o valor obtido na contagem no timer1 for maior que 0x0300, então temos um ‘1’. Se a contagem não chegar a 0x0100, então temos um ‘0’. É na rotina ‘in_1’ que faz esta verificação. Os flags são usados apenas para sequenciar corretamente as leituras.
      Cláudio

    1. Olá Deivid!
      Você terá o tamanho olhando no arquivo Hex compilado.
      Veja esta porção de código hex:

      ………………….
      :1002D00064000030C90000302C218B170034083036
      :1002E000C200FF30C300C30B7329C20B712952290E
      :1002F000CC00030ECB0083120B1C852905080B10C4
      :100300004A0881000B118B169229051283160512DB
      :100310008312FA30013E031D8A29831605168312C3
      :0E0320008B120B114B0E8300CC0E4C0E0900FD
      :02400E00E43F8D
      :024200000000BC
      :00000001FF
      Veja a linha:
      :0E0320008B120B114B0E8300CC0E4C0E0900FD
      Os 2 caracteres após o ponto é a quantidade de caracteres da linha +1 = 2 +1 = 3
      Segue 4 numeros que são o endereço inicial onde serão gravados = 0320 hex = 800 decimal

      800 + 3 = 803 posições de memória usadas.

      Pelo mplab também poderá olhar usando as janelas do debugador.
      Cláudio

      1. Boa tarde Cláudio.
        E pelas janelas do debugador, como seria. Teria como você fazer um tutorial com algumas imagens, mostrando a memoria ocupada por algum programa seu num pic 16F628 por exemplo?

        1. Olá Deivid! Tem muitos bons tutoriais que explicam como usar o Mplab_ide. Mas no assunto em questão, clique na aba superior do Mplab chamada ‘VIEW’ , e ao abrir a caixa, na opção ‘ PROGRAM MEMORY’. Você verá abrir um arquivo com o inteiro código compilado. O programa termina no ponto em que começa a repetir o código ‘3fff addlw 0xff’. Em ‘line’ você terá o tamanho do programa. Veja este exemplo em que temos apenas 407 bytes usadas no programa, com uma memória total de 1024 bytes.

          Cláudio

  3. Amigo Claudio vc já fez algum projeto de gera sons musicais com Pic Porexemplo piano eletrônico,,,,

    1. Olá Neto!
      Ainda não tenho , mas quem sabe , futuramente pensemos em alguma coisa bem simples.
      Claudio

  4. Perfeito projeto , sempre assim quando vc da uma sumida vem com uma grande surpresa e divulga a novidade , agora uma ideia seria possivel este porjeto em um 16f628 para ter mais canais ,não sei se seria e outra coisa o pino 2 vc usou um resistor de 10m ele é necessario , não sei se faz a mesma função de sinc seria isso ?
    pois não é um valor muito usado , amigo mesmo assim um otimo projeto estava lembrando dos primeiros ´projeto e não sei vc mais a cada dia venho aprendendo mais e uma das coisas que aprendi com vc que conhecimento não deve ser guardado .

    1. Olá Liliano! O resistor de 10 M pode ser substituído por dois de 4M7 em série ( não é crítico, de 680k a 10 M), cujo objetivo é detectar o ponto ‘zero’ da senoide da rede e sincronizar os disparos do triac. Quanto a fazer com mais canais, terei que analisar se é possível. Qual dos projetos você encontrou problema e colocando um resistor de 3K9 ficou melhor?
      Claudio

Comments are closed.

Back To Top