CONTROLE REMOTO P/31 CANAIS (PULSO OU RETENÇÃO) USANDO AT89S52

Esta versão de controle remoto trabalha com o microcontrolador AT89S52, sendo ainda facilmente encontrado no comércio de componentes e de prêço muito acessível. Veja mais…

Usando microcontroladores de muitas portas de saidas, facilita a construção de controles remotos de muitos canais, como este aqui. Foi escolhido este modelo, por ser de baixo custo e atender a necessidade do projeto. A quantidade de linhas de programas são bem poucas, perto da capacidade da flash deste chip. Mas a idéia é exatamente esta: ser simples e prático.
Veja abaixo o esquema do transmissor:

Foi necessário o uso de pull_ups de 10k no Port0, visto ser ‘open drain’. Caso os interruptores das demais ports fiquem distantes, também é aconselhavel o uso de pull_up nelas, para evitar transmissão com disparos ocasionados com ruidos elétricos ou mesmo, de origem estática, como a proximidade da mão. Para gerar a frequência de trabalho foi colocado um cristal de 12 Mhz e seus capacitores de 27 pf. O módulo transmissor poderá ser para qualquer frequência, como 27Mhz, 315 Mhz ou 433Mhz, sendo a escolha do hobista. Existe inúmeros modelos e marcas que poderão ser usados com sucesso. Quando qualquer interruptor for ligado, começará uma transmissão, composta por 7 bytes, sendo os 2 primeiros com o ‘serial number’ do transmissor. Este pode ser alterado para outro valor (desde que no receptor também seja alterado para um valor igual). Este ‘serial number’ evita que um receptor igual acione o receptor de outro. Os próximos 4 bytes correspondem a situação dos interruptores nos port0 a 3. O ultimo byte serve para conferir a integridade da transmissão, sendo uma somatória dos outros bytes, truncando em apenas 8 bits. Acionando um interruptor no transmissor ligará a saída correspondente no receptor. A presença de outros transmissores na mesma faixa (controles de portões, por exemplo), poderá interferir em seu funcionamento , como ele poderá interferir em outros equipamentos na mesma frequência. Com tx/rx de pequena potência, aconselha-se seu uso de forma estática, escolhendo um local que estabeleça um bom funcionamento e fazendo uso de antenas apropriadas para uma boa recepção.
Veja agora o esquema do receptor:

Deve-se repetir a saída para rele em 31 vezes (o número de canais máximo). Logicamente, se desejar usar menos canais, nada impede de montar somente a quantidade de saídas desejadas, deixando desligados os pinos do At89s52 que não forem usados. Foi previsto uma chave para ‘teste/ uso’, que facilita os testes de recepção de sinal. Os leds nos coletores acendem quando determinado canal é acionado, mesmo com a chave ‘teste/uso’ em posição que desliga a alimentação dos reles. Deve-se lembrar, especialmente quando forem usados todos os reles (31 canais), que a fonte de alimentação deverá conseguir manter a tensão com todos os reles acionados. Esta corrente poderá chegar próxima de 2 amperes, dependendo da resistência das bobinas dos reles usados. Também, dependendo da aplicação, poderá ser usados reles com capacidade de corrente maiores ou menores.
Nota: Este projeto é de carater didático apenas, sendo testado apenas em placas de protoboard, sujeito a bugs ainda não detectados com uso.
Caso deseje uma versão com pic 16f628a clique aqui.

Segue abaixo o arquivo ASM do Tx:

tx_31_89c52_ASM

Segue abaixo o arquivo HEX do Tx:

TX_31_89C52_HEX

Segue abaixo o arquivo ASM do Rx:

rx_31_89c52_ASM

Segue abaixo o arquivo HEX do Rx:

RX_31_89C52_HEX

Adicionalmente, em 09-02-2016, foi feita esta versão com opção de compilar para modo pulso ou retenção por canal individual, ajustando o arquivo asm e depois recompilando (ASEM-51). Na pasta abaixo você encontrará 3 arquivos ‘.hex’ pronto para gravar o AT89S52. Em uma delas, temos todos os canais ajustados para ‘modo pulso’. Em outra, temos todos os canais em ‘modo retenção’ e a última temos 8 canais em modo ‘pulso’ e o restante em ‘modo retenção’. Outras possíveis opções poderão ser feita pelo próprio hobista:

RX_31_89C52_PR_FILES

Em 02/04/2016 foi feita uma atualização no código do receptor. Foi eliminado um ‘bug’ que ao ligar a alimentação, necessitava inicialmente de 2 apertos no botão do transmissor para acionar uma determinada saída programada para modo retenção. Após o que o sistema trabalhava normalmente. Foi também acrescentado a opção para o usuário alterar as saídas para modo normal ou invertido. Segue pasta com este arquivo atualizado:

