LCD Keypad Shield + Simulino


Vamos simular o LCD Keypad Shield?


 Tutorial no Youtube: http://youtu.be/Xzee937xzaE



[DOWNLOAD]

Hoje irei demonstrar mais um modo para simularmos nossos queridos projetos, e em especial aquele shield bem conhecido por nós hobbistas das plataforma Arduino, que é o KEYPAD SHIELD, aquele que possui
um display LCD 16x2 e alguns botões.

Segue imagem do mesmo abaixo:

Para quem explorou seu esquema elétrico, pode perceber que ele é bastante otimizado. Proporcionando uma boa otimização quanto à quantidade de pinos necessárias para seu funcionamento.

 Observando apenas o conjunto do Display LCD, são utilizados apenas 6 pinos, sendo eles o sinal de EN, RS, D7,D6,D5 e D4. Ou seja, ele utiliza 2 pinos para o controle padrão destes displays ( EN e RS), e mais 4 pinos para o envio de dados e comandos, que são:  D7, D6, D5 e D4.

Agora para o conjunto de botões, temos uma implementação bem interessante, pois para a maioria deles é utilizado uma cadeia de divisores de tensão, para assim permitir que seja utilizado apenas "1" pino da nossa placa do Arduino. Ou seja, ao invés de utilizarmos 5 pinos para controlar 5 botões, são necessários apenas 1 pino, tendo como premissa que não estaremos lendo um sinal digital e sim um sinal analógico para podermos indentificar qual foi o botão pressionado.

Mas agora alguém me pergunta: "Mas não existem 6 botões?" Responderei: "Sim meu caro Sherlock Holmes!rs", o que acontece é que o Botão de Reset não pode ser adicionado à estes divisores de tensão, pois ele precisa ir diretamente acoplado no pino de reset, por isso ele se encontra em um pino separado.

Vendo o esquema elétrico, podemos observar isto:



Vamos simular? 



Como este shield é acoplado em nossas placas do Arduino, vamos nos utilizar do nosso simulador do Arduino, o SIMULINO, e dentro deste projeto eu adicionei mais um bloco de circuitos referentes ao Keypad Shield, já com seus botões de controle e LCD.

Segue um exemplo da ligação entre as placas.:


Onde são interconectados os sinais de terra (Gnd), Reset, AN0 (sinal analógico dos botões), e os sinais do Display LCD (EN,RS,D7,D6,D5 e D4).

Foi adicionado um Terminal Serial, para que sejam exibidas nossas mensagens de debug. Ele não precisa ser retirado, e funciona como nosso debug utilizado através da Serial Virtual da nossa IDE (ou plataforma de programação ).


 Dentro do Keypad Shield, nos deparamos com o seguinte esquema:


 Tendo a disposição dos botões parecidas com a que utilizamos em nosso shield, para ficar bem familiar.

Aqui você só precisa controlar conforme  o shield, apertando os botões e verificando o seu funcionamento.

;-----------------------------------------------------------------------------------
 Observação:

Existe um possível "bug" no simulador Proteus, mas tenham calma, é fácil para contorná-lo. 
Ainda estou verificando se acontece em outros microcomputadores ou se é apenas no meu.
O que acontece é que quando iniciamos o simulador, devemos estar com o bloco do Keypad Shield aberto, ou seja, devemos estar dentro da planta do shield, tendo tal visão:

 
Pois se o simulador for aberto fora deste bloco, aparentemente a simulação referente ao Display LCD não funciona de modo à liga-lo. Aparentemente ele não liga se não estivermos vendo ele.
Então é simples, basta iniciar a simulação com esta janela aberta que tudo irá funcionar.
;-----------------------------------------------------------------------------------


Logo estarei fazendo um vídeo para mostrar como fica a simulação.

Os arquivos estão dividos em pastas, com os esquemas e a imagem do Shield.
Dentro da pasta dos fontes (source), foram adicionados dois projetos: um para as placas do Arduino com o compilador padrão dele, onde os arquivos terminam com *.ino , e outro para as placas do Chipkit, pois para o compilador deles a extensão do arquivo é o *.pde .  

Observem bem antes de abri-los. ^^ 

;-----------------------------------------------------------------------------------
 Observação:
 Dentro do código fonte, foram adicionados 3 tipos de configurações de pinos para o shield
porque já me deparei com 3 tipos de pinagens diferentes.
Caso o shield não funcione da primeira vez, tenha calma, provavelmente você precisa
verificar qual é a configuração correta para o seu shield. 
As mais utilizadas já estão dentro do arquivo fonte.    
;-----------------------------------------------------------------------------------


Foram adicionados os *.hex e o *.elf, para quem quiser apenas simular sem compilar, e quem sabe fazer o disassembler do projeto.

Estamos esperando seus comentários. Não deixem de comentar.

Até o próximo post.


  [DOWNLOAD]







2 comentários:

  1. Boa-tarde , meu nome é Milson sou estudante de computação segunda fase
    e estou com um trabalho do final do semestre da matéria de arquitetura e estou
    com muitos problemas e duvidas para faze-lo, gostaria muito que me desses umas
    dicas que pudessem me ajudar a desenvolver o tal trabalho, eu vi seu blog e percebi
    que você entende de assembly, arduino, proteus e sistemas embarcados....
    Sendo um pouco direito.... tivemos aulas com proteus e nosso professor montou um computador
    completo com vários componentes o processador usado foi o 8086 e um lcd que mostra as
    horas... Por tanto agora ele ordenou que cada grupo de dois alunos pensasse em projeto
    e construí-lo , desde que não seja trivial, por tanto eu o meu colega estamos com duas
    ideias montar uma matriz de led que mostram algumas letras a passarem
    ou fazer um jogo de caça nikei, cada matriz apresenta um desenho e vai sorteando na medida que uma tecla for premida...
    A maquina já esta montada precisamos de ajuda de como montar
    substituir o lcd que esta instalado na maquina e montar a matriz de led ou ou um outro screen....
    Por favor se você poder me ajudar estarei bastante grato...
    Não sei muito sobre assembly sei bem pouco faço algumas rotinas simples no emu8086 apenas

    ResponderExcluir
  2. Boa tarde , eu estou tentando ligar o shield lcd keypad fora do arduino , mais nao estou conseguindo descobrir quais sao os pinos certos na placa para a ligação

    ResponderExcluir