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!!!
OLA Claudio
En el control remorto con retencion
la sulucion que me envias que es 1) una pila en vcc del pic
eta previsto para encendido de un alunbrado lo cual la pila
creo que se agotaria muy rapido
la sulocion seria la paret 2
2) Cambiar el software para escribir en la EEPROM el estado de cada salida y luego devolver el valor cuando regrese a la tensión de red.
pero yo nolo pudo cambiar si pudira ser telo agradeceria muchusimo
si melo pudieras mandar ya cambiado
gracias Mnanuel
Hola claudio
El control remoro de 8 canales con retencion
cundo se deconeta de la red electrica se
desconetan los reles correto pero cuando
retona la energia electrica quedqn desconectados
mi prugunta es si se puede azer que cundo yo los conecto
me queden siempre en la misma posicin que yo los e degado
poe ejemplo si yo los conecto a ON cundo buelbe la red
me estean a ON estean OFF
Esperanado tu agradble contestacion
Manuel
Manuel Hola!
Usted tiene dos opciones:
1) Coloque una pila en el PIC pin VCC
2) Cambiar el software para escribir en la EEPROM el estado de cada salida y luego devolver el valor cuando regrese a la tensión de red.
Cláudio
Hola Manuel!
Por favor, vea la nueva versión utilizando la memoria EEPROM interna para almacenar la situacion de las salidas con el fin ‘retención’.
Claudio
Bom dia Claudio
Gostaria de saber se vc tem um kit do relogio falante ou um já montado, pois necessito com uma certa urgência para utilização em uma demonstração para Organização de inclusão de cego.
Meus dados para contato
email:marajo2000@hotmail.com
Ficarei muito agradecido pela urgência
Grato
João Luiz
Olá João!
Eu infelizmente não tenho um kit deste relógio. O que este blog faz é apresentar montagens em placa experimental, sendo fornecidos os arquivos e esquemas para poder ser reproduzido por um hobista de microcontrolador em sua casa. Não trabalhamos com kits de montagem como alguns sites o fazem. Mas pode ser que alguém já tenha montado com sucesso e talvez tenha disponível. Mas eu não saberia informar.
Cláudio
Manuel p
Claudio en el control remoto DE 8 canales con CR_8C_PROG_RET
retención cuando aprieto el pulsador unos segundos
no se queda retenido se quede intermitente en la
salida del receptor yo lo e simulado en PROTEUS si lo puedes probar
veras que cundo aguntas en el pulsador unos segundos veras que se
queda intermitente es decir que se enciende y se apaga
saludos Manuel p
Manuel Hola !
Por favor, vea la nueva carpeta con el archivo corregido en el artículo original .
Claudio
Manuel p Claudi remoto com retenção quando o botão pulse alguns segundos não é retida é entermitente não é por isso que megustaria saber se Ay para alco em saudações o progama madificar Manuel p