CONTROLE REMOTO 8 CANAIS ON/OFF – PIC 16F628A

Controlar brinquedos por controle remoto tem sido um dos passatempos mais apreciados por crianças e também ‘adultos’. Muitos gastam ‘fortunas’ comprando replicas de carros, locomotivas, etc. Os menos afortunados nas finanças , preferem ser mais ‘economicos’, montando suas proprias réplicas e construindo seus próprios circuitos eletrônicos. Em alguns casos, queremos apenas controlar alguma coisa a distância, como por exemplo, um aparelho colocado no telhado ou em um prédio distante. Será que poderiamos tirar proveito das facilidades de programação de um microcontrolador para fazermos isto? Veja a resposta…

Veja o esquema abaixo:

Este projeto experimental, utiliza 2 PIC’s 16F628A , sendo um no transmissor e outro no receptor. No transmissor, temos 8 chaves ligadas aos pinos do PIC, que quando acionadas, setarão as respectivas saidas no receptor (led 0 a led 7). Esta saidas poderão controlar reles de carga, controlando assim maior potência. Cargas pequenas poderão ser controladas por transistores, também pode-se usar foto acopladores como MOC3021 para controlar triac’s diretamente em corrente alternada (lampadas, motores,etc). Use sua imaginação!!!

O protocolo usado, basicamente envia um startbit, seguido por um numero de 8 bit, correspondente ao ‘NÚMERO IDENTIFICADOR’ do aparelho, após o que, vem os 8 bits correspondentes ao estado dos botões e um intervalos final entre transmissões. A idéia do numero do aparelho, é poder usar varios conjuntos tx + rx de numeros diferentes, sem que um controle o outro (pelo menos em teoria). Este número poderá ser alterado no arquivo asm e deverá ser recompilado para obter o novo arquivo hex.
Um bit ‘0’ é formado por 1 periodo de tempo ‘low’ + 2 periodos de tempo ‘high’ na saida, pino 17. O bit ‘1’ corresponde a 2 periodos de tempo em nivel ‘low’, seguido de 1 periodo de tempo em nivel ‘high’ na saida, pino 17.
A rotina de recepção examina a cada 50 microsegundos o estado do pino 17 (entrada de rf) e se=0 incrementa o contador ‘LC’. Se for =’1′, incrementa o contador ‘HC’. A diferença entre eles corresponde ao bit a ser transferido no contador de saida (Res1,Res0). Em uma recepção bem sucedida, o byte Res0 é comparado com um número fixo do aparelho, e se for igual, irá colocar na saida (Portb), os valores recebidos. Caso cesse a transmissão, os contadores de tempos NOTX1 E NOTX, serão decrementados pela rotina, e , chegando em ‘zero’, irão apagar todas as saidas (clrf portb).

Deverá ser usado transmissor e receptor na frequencia cedida a controle remotos na faixa de 27 mhz . Existe muitos vendidos comercialmente, mas poderão ser também montados. Abaixo temos um exemplo ilustrativo de circuito transmissor e receptor, comum nos sites da internet, (porém, não tendo sido testado por mim, nem tenho algum em especial para recomendar):

Como se trata de uma montagem experimental, foi testada apenas em protoboard, com um tx + rx de 433 mhz, mas, para uso em brinquedos, não é permitido, porque nesta frequencia, poderá atrapalhar o funcionamento de equipamentos como portões, alarmes, etc.

Segue abaixo o arquivo ASM para TX:

CR27_TX_ASM

Segue abaixo o arquivo HEX para TX:

CR27_TX_HEX

Segue abaixo o arquivo ASM para RX:

CR27_RX_ASM

Segue abaixo o arquivo HEX para RX:

CR27_RX_HEX

Adicionalmente, pode-se aproveitar as portas que sobram do portA para colocar uma chave ‘DIP’ externa, com o
objetivo de com um único transmissor, poder controlar vários receptores que usem o mesmo ‘serial number’ escolhido no ASM.
Aquele que tiver a combinação da chave “DIP’ igual a do transmissor é que será acionado naquele momento.
Veja o esquema para esta opção de montagem abaixo:

Como temos 6 bits disponíveis, isto permite usar até 64 receptores em um grupo de mesmo ‘serial number’.
Note que o acionamento é apenas momentâneo, uma vez que paramos de apertar a tecla, a saída do receptor desliga.
Assim, deverá ser previsto circuitos do tipo flip-flop ligados na saída do microcontrolador, quando se desejar funções de ‘retenção’.