RX_31_89C52_PR_V2_FILES

Data sheet:
AT89s52

Curiosidades:
O universo – cheio de surprêsas
O homem que desvendou os sêgredos do sistema solar
Jockeys ‘robos’
Controle remoto e o efeito estufa
Trauma de um atentado terrorista
Ouvindo sons do espaço
Porque as estrelas são cintilantes?

Outros assuntos:
Quando um dos cônjuges tem nessidades especiais
Como ser um bom pai
Como lidar com dívidas
Como resolver diferenças no casamento
Como tratar o conjuge com respeito
Como evitar ferir com palavras
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

Até o próximo artigo!!!

37 comments on “CONTROLE REMOTO P/31 CANAIS (PULSO OU RETENÇÃO) USANDO AT89S52

  1. Ola Claudio
    parece ser que con el 16f877 no se puede hacer si se puede hacer
    Con el AT89s52 a mi medaría igual yo ya tenía echo el PCB para el
    AT89c52 esto es para un alumbrado industrial con 22 encendidas
    Y se necesita visualización en el tablero un led por cada pulsador
    Si esto se puede hacer yo te estaría muy agradecido Claudo
    Pregunta es que necesitaría que en el emisor cuando pulso un botón
    Se me quedara encendido un led y cuando vuelvo a pulsar se apague
    Combinado con las salidas del recetor esto sería posible lo haría con
    Muchas gracia
    Saludos Manuel

    1. Olá Manuel!
      O problema ocorre tanto com o16f877a como no AT89S52. O artigo publicado não faz uso de led para indicar acionamento. Como disse antes, teria que inverter toda a lógica de funcionamento, fazendo o transmissor ser responsável pela decisão de pulso ou retenção. Visto que todos os pinos já foram usados com as chaves, teria que implementar uma lógica de compartilhamento de cada pino, ora sendo saída para led ora como entrada do interruptor. Haveria necessidade de mais componentes auxiliares para esta lógica. Portanto, sua placa de PCB não poderia ser usada neste novo arranjo.
      Como disse, não disponho de tempo para este projeto agora, talvez futuramente, pois ele é bem mais complicado, e terei que pensar em possíveis soluções para a lógica a ser usada, se é que conseguirei.

      Claudio

  2. Ola Claudio
    Estoy probando el emisor y receptor de 31 canal
    Y por el momento funciona bastante bien mi
    Pregunta es que necesitaría que en el emisor cuando pulso un botón
    Seme quedara encendido un led y cuando vuelvo a pulsar se apague
    Combinado con las salidas del el recetor esto seria posible
    gracia
    Saludos Claudio

    1. Olá Manuel!
      Não saberia no momento te dizer se é possível ou não. Parece ser possível. Mas teria que dar uma estudada em como poderia fazer isto. Seria usando o at89s52?
      Cláudio

  3. Hola Claudio
    Yo solo te pedía si me podáis cambiar el ,P3, como retención
    Porque esta como pulso y el ,P0, como pulso con el ULN 2803 a mí me funciona bien
    Sin necesidad de retardo con el retardo tienes que hace uno por cada salida y con el ULN2803
    Tengo 8 relés de salida sin necesidad de retardo ni transistores yo lo estoy probando y me funciona bien con UlN2803
    Yo el problema solo lo tengo en el ,P0 , si tu miras el ,P0, no funciona igual que ;P1; P2; P3
    Yo uso la versión normal creo que en el anterior nome esplique bien
    Saludos Manuel p

  4. Manuel Pereira
    Apreciable Claudio
    En el control remoto de 31 canales e probado
    Tu actualización el retardo no funciona al p0 es el que tiene el
    Problema del pulso cundo se conecta el p1 p2 y p3 funcionan choretamente
    Sin necesidad de retardo colocando el ULN 2803 funciona bien a mí me interesaría que el p1 p2 y p3 fueran con retención
    Y el p0 pulsos que es el que funciona mas mal ahora el p3 es pulso se pudiera
    Cambiar por p0
    Muchísimas gracias saludos Manuel Pereira

    1. Olá Manuel!
      O retardo funciona corretamente seguindo o esquema original com reles. Se você está usando outra opção talvez realmente não funcione. Você falou que usará o ULN2803, com p1, p2,p3 como retenção e p0 como pulso. E qual versão você vai usar? Normal ou a invertida?
      Cláudio

Comments are closed.

Back To Top