COMO MONITORAR INTERRUPTORES E DISPOSITIVOS COM UM LCD (ON/OFF) USANDO PIC 16F628A

Muitas vezes, se empregam paineis com luzes para indicar o funcionamento de um aparelho elétrico, como por exemplo, um motor, que se encontra afastado do operador. Que tal fazer isto com um LCD? Veja como isto é possível…

Veja o esquema abaixo:

Foi usado um LCD de cristal liquido de 16 x 2, em conjunto com o microcontrolador PIC 16f628a. O inteiro portB foi usado para receber informação proveniente de chaves ou mesmo de fotoacopladores, os quais estão ligados aos dispositivos a serem monitorados. Cada linha do Lcd mostra a situação de um aparelho ou interruptor. No código Asm pode ser alterado o nome do dispositivo, para coincidir com a realidade do uso. Ex. Um motor – poderá mudar ” Chave1″ para ” MOTOR 1″. A indicação é por ‘on’ quando ligado e ‘off’ quando desligado. Ao ligar, após aparecer o nome do projeto, a tela mostrará de 2 em 2, todas as 8 chaves de forma sucessiva, sendo cada apresentação de 2 segundos de tempo. Se apertarmos o interruptor ‘b1’ por 1 segundo, poderemos navegar pelas 8 chaves, incrementando a cada aperto e ficando estática por um tempo de 10 segundos (pode-se mudar este tempo no código asm). Depois, retorna para apresentação automática, em modo alternado. Este projeto é para fins didáticos, mas poderá dar uma idéia do que se pode fazer para monitorar dispositivos.

Segue o arquivo ASM:

LCD_MONITOR_ASM

Segue o arquivo HEX:

LCD_MONITOR_HEX

datasheet PIC16f628a

Outros assuntos:
Como posso controlar meu peso?
Como reagir a um assédio sexual?
Como lidar com os sogros?
Converse com seus filhos sobre sexo
O segredo de uma familia feliz (pdf)
Entrevista com um bioquímico

Até o próximo artigo!!!

