BIG_GEN_II_SERIAL – ADICIONANDO SERIAL – COM PIC 16F628A (REF146)

Seria interessante poder ter uma forma de exportar informações da central BIG_GEN_II para um PC ? Talvez para se ter um arquivo com todos os controles acionados em uma dada ocasião? Uma integração com outro sistema de segurança?

Esta versão faz justamente isto: enviar para uma saída serial rodando a 9600 bauds, o número serial de todo controle que for acionado. Foi usado o pino 1 para esta finalidade, usando uma simples saída com um transistor para conectar com a DB9 do PC.
Se não tiver entrada serial em seu PC, poderá usar um adaptador USB/SERIAL. Para testes, poderemos usar o Hyperterminal configurado para porta COM1 ( ou outra) e a 9600 bauds, sem paridade, 1 stop bit. Ao acionar um controle remoto, de imediato, veremos na tela o valor do serial number.
O esquema foi alterado, pois foi necessário estabilizar a frequência de clock usando um cristal de 4mhz externo, pois do contrário, não se consegue um correto ‘baud rate’ para a transmissão serial. Os interruptores receberam uma nova configuração de ligação, visto que não sobra pinos neste PIC.
Veja o esquema abaixo:

O restante do circuito permaneceu igual, assim também a forma de programar e remover controles continuam exatamente iguais. Lembrando que ele aceita até 255 controles diferentes, da família HTP e HCS (em modo 400us de pulso básico, sem hopping code). Deverá trabalhar com outra(s) placa(s) de portão, usando a ligação da ‘botoeira(s)’ conectando no(s) rele(s) do esquema (reles acionados pelo pino 6 e 7).

Caso também domine a programação de ‘ARDUINO’ ou equivalentes, poderá realizar a integração mais fácil entre eles, usando justamente esta saída serial. Se você tem facilidade com programas para PC, poderá facilmente criar um aplicativo que possa usar estes ‘seriais numbers’. Abre-se assim, um novo leque de uso para o equipamento!
Obs. Esta montagem é apenas didática, sendo realizada e testada apenas em placa de protoboard, estando sujeita a bug’s ainda não observados. Esta sendo fornecido os arquivos ASM e HEX, que poderão ser alterados segundo as necessidades dos hobistas.

Segue pasta com os arquivos ASM e HEX:

BIG_GEN_II_ASCII

Segue pasta com arquivos ASM e HEX para versão que impede o apagamento se na posição pretendida estiver gravado já um controle (neste caso, terá que apagar o antigo número antes de gravar outro). Também, após enviar o serial number do controle acionado, enviará o caracter ‘1’ para acionamento da saída 1, ‘2’ para saída 2 e ‘3’ para ambas saídas acionadas:

BIG_GEN_III_ASCII

Manuais:
Pic 16f628a
Memória 24c08

Assuntos relacionados:
BIG_GEN_II (versão de 05/04/2014)
BIG_GEN I (versão anterior)
Big_gen_mix com at89c2051
Big_gen somente para Ht6p20b com at89c2051
Como ler sinal transmitido por controle remoto rf

Curiosidades:
Será que todos os idiomas vieram da “Torre de Babel”?
O que é preciso para adestrar um elefante
Jóias e pedras preciosas
O menor cãozinho do mundo
O banho de sauna — no passado e no presente
Newgrange: o mistério continua
O país da moeda de peso
Herodes, o Grande — um hábil construtor
O esperto camaleão do mar
Os cosméticos nos tempos bíblicos
Uma rocha imponente
Sal — produto da ação do sol, mar e vento

Outros assuntos:
Como posso me dar bem com meu professor?
Como controlar seu estresse
Quando seu casamento não é o que você esperava
Recuperar a confiança no casamento
Como acabar com a tática do silêncio
Como ser feliz no casamento?
Como ser um bom ouvinte
Como lidar com as dívidas
Como resolver problemas no casamento
Aprenda a perdoar
Como lidar com os sogros
Como criar filhos responsáveis
Como administrar o seu dinheiro
Ensine valores morais a seus filhos
Como evitar ferir com palavras?
Como tratar seu cônjuge com respeito?

