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:
Segue abaixo o arquivo HEX para TX:
Segue abaixo o arquivo ASM para RX:
Segue abaixo o arquivo HEX para RX:
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’:
Segue o arquivo HEX do TX desta versão com chave ‘DIP’:
Segue o arquivo ASM do RX desta versão com chave ‘DIP’:
Segue o arquivo HEX do RX desta versão com chave ‘DIP’:
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):
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):
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!!!
Bom dia, claudios.
sou estudante de eletrônica, quero montar o controle remoto que você fez de 8 canais com LED mesmo igual o do seu projeto, eu já tenho os PICs o TX,RX, LEDs, botoes,antena, resistores, comprei tudo, mas não sei nada sobre micro controlador, poderia me dar uma grande ajuda?
poderia me passar a programação que vai no PIC e como faço para coloca-la no PIC?
se puder me ajudar nesta parte da eletrônica, agradeço!
Olá Anderson! Para programar um pic, necessitará:
1) Um programa para o PC para gravar o pic ( poderá usar o WinPic800, gratuito). Baixe do site e instale em seu PC.
2) Precisará de um hardware gravador ( poderá usar o simples gravador de pic, caseiro ou comprar um gravador comercial)
3)Precisará de um arquivo HEX. Neste blog, cada artigo tem um arquivo HEX que poderá ser usado. Deve ser aberto no programa WinPIC.
Para iniciar, veja alguns tutorias no ‘youtube’ de como gravar pic’s. Faça exemplos simples do tipo ‘acender um led’. Leia matérias relacionadas sobre o artigo.
Não é difícil, mas no início poderá parecer confuso.
Claudio
lario eu nao tinha notado esta nova versao do controle on/off com dip.gostaria de acrescenta)_lo ao meus arquivo.so uma pergunta se caso as chaves dip do tx estiver diferente do rx neste caso nao haverá recepçao de dados e os leds nao acenderao e isto mesmo? fico no aguardo
Olá José! É isto mesmo. O TX transmite mas somente o RX com o mesmo ‘serial number’ e a mesma combinação da ‘DIP’ que acionará.
Cláudio
O controle de pulso momentaneo é ideal, hipotese de funcionamento; estou controlando um alto modelo DIP 1 usando 8 canais para diferente funções´´no qual sao necessario pulso momentaneos“ mais logo preciso ligar as lampadas DIP 2 e voltar a controlar o auto modelo DIP1.Para as lampadas ficarem ligadas mesmo sem sinal nas portas de saidas do pic, usarei um circuito baseado em mosfet,no qual trabalha assim;quando seu gatilho é caregado positivamente mesmo com ausencia de nivel alto(5v)
o mosfet permanece conduzindo, so voltaria ao estado de não conduçao quando for aplicada nivel baixo(0V) o mosfete nao poderá ser ligado diretamente ao pic será necessário intervensão de transitores. Para fazer o on/off de 1 lampada usa-se 2 canais.(para melhor entender, posso testa-lo primeiro e depois postar o esquema).para tornar os circuitos de on/off mais simples estou realizando teste com portas logicas ´´flip-flop´´
pois quero ´´economizar´´ canais,o ideal será ligar e desligar uma lampada apenas com um canal ou seja pressionando o botao do controle 1 vez a lampada liga,pressionando o mesmo botao novamente ela desliga.É de extrema nessecidade o controle de 1 receptor por vez e tem que ser momentaneo.
qualquer duvida pegunta aí!!
morais
Olá Morais! Veja o artigo do controle 8 canais novamente. Acrescentei uma versão que pode lhe interessar.
Claudio
obrigado por atender meu pedido,ja tinha procurado muito um projeto assim, esse com opção de 64 receptores é um´´prato´cheio´´ para quem gosta de controle remoto, vou montar o mais rápido possivel.
morais.
montei este controle funcionou muito bem,mais queria controlar mais de um equipamento, que estão em lugares diferente,teria como da uma ´´turbinada´´ neste projeto e adicionar para 4 portas restante um serial number. ficaria assim; 1 só controle e configurando a deep swicht poderia controlar até 16 receptores
em diferentes lugares.
Olá Morais! Obrigado por seu comentário e suas observações positivas. Se eu entendi, a sua ideia seria usar as 4 portas restante para alterar parte do ‘serial number’, obtendo novos possíveis 16 combinações diferentes. Compartilhe para nós onde teria uso prático desta montagem com tantos ‘possíveis’ receptores?
Claudio
trabalho com eletrônica e estou montando um automodelo,aproveitando o controle do mesmo quero controlar algumas lampadas e o portão(com relés e triacs é claro)controlar saídas de cabo de força também.´´tenho planos de comandar cameras e muito mais).
morais.
Olá Morais! Vejo que você quer ‘automatizar’ tudo! Assim que tiver uma oportunidade vou ver o assunto. Mas, basicamente o que tem que ser feito no ASM é trocar o nibble do serial number menos significativo (LSB), pelo estado dos pinos que sobram , onde será colocado a ‘dip switch’.
Cláudio
ok! entendo muito pouco sobre ASM para fazer estas modificaçoes,mais fico aguardando.
morais
Olá Morais!
Você pediu para ver a possibilidade de colocar uma chave ‘DIP’ para controlar o endereço de até 16 receptores. Até aí, sem problemas. Mas, sabendo que o sistema atual aciona de forma ‘Pulso’, você perceberá que sua atuação em um dos receptores será apenas momentânea. Quando você apontasse a chave ‘DIP’ para outro endereço, cessa a transmissão para o anterior receptor e ele desliga as saídas. Você já pensou em como contornar a situação? Seus dispositivos já tem sistema para fazer a ‘retenção’ quando recebe um breve pulso? Você poderia fazer um descritivo hipotético de uso real? Ex. endereço receptor 1 na ‘DIP’, aperto botão 5 para ….. depois , endereço receptor 16 e aperto botão 1 para…..
Quero ter certeza que será funcional.
Claudio
lario pode ser isso?porque na verdade na saida do pic estou usando resistor de 220r do modo original que funciona muito bem com o display de 28 leds nao estou usando 4,7k nem 18k pode ser por isto?
Olá José!
Conforme a tensão de trabalho, temos que alterar a polarização de forma correta. Um circuito com um resistor trabalhando para 5 volts, este terá um valor diferente se a tensão de trabalho mudar. Pode até ter queimado os transistores por excesso de corrente!
Claudio