CONTROLE REMOTO DE 32 CANAIS – COM RECEPTORES INDIVIDUAIS – C/PIC16F877A E PIC12F675 (REF230)

2

Acrescente mais esta opção para controlar seus projetos a distância…

Existe situações que pode ser necessário controlar vários equipamentos espalhados por um ambiente. Para aumentar o alcance é melhor usar controle remoto por RF, ao invés de infrared. Também, o mais prático é usar receptores individuais, próximos do equipamento a ser ligado. Por isto, a montagem proposta trata da construção de um controle remoto de 32 canais, usando um transmissor único com 32 interruptores e 32 receptores individuais de 1 canal. Veja o esquema abaixo do receptor:

Logo abaixo temos o esquema do transmissor.
Note que o transmissor é o mesmo usado na montagem “CONTROLE REMOTO P/32 CANAIS USANDO PIC16F877A (REF214)”.

O receptor é adaptado para receber a transmissão de 7 bytes do transmissor e acionar a saída por meio de um relé. O usuário poderá escolher o modo de operação da saída entre ‘pulso’ ou ‘retenção’ apenas colocando ou tirando um ‘jumper’ no pino 3.
Deverá ser montado 32 conjuntos de receptores e estes deverão ser programados com o único arquivo .hex para receptor, fornecido na pasta zipada no final do artigo.
Antes de usar o conjunto, cada receptor deverá ser programado com qual botão irá acionar. Poderá ser aprendido mais de um botão se desejar. Mais de 32 receptores podem ser usados desde que usem os mesmos botões.
Para programar, siga os passos abaixo:

1) Aperte o botão “Prog”. Irá acender o led “Prog”.
2) Aperte um botão que deseje programar no transmissor. O led “Prog” apaga indicando que aceitou a programação.
3) O led “Prog” sairá do modo de programação após 20 segundos se não houver algum aprendizado neste periodo.

Caso erre a programação, poderá apagar a EEprom e começar uma nova programação.
Para isto, aperte o botão “Prog” por mais de 5 segundos, até o led “Prog” começar a piscar. Solte o botão. Repita os passos para programar citados acima.

Não esqueça de programar o modo de operação do receptor: O Jumper deve ser colocado para modo pulso e retirado para modo retenção.
Use relés com capacidade de corrente de acordo com o equipamento que vai comutar. Geralmente de 10 Amperes são suficientes para a maioria das aplicações. Use uma fonte de alimentação de 5 volts para cada receptor ou retire a alimentação do equipamento que será acionado.
Obs. Esta montagem é experimental, sendo de caráter mais didático, montada apenas em placa experimental (do tipo “Breadboard”), sujeita a bug’s ainda não detectados. Está sendo fornecido os arquivos para que cada hobista possa alterar o programa segundo suas necessidades.

Segue pasta zipada com os arquivos desta montagem:

CONTROLE_REM_32C_MODULAR_FILES

Em 27/05/2016, foi postada a versão abaixo que salva o estado do acionamento na EEprom e recupera após uma falta de energia:

CR_32C_MODULAR_EEP

As versões acima, por trabalharem com interrupção por mudança de estado, podem apresentar problemas de mau funcionamento se houver muito ruído na recepção. Para estes casos, segue abaixo uma versão de 01/06/2016, cuja recepção dos sinais é feito com ajuda da interrupção do timer 0 e que também salva a situação da saída na EEprom em caso de falta de energia elétrica:

CR_REM_32C_MODULAR_NORMAL_FILES

Manuais:

PIC 16f877A
PIC 12F675
TX 433MHZ DIY
IMAGENS DE RX/TX433MHZ

Curiosidades:
Conceito equilibrado sobre animais de estimação
O que é horticultura orgânica?
O perfil da guerra moderna
Fim do mundo — do que as pessoas têm mais medo
Os esforçados lavadeiros de Abidjã
Quando o Sol ficou vermelho

Outros assuntos:
Qual é o significado do livro de Apocalipse?
O que é a batalha do Armagedom?
O que significa o número 666?
O que é o Reino de Deus?
Como haverá paz na Terra?
Como os pais podem ensinar os filhos sobre sexo?

Vídeos:
Como enfrentar o bullying sem partir para a briga
Fofoca? Sai dessa!
Quem é o Autor da Bíblia?
Será que é amor ou paixão?
Tenha mais paciência
Um homem e uma mulher
Fale a verdade
Eu me cansei das religiões

Até o próximo artigo!

2