Até o próximo artigo!!!

24 comments on “BIG_GEN_II_SERIAL – ADICIONANDO SERIAL – COM PIC 16F628A (REF146)

    1. Olá Caiocesarb!
      O protocolo USB é bem complexo e toma muito espaço de memória. Além disto, exige que o pic disponha de hardware para esta comunicação, pois não se consegue com o método ‘bit banging”. Geralmente os adaptadores de USB para Serial funcionam. Tente ver com o fabricante o que pode estar acontecendo.

      Cláudio

  1. No seu codigo, vc previu parte alta e baixa usando ADDRESS1 e ADDRESS ? Ou essas vaiaveis so trabalham com a parte baixa mesmo, e para a parte alta, tem que desenhar um loop novo ?

    1. Olá Caio!
      O ADDRESS1 é usado para selecionar o bloco da 24c08. Terá que alterar o código para corresponder a funcionalidade da 24c256 de 16 bits de endereçamento sem blocos.
      Cláudio

      1. Perfeito ! Depois de perguntar eu continuei olhando e achei o que nao estava vendo… o address1, entra no CONTRO BYTE, e era isso que estava me travando no 24c256. A logica ele e’ diferente. Charada matada, estou mudando… e’ bastante coisa mesmo… Grato !!!

  2. Boa noite.
    Para gravar mais controle, vou precisar aumentar a memoria externa. Coloquei uma 24c256 (ATMLU738 2EB). Mas ao acessar a memoria, o programa trava. Os pinos sao os mesmos… Tem algum segredo que nao peguei ?

    1. Olá Caio! O código de acesso a memória externa foi feita para a eeprom 24c08. Para usar outros modelos com maiores capacidade, você terá que alterar o código de envio I2c. Consulte o datasheet para saber como deve ser endereçada corretamente este novo modelo escolhido por você. Divirta-se com os datasheets! Produzem horas agradáveis de pesquisa pura!
      Cláudio

      1. Estou trabalhando nisso… Ainda nao deu certo, mas estou no caminho. Uma diferença que ja achei é que esta eprom usa 2 blocos de 8 bits de address. Ja completei o primeiro bloco com 0, mas ainda nao resolvi ainda. Se entre um dia ou outro, vc tiver uma soluçao para este bloco do programa, agente agradece ! Se eu resolver antes eu compartilho…

        1. Olá Caio! Como você disse anteriormente, ‘trabalhar com asm é complicado’. Olhando o datasheet é realmente isto: 2 bytes de endereçamento. Isto significa que além de alterar a rotina de envio, você terá que lembrar de incrementar a parte alta quando estourar a parte baixa, nas rotinas de busca/leitura/gravação de controles. Digamos que é a parte mais chata do código. Costuma dar canseira de muitas horas até rodar bonito! Mas você parece ser ‘persistente’, e logo alcançará o objetivo.
          Cláudio

          1. Ja dei um grande passo. O programa nao tava mais. Faz R/W na memoria. Eu ja tinha mexido nos contadores para deixar rodando mais que 255. Mas o que resolveu meu travamento foi mudar sua rotina de ACK. Segue como ficou.

            ACK: ;acknowledge from transmitter or receiver

            ;BSF SCL
            ;BANK1
            ;BSF TRISA,0 ;ENTRADA
            ;BANK0
            ;BTFSC SDA
            ;GOTO $-1
            ;BCF SCL
            ;BANK1
            ;BCF TRISA,0 ;SAIDA
            ;BANK0
            ;RETURN

            BANK1
            BSF TRISA,0 ;ENTRADA
            BSF SDA
            BANK0
            BCF TRISA,0 ;SAIDA
            BSF SCL
            NOP
            NOP
            NOP
            NOP
            CLRC
            BTFSC SDA
            BSF STATUS,C
            BCF SCL
            RETURN

Comments are closed.

Back To Top