18 comments on “COMO MONITORAR INTERRUPTORES E DISPOSITIVOS COM UM LCD (ON/OFF) USANDO PIC 16F628A

  1. pensei num projeto outro dia que vi um circuito ai lembrei de vc , seria possivel gerar caracteres com um pic esincronizar com um sinal de video qualquer , tipo uma imagem de tv e por cima uma mensagem de propaganda , mas precisava que tivesse uma entrada para o teclado de computador e a propria tv seria o monitor , vc escreve a mensagem que vai rodar na tela , como efeito bem simples tipo de passagem de matrix de leds , seria interessante para restaurantes o cliente visualizar uma promoção enquanto assinte o futebol rsrsr , ou a novela ( eka) .
    é só mais uma ideia pro seu famoso caderninho de projetos abraço

  2. ola amigo , muito boa ideia este projeto , vc poder monitorar algum equipamento se ele esta operando ou não , só uma sugestão se é que posso sugerir mas que tal alem de te informar no display ele habilitasse uma saida que pudesse ser usado como desligamento do mesmo , imagina uma esteria que não pode para e nela um produto a ser montado tipo se por acaso ela pare derrepente e a maquina iria continuar jogando o produto , seria interessante que este sensor pudesse para a maquina do produto , ou até mesmo uma sirene de alarme acionado ou se ela transimitisse em rf esta informação , teria varias opções né , até a idéia de transmitir por rf uma informação tipo uma central de alarme que tem os sensores sem fios ligados por rf à ela a central cadastra o sensor por setor entende mas isso são só ideiais ok , sei que vc gosta de desafios rsrsrs

    1. Olá Liliano! Geralmente, na industria, geralmente se usa um CLP para controlar todas as etapas da cadeia produtiva. Cada processo tem seu requisitos e necessidades. Com um CLP fica muito mais facil fazer uma programação que satisfaça a necessidade real de operação. Todos esses elos criticos podem ser tratados e até gerar alarmes para o operador. A vantagem de um CLP é que ele é preparado para operar nas tensões industriais e tem entradas e saída normalizadas. O uso de um microcontrolador ficaria muito a desejar, pois seria um projeto para cada necessidade. O CLP é flexivel, como se fosse ‘um genérico’ para qualquer aplicação. Agora , com respeito a um circuito que gerasse uma mensagem sobreposta a video de uma tv, já vi alguma coisa a respeito. O problema é que se exige microcontroladores de alta velocidade que processem rapidamente informações em tempo real. Já não dá com Pic comum de no maximo 20mhz. Parece que, usando computador, e programas especificos, se consegue mais facilmente este efeito.
      Cláudio

  3. Boa noite Claudio, quero agradecer pelo excelente trabalho que tem prestado aos iniciantes no mundo dos microcontroladores como eu, e até profissionais que resolvem seus problemas com as soluções aqui publicadas gentilmente por você! Vou fazer como nossos amigos aí! vou fazer o meu pedido para o papai Noel Lários, Gosto muito de jogar Truco.. rs ja até fiz alguns marcadores de truco com contadores de década famoso 4017, mas gostaria de fazer um microcontrolado de preferencia PIC, pois é o que estou começando a aprender, Teria como pensar em alguma coisa pra mim? se não for pedir muito!rsr desde já muito obrigado!

    1. Olá Sergio!
      Agradeço seu comentário e elogios. O que exatamente faz este ‘contador de trucos’? Quantos digitos necessita? Como seria seu uso? Descreva em detalhes como você usaria e que atribuições tem que ter. Afinal, ‘truco’ não é meu forte.
      Claudio

      1. Olá Claudio, o marcador é simples, o jogo ganha quem chegar a pontuação de 12 pontos.
        para você ter uma ideia, o marcador normalmente utilizado é um pedaço de madeira 50mm X 120mm aproximadamente, com 12 furos na vertical ou na horizontal um coluna ou fila para cada jogador um ao lado do outro, dependendo de quem o fez, onde se coloca um pino de metal ou madeira e do lado do furo o numero em questão. Quando o jogador ganha a rodada ela pode ser paga pelo adversário da seguinte forma;
        1 ponto, 3 pontos, 6 pontos, 9 pontos e 12 pontos.
        eu imaginei um contador com 12 leds para cada jogador, não precisaria de display, somente o led aceso para ficar bem próximo do tradicional, o problema é o numero de portas, 12 para cada jogador mais a tecla para marcar os pontos totalizando 26 portas.Não sei como usar um mcu com menos portas do que o 16F877, sei que você consegue..rsrs
        Nesse marcador eu gostaria que quando ele chegasse a 11 esse led ficasse piscando indicando atenção, pois essa mão ninguém pode trucar.
        Espero ter entendido alguma coisa do que escrevi!
        Desde já obrigado!
        Sérgio

        1. Olá Sergio! Entendi bem o seu ‘marcador de truco’. Vai para o ‘caderninho’,ok. Quanto ao formato , por exigências de segurança, não é aceito a postagem de arquivos .hex. Mas você poderá abrir no programador alterando o ‘filtro’ de ‘.hex’ para ‘all files’. Se mesmo assim tiver problemas, copie qualquer arquivo hex que tenha, abra ele, apague o seu conteudo e copie o hex.txt e cole dentro deste arquivo que voce copiou. Agora , renomeie para o nome que desejar. Deverá ser aceito com certeza.
          Claudio

      2. Olá de novo Claudio, desculpe pela pergunta e pela minha ignorancia, o seu arquivo .HEX esta no formato .TXT, como faço para gravar ele no pic usando o MPlab?

  4. olá claudio , muito obrigado por fazer esse projeto .
    montei e funcionou certinho , sendo que quando troca a página a linha de baixo pisca muito lento , e a de cima pisca rápido , é assim mesmo ou é o meu display que está ruim ??

    1. Olá Michael! Você quer dizer: A primeira linha carrega rápido e a segunda linha carrega mais lento, é isto? Isto se deve ao tempo de habilitação do Lcd no pino “E”. No desenvolvimento, usei um delay maior porque alguns Lcd não funcionavam bem sem ela. Na parte da rotina de Lcd, no ASM, você poderá descomentar a primeira subrotina “Lcd_pulse_E ” (original) e comentar a segunda “Lcd_pulse_E “(adaptada para os projetos de desenvolvimento), como pode ver abaixo:

      Esta é a original, mais rápida:
      ;LcdPulse_E
      bsf LCD_E ;Enables LCD
      NOP
      NOP
      NOP
      NOP
      bcf LCD_E ;Disabled LCD
      return

      Esta é mais lenta, mas se presta bem ao desenvolvimento e a Lcd cri-cri’s:

      LcdPulse_E bsf LCD_E ;Enables LCD
      movlw 1 ;Wait 1ms
      call LcdDelay
      bcf LCD_E ;Disabled LCD
      movlw 1 ;Wait 1ms
      call LcdDelay
      return

      Depois me retorna.

      Claudio

Comments are closed.

Back To Top