Segue o arquivo ASM do TX desta versão com chave ‘DIP’:

CR_TX_8C_SEL_ASM

Segue o arquivo HEX do TX desta versão com chave ‘DIP’:

CR_TX_8C_PROG_HEX

Segue o arquivo ASM do RX desta versão com chave ‘DIP’:

CR_RX_8C_SEL_ASM

Segue o arquivo HEX do RX desta versão com chave ‘DIP’:

CR_RX_8C_PROG_HEX

Em 15/03/2014, foi realizado modificações no receptor para que se possa escolher entre modo pulso ou retenção, alterando o ASM e recompilando. O esquema é o mesmo, apenas foi ajustado o arquivo ASM. Portanto, segue abaixo a pasta com esta nova versão configurável pino a pino de saída, com atualização em 01/12/2015 (eliminado bug que alternava saída em modo retenção se interruptor fosse continuamente acionado):

CR_8C_PROG_RET_v4

Em 16/12/2015 foi feita esta versão abaixo que grava na EEprom a situação das saídas programadas para modo ‘Retenção’, retornando os valores após um reset (como na falta de energia elétrica da rede doméstica):

CR_8C_SEL_RET_V5_EEPROM_FILES

Caso queira uma versão PWM de 8 canais e 5 botões on/off veja o artigo ‘FAÇA UM CONTROLE REMOTO PWM 8 CANAIS (1MS A 2MS) – COM PIC 16F628A’
Caso deseje outra versão PWM de 2 canais e 3 botões on/off, veja o artigo ‘FAÇA UM PEQUENO CONTROLE REMOTO PWM DE 2 CANAIS (1MS A 2MS) – COM PIC 12F675’
Caso deseje ainda outra versão PWM de 2 canais (sendo uma de 0-5v) e 3 botões on/off, veja o artigo ‘FAÇA UM ‘VERSÁTIL’ CONTROLE REMOTO REMOTO – COM PIC12F675’

Curiosidades:
Filas
Petróleo – acabará algum dia?
Gás Natural – energia para o lar
Ponte da torre – Uma entrada para Londres

Outros assuntos:
Qual o objetivo dos pais ao criar os filhos?
Como lidar com os sogros?
Desempenhem bem o papel de pais
Como reagir ao assédio sexual
Como lidar com problemas financeiros e dívidas
Converse com seus filhos sobre sexo

Assista a este vídeo: O que é um amigo de verdade?

Até o próximo artigo!!!

