Seria possível fazer com um único PIC 12F675, um receptor de 3 canais para controle remoto comercial (chaveirinho) com opção de pulso e retenção individual? Veja mais…
Já foram publicados varias versões de receptor para controle remoto usando o PIC 12F675/629, como no artigo ‘RECEPTOR DE CONTROLE REMOTO GENERICO PARA HT6P20B COM PIC 12F629‘, de forma didática. Agora, veremos um circuito prático, já incluído 3 reles com tensão de trabalho de 12 volts na bobina, e contatos para 10 amperes. Seus contatos poderão controlar cargas elétricas de aplicações das mais variadas possíveis.
Veja o esquema abaixo:
Trata-se, portanto, de um receptor de 3 canais, sendo que cada canal é controlado por um botão do controle remoto (chaveirinho).
A escolha deverá ser por controle remotos com 3 botões, que usem internamente o ci HT6P20B, pois o código ASM está preparado somente para este tipo de protocolo.
A novidade deste receptor está na flexibilidade que ele dá na questão de escolha do tipo de saída desejada. Ele permite que determinemos por meio de ‘Jumpers’ se a saída escolhida será no modo ‘Pulso’ ou no modo ‘Retenção’. Note que a escolha é individual, ou seja, podemos programar , por exemplo, a saída 1 para modo ‘Pulso’, a saída 2 para ‘Retenção’ e a saída 3 para ‘Pulso’ ou outras opções.
Com ‘Jumper’ colocado definimos ‘modo Pulso’ e sem colocar o ‘Jumper’ teremos o ‘modo Retenção’.
Toda vez que for redefinido a posição dos ‘Jumpers’ deverá ser dado um ‘Reset’ para que passe a funcionar corretamente o novo ajuste. Isto acontece por que, logo no início do programa, as ‘saídas’ são convertidas em ‘entradas’, com o objetivo de testar a condição dos ‘Jumpers’, sendo que os seus estados ficarão gravados nos flags nomeados de ‘Flagj1 a Flagj3’. Estes por sua vez, serão usados para definir o modo de operação de cada saída. Foram usados 3 resistores de pull up externos, para melhorar a polarização positiva, uma vez que os internos não foram suficientes.
Após montar o circuito, deverá ser carregado o arquivo hex no microcontrolador. Poderá usar um programa gravador (software) rodando em seu PC como por exemplo, o WINPIC800, e um gravador (hardware) como o ‘simples programador de Pic’ , deste blog.
Depois de gravado o chip com o firmware fornecido, deverá estar operacional, ao inseri-lo no circuito e ligar a fonte de alimentação.
O próximo passo é aprender o controle remoto. Para isto, basta apertar qualquer um dos botões e dar um toque no botão ‘Learn’. Em seguida, solte o botão do controle remoto, sendo que o led ‘Learn’ deverá piscar uma vez para indicar sucesso no aprendizado. Permite aprender até 42 controles diferentes antes de começar a subsescrever os primeiros controles gravados.
Para apagar todos os controles e limpar a memória, basta apertar o botão ‘Learn’ por mais de 10 segundos, após o que o led ‘Learn’ piscará algumas vezes para indicar o sucesso do apagamento.
É possível optar pelo uso do PIC12F629 ao invés do PIC12F675. Para isto, comente a linha apropriada em ‘Definições do usuário’ e recompile o arquivo ASM usando o MPLAB-IDE da MICROCHIP. Veja também o artigo ‘COMO COMPILAR OS ARQUIVOS ASM FORNECIDOS NESTE BLOG, JUNTO COM O MPLAB_IDE’.
Obs. Esta montagem foi testada apenas em protoboard (placa experimental), sujeito a bugs ainda não observados em uso prático. Esta sendo fornecido o arquivo asm que poderá ser alterado segundo as necessidades dos hobistas.
Segue o arquivo ASM (atualizado em 03/07/13):
Segue o arquivo HEX ( para PIC12F675, atualizado em 03/07/13):
Para os usuários de compilador “C” (CCS C), segue pasta zipada com 2 receptores alternativos de 3 canais, escrito em “C”, para Ht6p20b, com possibilidade de mudar para retenção ou pulso, modo normal ou invertido, alterando nas ‘configurações de usuário’ no arquivo ‘c’ e recompilando. A rotina de recepção é diferente, usando interrupção de mudança de estado do pino 4 (gp3) para iniciar a captação do tx para um programa e o outro, mais simples, apenas vigia o pino 4, procurando por alteração do seu estado. Cada parte do bit recebido é testada para melhorar imunidade a recepção de interferências (atualizado em 14/07/2015):
Caso deseje usar transmissores da família de circuito integrados Hcs 200…301 (chaveirinhos c/ HCS) poderá usar a versão abaixo, em modo Hopping Code. Lembrando, que para esta família, temos que recompilar o arquivo asm, com a chave (Key) igual a usada no Tx. Ela se encontra na rotina ‘Decrypt’ . Para gravar esta Key no ci HCS200 …301 do chaveirinho, você deverá usar um programador comercial, ou montar o programador segundo a Note Application AN217, ou um dos aqui publicado, como os artigos : ‘HCS_PROG_V628 – MAIS UMA OPÇÃO PARA PROGRAMAR HCS200…301 COM PIC 16F628A’ , ‘HCS_PROG_TINY – PROGRAMADOR DE HCS200..301 COM APENAS UM PEQUENO PIC 12F629 !!!’ e ‘HCS_PROG – PROGRAMADOR DE HCS 200/201/300/301 COM AT89S521’ .
A chave (Key) usada no arquivo hex é : ‘0123456789ABCDEF’.
Segue o arquivo ASM, Hopping Code (12f675):
Segue o arquivo HEX, Hopping Code (12f675):
Segue a versão ASM com opção de escolher as saidas em modo normal ou invertidas (somente HT6P20B, atualizada em 03/07/13 ):
Segue o arquivo HEX desta versão, compilada para modo de retenção e saída normal no pino 6 e os pinos 5 e 3 em ‘modo pulso’ e ‘invertidos’ (somente HT6P20B, atualizada 03/07/13 ):
Manuais:
Pic 12F675
Datasheet HT6P20B
Curiosidades:
Quem projetou primeiro?
O preço de levar uma vida muito corrida
A fábrica da morte
De onde vem a ameaça de guerra nuclear?
Comunicação — essencial nos ecossistemas da Terra
Uma das nozes mais úteis do planeta
Robert Boyle – lições do passado
Balolo – o caviar do Pacífico
A língua da selva — segredos da comunicação entre os animais
Ultimato “em nome de Deus”
Carros – no presente e no passado
O sistema de ‘spray’ do besouro
Ouvindo sons do espaço
Porque as estrelas são cintilantes?
Uma voz silenciosa que pode se ouvida
A ciência e a Bíblia são compatíveis?
Yellowstone: encontro de águas, rochas e fogo
Outros assuntos:
Como fazer seu segundo casamento dar certo
Como lidar com sogros?
Quando seu filho tem uma deficiência
O que fazer se tenho um problema de saude – Parte 1
O que fazer se tenho um problema de saúde – Parte 2
Como parar de discutir
Como enfrentar o bullying sem ter de partir para a briga (animação)
Como acabar com a tática do silêncio
Como resolver problemas em seu casamento?
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!!!
Amigo Cláudio, parabéns pelo trabalho!
Eu brinco bastante com arduino e a integração do 12F675 que estou quebrando a cabeça.
A ideia que o 12F675 tivesse um saida TTL ou serial para uma entrada digital do Arduino (RX) assim quando o botao do controle fosse pressionado o tx do 12F675 imprima o numero do HT6p20 no RX do Arduino. (pode substituir um canal para a saída TX).
Minha outra dúvida é a inclusão de mais controle, suponhamos que exista um edifício de 150 apto, logo precisaremos de 150 controle ht6p20.
Existe um material de forma didática para inclusão de memória externa para gravar e ler usando o 12F675 ❓
Olá Lourival! Obrigado por seu comentário apreciativo. Infelizmente, eu não tenho trabalhado com arduino neste blog. Talvez você possa adaptar algumas das idéias aqui postadas para seu objetivo. Quanto a uso de vários controles, veja o artigo ‘NOVO RECEPTOR GENERICO COM PIC 16F628A PARA HT6P20B E TAMBÉM HCS200…301 (SEM HOPPING CODE) – COM OPÇÃO DE APAGAMENTO INDIVIDUAL DE CONTROLES E LCD’ que talvez possa ser de ajuda.
Claudio
Amigo Cláudio, olhando outros projetos do seu site, o projeto http://picsource.com.br/archives/2806 do controle é que preciso. o problema que não sei integrar todos esse projetos .
A idéia do novo projeto pode ser o http://picsource.com.br/archives/2034 integrando uma saída serial RS232 http://picsource.com.br/archives/2806.
Outra projeto pode ser
RECEPTOR DE 3 CANAIS PARA USO COM CONTROLE REMOTO (CI HT6P20B) E PULSO/RETENÇÃO INDIVIDUAL- COM PIC 12F675 + Memoria para Mais controles e a Saida RS232 (CONTROL_TESTER_RS232 – LENDO CONTROLE REMOTO NO SEU PC VIA SERIAL – COM PIC 12F675 (629))
Pode usar um outro tipo de PIC.
Assim todo evento (controle remoto pressionado) que ocorra no PIC é impresso o codigo do ht6p20 na saida RS232.
Assim posso fazer um software de monitoramento de controle de logs de acesso.
Qualquer um dos projetos acima estaria perfeito, infelizmente não sem assembly e muito menos integrar esse dois códigos do projeto.
Forte abraço.
Olá Lourival! Uma saída serial? Qualquer velocidade de transmissão ou uma especifica (9600 bauds)? Você quer ver o número serial do controle recebido, é isto? Que tipo de circuito integrado no tx vai usar? Por curiosidade, não existe programa pronto para fazer um receptor de controle remoto usando o arduino?
Cláudio
Pode ser a velocidade que voce quiser, eu uso padrao 9600!
eu gostaria do numero do Ht6p20 conforme a imagem onde ja conseguir a saída do 12f675 conectado em uma entrada digital do arduino esta funcionando perfeitamente. ( http://gestaosqe.com.br/larios/tela.png )
http://gestaosqe.com.br/larios/arduino.jpg
Existe uma aplicação parecida, mas pobre de conteúdo e tenho que libera meu microcontrolador para outras aplicações.
abraços
Lourival
Olá Lourival ! Entendi. Poderia compartilhar como será usado este seu seu projeto?
Claudio
Claro Sem Problema!
Após que o 12f675 envie os dados via rs232 para o Arduino, utilizando o Ethernet shield eu posso fazer uma conexão web fazendo que estes dados seja incluso em um Banco de Dados MYSQL (php como conexão) e logo apôs a inclusão do Banco de dados será mostrado em um interface web os acesso (numero do controle dia e hora que foi acionado). Eu não tenho nado montado esta parte para mim é tranquilo o meu problema e programação em assembly para fazer esta integração
abraços!
Olá Lourival! O único dado que deseja é apenas o número serial do controle recebido, correto?
Cláudio
Isso Mesmo! O único dado que desejo é apenas o número serial do controle recebido,
Olá Lourival! No projetinho do BIG_GEN II está sobrando o pino 1. Se eu usar este pino como saída serial, estaria bom para você? Será conectado direto pino a pino no arduino ou será via um integrado max 232 ou equivalente?
Cláudio
Ficaria ótimo! Seria conectado em um max232!
Olá Lourival !
Postei uma versão do BIG_GEN usando o pino 1 para transmitir o número serial dos tx’s recebidos. Verifique se este circuito atende sua necessidade.
Cláudio
Amigos Cláudio, Baseado no seu esquemático fiz um Brd da receptora com um Atmega esperando a comunicação Serial.
http://www.gestaosqe.com.br/larios/larios.png
Olá Lourival! Ficou muito boa esta placa. Mas para o novo circuito terá que alterar a ligação dos interruptores e colocar um xtal nos pinos 15 e 16.
Cláudio
valeu pelas pelas instrutivas recomendaçoes lario.
lario olá; há opçao por ex. se nao quero usar o chaveirinho com 3 botoes,posso gravar 3 clone separado para este receptor?
Olá José! Sim, poderá usar pic’s como gerador de código no lugar do Ht6p20b do chaveirinho. A escolha é sua. Somente que os chaveirinhos são muito mais práticos e não são caros. Com pic você terá que arranjar uma caixa para acomodar o circuito, além de ter de adquirir o tx e acomoda-lo também na caixa, juntamente com a bateria , regulador de tensão,etc. Some os preços da caixinha, do tx, do regulador, do pic, da bateria e tudo ficará caro. Também, não creio que ficará prática, nem bonita. Se na sua localidade não tem, encomende pela internet.
Claudio
Hola Claudio:
Muchas gracias por tu respuesta, ahora me quedo bién claro. No te preocupes, todos quemamos integrados, lo importante es aprender. Muy buena idea lo de poner resistores para proteger los puertos lo voy adoptar. Bueno Claudio muchas gracias por la predisposición que tenés para ayudar, saludos y hasta la vuelta amigo
Hola Claudio:
Muchas gracias por la respuesta, pero con respecto a la 1°pregunta, yo me refería a la resistencia de 470 ohms que está en serie entre el módulo receptor (data out) y la entrada al microcontrolador (pin 7) en este caso, dicha resistencia aparece en todos los proyectos, de control remoto. Me llama la atención, porque sin esta resistencia funciona igual, por eso queria saber si tiene alguna función especial?. No quiero molestarte pero me gustaría saber.
Muchos saludos Claudio!!!
Olá Ricardo!
Você Tem razão. Para tudo tem um motivo, mesmo que não seja ‘aparente’. Este resistor realmente pode ser eliminada sem problemas. Porque então foi colocado? Para proteção da porta em fase de desenvolvimento. No passado, quando iniciei com microcontroladores, andei queimando alguns pic’s.
Por exemplo: fazia uma montagem na qual o pic foi programado como saída positiva em um pino. Depois, passado alguns dias, aproveitava a mesma montagem para servir de base para uma outra totalmente diferente, em que ligava o ‘mesmo pino’ (já programado como saída positiva) uma chave direto ao gnd. Quando ligava o circuito ao Vcc, sempre vinha o desejo de dar uma ‘apertadinha’ no botão. Então, ….. Adeus Pic …. um curto, que destruía a porta. Desde então, necessitando ou não, coloco sempre em todas as Ports, um resistor de pequeno valor, que num caso similar, protege contra a destruição da porta. E muitas vezes, por força do hábito, acabam fazendo parte do esquema elétrico. Sinta-se a vontade para eliminar quando for este o caso (resistor de 220 ou 470 ohms).
Claudio