25 comments

  1. 0

    Bom dia ilustre Claudio, qual linha de comando eu altero no C para aumentar o tempo do pulso no modo retenção no rx?
    Exemplo:

    aciono o tx e o rx aciona a saída por 1 segundo e desliga a saída.

    1. 0

      Olá Sergio!
      Poderá alterar na seção de constantes:

      const int8 TMAX_SAIDAS_LIGADAS= 40;// em modo pulso

      Não sei se conseguirá o valor que deseja, pois o máximo que poderá colocar é 255 (mais ou menos 6 vezes o valor do tempo atual).

      Cláudio

  2. 0

    Hola Claudio
    El artículo publicado en la carpeta que yo he visto
    Esa era la idea, pero con pulsadores momentáneos
    Porque para mi entender corrígeme si no es así
    El emisor cuando cierras los interruptores se queda siempre enviando
    Señal al receptor
    Enviando señal al receptor
    Hacerlo por pulsadores ara para que el emisor solo estuviera conectado
    Cuando apretabas el pulsador es decir que cundo dejas de apretar el pulsador
    Que no emita señal al receptor
    Muchísimas gracias un saludo muy fuerte
    Manuel

  3. 0

    Hola Claudio
    En el transmisor de 32 canales yo te pedía sise podía poner un piloto en el
    Transmisor me dices que telo mirarías en futuro telo mirarías sise pudia hacer
    Yo lo hice poniendo otro receptor al lado del emisor pero me da muchos fallos
    Perdona por insistir pero yo lo necesitaba yo tengo 22 encendidas las cuales el emisor esta en un cuarto que no pudo visualizar si por ejemplo si el proyector numero 12 esta encendido o apagada por eso necesitaba señalizarlo un led en cada pulsador que en esta caso seria pulsador luminoso si ay alguna posibilidad vien y sino mala suerte
    Muchísimas gracias por tu colaboración
    Un saludo Manuel

    1. 0

      Olá Manuel!
      Ainda não imaginei uma solução que seja adequada. A primeira vista envolveria um projeto inteiramente novo, uma vez que estamos usando todos os pinos possíveis do pic e ainda com uma comunicação de apenas uma via (tx para rx, sem haver comunicação do rx para o tx) . Mas se encontrar uma solução e ela for realmente funcional, irei postar um artigo a respeito.
      Cláudio

    2. 0

      Olá Manuel!
      Pensei no assunto e uma forma que poderia ser feita seria usar o receptor com todos os canais em modo pulso e o tx com interruptores on/of ao invés de usar botão de acionamento momentâneo. Então, poderia colocar um led junto a cada interruptor para ter uma indicação visual do acionamento. Postei uma pasta com esta opção no artigo original. Verifique se atende a sua necessidade atual.
      Cláudio

  4. 0

    Hola Claudio
    En el transmisor de 32 canales yo te pedía sise podía poner un piloto en el
    Transmisor me dices que telo mirarías en futuro telo mirarías sise pudia hacer
    Yo lo hice poniendo otro receptor al lado del emisor pero me da muchos fallos
    Perdona por insistir pero yo lo necesitaba yo tengo 22 encendidas las cuales el emisor esta en un cuarto que no pudo visualizar si por ejemplo si el proyector numero 12 esta encendido o apagada por eso necesitaba señalizarlo un led en cada pulsador que en esta caso seria pulsador luminoso si ay alguna posibilidad vien y sino mala suerte

    Muchísimas gracias por tu colaboración
    Un saludo Manuel

  5. 0

    Saudaçoes Claudio.
    Como sempre , sempre podemos contar com voce, eu que pedi(talves tenha mais pessoas) para vc postar esse tipo de controle.
    Obrigado, Obrigado!
    Que Deus lhe de muita saude e paz.

  6. 0

    Boa tarde Claudio entendi! sim da pra usar esse que você fez sim. muito obrigado pela explicação!
    Forte abraço e bom domingo!

  7. 0

    Me refiro à esse codigo RX_3C_PR_HT6P.ASM que tem configuração separada de cada botão sendo configuração individual entre puslo e retenção!
    Sergio

  8. 0

    Boa noite Claudio, mas seria possível adaptar o código que usa o receptor genérico HT6P que usa um 12f675 para um 16f877 que tem mais portas e com isso ampliar as saidas? invés de 3 do 12f675 30 ou mais no 16f877?
    Sérgio

    1. 0

      Olá Sergio!
      Por favor, raciocine comigo:
      Você quer 32 canais que trabalhem individualmente.
      Isto exige 32 bits separados a serem transmitidos ou 4 bytes de 8 bits.
      O protocolo ht6p trabalha com 24 bits sendo 22 bits de endereço do chaveirinho que o distingue de qualquer outro e 2 bits de dados. Isto dá 3 bytes.
      Mas notou que precisamos 4 bytes para obter os 32 canais e que já superou o que o protocolo tem?
      Você não poderia usar a montagem “CONTROLE REMOTO P/32 CANAIS (PULSO/RETENÇÃO) USANDO PIC16F877A (REF214)“?

      Claudio

  9. 0

    Boa noite Claudio, não se se ajuda nosso amigo Manuel, eu testei o controle 32 canais no proteus deu certo, mas tem que colocar todos os resistores de pull ups e certificar se a frequência do PIC 16F877A está em 4MHz igual à do 12F675.
    Testei e funciona, seria legal se esse transmissor funcionasse também com o protocolo do ht6p, mas já atende meu propósito! muito obrigado!

    1. 0

      Olá Sergio!
      Esta montagem trabalhar com 56 bits ao invés dos 28 do ht6p justamente para tornar cada canal totalmente independente do outro na questão de acionamentos. Para receptores com ht6p use outras opções de montagem já publicadas, pois o mesmo só transmite 2 bits de dados e não se conseguiria 32 canais.
      Cláudio

  10. 0

    hola Claudico
    el de 15 canales medular me funciona perfectamente en proteos
    y sin embargo el de 32 modular ami no me fonciona yo tenlo decía por si tenias algún problema según tu dices que ati te funciona perfectamente
    pues entonces no se que puede ser bovere revisarlo todo yo los controle remotos tuyos antes de construir los emulo en proteus y ami todos mean funcionado perfetamente

    1. 0

      Olá Manuel!
      Assim que puder, vou baixar os arquivos do site relacionados a este controle de 32 canais e usarei eles para carregar os pics do bread board. Há possibilidade de ter ocorrido algum problema ao fazer o up load destes arquivos. Depois eu retorno se funcionaram ou não.
      Cláudio

    2. 0

      Olá Manuel!
      Testei com os hex postados e funcionaram perfeitamente. Pensei no que poderia estar ocorrendo, talvez no uso de um compiler CCS C com outra versão que não o 3.2. Talvez seja o que ocorra ao usar o Proteus. Analisando o que poderia dar errado, achei que talvez o compilador pudesse alterar as posições do buffer1/buffer fugindo a ação dos ponteiros. Como solução, a dois caminhos: uso de uma ‘struct’ ou localização fixa dos mesmos. Optei por localização fixa (por facilidade). Por favor, baixe os arquivos com esta pequena alteração e veja se funciona quando compilar com a sua versão do Proteus.
      Cláudio

    3. 0

      Olá Manuel!
      Por favor, veja no artigo original que foi postado um arquivo opcional de receptor por interrupção do timer 0 ao invés de mudança de estado. Verifique se este está operando nos seus testes com o Proteus.
      Cláudio

  11. 0

    HOLA CLAUDICO
    E ESTADO PROBANDO EL TRANSMISOR DE 32 CANALES
    MODULAR CON EL 12F675 PERO AMI NOMA FUNCIONADO
    EN EL BOTÓN PROG APRIETAS Y SE ENCIENDE EL LED PROG
    APRIETAS EL BOTÓN DE EMISOR ENTRA SEÑAL AL PIN 4 PERO SE QUEDA EL
    LED ENCENDIDO HASTA UNOS 20 SEGUNDOS Y DEPUES SE APAGA Y
    NO REALIZA NINGUNA FONCION

    SALUDOS MANURL P

    1. 0

      Olá Manuel!
      Verifique bem as ligações para evitar algum erro ou esquecer componentes na sua montagem. Deverá usar o transmissor de 32 canais ( pode ser no bread_board). Não irá funcionar com chaveiros com integrado ht6p pois estes trabalham com 24+4 bits e o receptor proposto trabalha com 56 bits.
      Claudio

      1. 0

        hola cladio
        yo lo es simulado en proteos y amy nome a funcionado
        y yo nome e equivocado en neguna conexion
        el sistema tiene algún problema
        cuanndo aprieto el botón prog el led se encienda
        cando apretad el botón deel emisor 32 canales no hace nada
        sagun tu se tendria que apagar cando revive señal del transmisor pues no se queda encedido

        1. 0

          Olá Manuel!
          Tenho a montagem em bread bord funcionando perfeitamente. Não uso Proteus e não saberia dizer porque não funciona nele.
          Cláudio

Comments are closed.