156 comments on “CONTROLE REMOTO 8 CANAIS ON/OFF – PIC 16F628A

  1. olá larios venho lhe incomodar mais uma vez queria saber se é possível modificar CR 8c com deep para controlar 4 servos(1a2ms )e 4 on off?
    no qual controlaria 3servos e o ESC(esc tambem funciona com pwm de 1a2ms ´´testado no esc da hobbyking20A ubec´´ para motores brusheles) o teste foi realizado com a versao (8canal para servo e 5 on/off com mais precisao) funcionou perfetamente,a razao de usar esta versao com 8 canal é porquer tem a deep e que se poderia controlar tanto o aero como o automodelo(para quem usa servos e ESC)e sobraria 4 canais para controle diversos(luzez,perda de alcance do tx(busina)e outros. 😆

    1. Olá Morais!
      Se eu estou entendendo, você pretende usar um mesmo controle para operar 2 dispositivos diferentes (o ‘aero’ e o ‘automodelo’). Funciona sim, se forem usados ora um ora outro, alternando a chave ‘dip’.
      Mas nunca simultaneamente. No momento não poderei fazer isto, mas ficará anotado para um futuro artigo.
      Cláudio

  2. Olá. Eu sou da Romênia. Peço desculpas pela tradução do Google.
    Eu simulado no esquema Proteus com 16F628 e ele funciona perfeitamente, agora vou tentar adaptar-se a dois módulos sobre 27Mhz-Tx – Rx. Você vai comunicar o resultado.
    Bom dia!

    1. Conclusão.

      Simulada por Proteus, ok, todos os pedidos simultaneamente.
      Nós interligados Tx – Rx por 10K resistência – 17-pin 17 e ele funciona.
      Mas não vá comandos 2-3-4 simultaneamente
      Nada pode ser feito em software? ❓

      1. Olá Ata! Estou tendo dificuldade em entender o que está acontecendo. No Proteus funciona, mas ligando pino a pino não funciona, é isto?
        Os interruptores do tx são copiados de uma única vez para o registrador que deslocará para a saída em formato serial. Verifique a ligação deste interruptores e se estão operando a contento. Troque o resistor de 10 k por um de 220 ohms para realizar este teste pino a pino (17 a 17). Se tiver um osciloscópio, analise a forma de onda gerada no pino 17 e veja se ela está de acordo com os interruptores pressionados.
        Cláudio

        1. Olá
          Proteus Simulação.
          [URL=http://www.filehost.ro/30514589/Tx_Rx_rar/]Tx Rx rar[/URL]
          Funcionando OK.

          Construído TX-RX
          só funciona cada comando, e não em conjunto 2-3-4.

          Pelo que eu entendo, foi construído com 433MHz TX, trabalhou vários comandos juntos?
          Alguém realmente fez?

          Desculpe Tradução de Google!

          1. Olá Ata! Se você está usando a versão com chave ‘dip’, e está desejando usar vários conjuntos de controle remoto (tx/rx) juntos , na mesma frequência, não funcionará. Cada conjunto precisará trabalhar com uma frequência diferente (ex. 27,1mhz para um conjunto, 27,3 mhz para outro, etc). Apesar de um não controlar o outro devido ao código da chave ‘dip’, haverá interferência mutua se não usarem frequências diferentes.
            Espero que seja isto, pois estou tendo dificuldade para entender plenamente o seu problema.
            Cláudio

  3. Em primeiro lugar PARABÉNS pelo excelente blog.

    Sou um hobista e adoro projetos de automação e ja havia um tempo q eu vinha procurando um bom projeto de controle remoto como este aki.
    Eu gostaria de saber qual foi o compilador que vc usou, pois baixei o arquivo ASM para interpretar e ir aprendendo mais sobre ele e o meu MPLAB acusou um monte de erros, coomo eu não entendo gostaria de saber c isso varia d ecompilador mesmo e eu posso compilar e mandar gravar sem medo, poderia tbm baixar o arquivo .hex e gravar.

    OBRIGADO.

    1. Olá Anderson! Agradeço por seu comentário de apreço pelo blog.
      Eu tenho usado o Mplab_ide , uma versão mais antiga. Mas o arquivo deve compilar nas versões mais novas, sem maiores problemas. Verifique quais são as mensagens de erro que o compilador apresenta ao compilar e elimine esses erros. Poderia passar quais erros dá? (copie e cole a mensagem para mim poder analisar).
      Cláudio

  4. Bom Dia Claudio…
    poderia pedir um favor a você ???
    Poderia fazer dois arquivos para mim, um RXD e outro TXD…
    Se você puder me manda um E-Mail para que possa
    te explicar melhor…
    Pois tentei achar algo mais não consegui como não manjo muito de programação peço sua ajuda…
    Desde Já te agradeço…

  5. Boa Noite Claudio…
    Seria possível aumenta o sinal para poder ser
    acionado a 1.5 Km de distancia qual circuito
    devo usar ???
    Eu tenho uma antena de 15dbi seria possível
    usar essa antena no envio de sinal ???
    Se possível teria algum esquema para me ajudar…
    Um Abraço e Obrigado…

    1. Olá Wagner! A distância de funcionamento de um controle remoto tem que ver com 3 coisas: Um tx com potencia adequada , um receptor que seja ‘sensível’ para captar sinais fracos com qualidade e antenas devidamente sintonizadas e com bom ganho. Assim, um bom receptor pode compensar um sinal fraco de um transmissor. O uso de uma antena sintonizada corretamente na frequência de transmissão resulta em incrível melhoria na distancia que o sistema opera. Toda esta parte de RF não é o meu forte. Fica por conta do hobista escolher os modelos de rx e tx que desejam usar. Mas caso algum colega, leitor deste blog, que tenha alguma experiência nesta área, que deseja compartilhar conhecimento, fica aberto este espaço para receber dicas, sugestões e esquemas que poderiam ser usados.
      Cláudio

Comments are closed.

Back To Top