- Materiais requisitados:
- Breve introdução ao display LCD de matriz de pontos de 16 × 2:
- Diagrama de circuito e conexão:
- Programando MSP430 para LCD usando Energia:
- LCD 16x2 com MSP430G2:
Este é o terceiro tutorial na sequência de tutoriais em que estamos aprendendo a programar o LaunchPad MSP430G2 usando o IDE Energia. Em nosso tutorial anterior, aprendemos como controlar os pinos de entrada e saída digital em nossa placa MSP. Neste tutorial, aprenderemos como fazer a interface de um LCD com a placa para que possamos exibir informações úteis.
O LCD que estamos usando neste projeto é o display LCD de matriz de pontos 16 × 2 mais comumente usado em monitores alfanuméricos. A maioria de nós teria se deparado com isso por meio de PCOs públicos ou de outros projetos eletrônicos. Uma exibição como esta será muito útil para nossos tutoriais futuros para exibir dados e outras informações de depuração. A interface deste LCD com o MSP430 é muito fácil, graças à biblioteca disponível. Então, vamos mergulhar !!
Materiais requisitados:
- MSP430G2 LaunchPad da Texas Instruments
- Visor LCD de matriz de pontos 16 × 2
- Fios de conexão
- Energia IDE
Breve introdução ao display LCD de matriz de pontos de 16 × 2:
Como dito anteriormente, o IDE Energia fornece uma bela biblioteca que torna a interface um pedaço de bolo e, portanto, não é obrigatório saber nada sobre o módulo de exibição. Mas, não seria interessante mostrar o que estamos usando !!
O nome 16 × 2 implica que a exibição tem 16 colunas e 2 linhas, que juntas (16 * 2) formam 32 caixas. Uma única caixa seria algo assim na imagem abaixo
Uma única caixa tem 40 pixels (pontos) com uma ordem de matriz de 5 linhas e 8 colunas, esses 40 pixels juntos formam um caractere. Da mesma forma, 32 caracteres podem ser exibidos em todas as caixas. Agora vamos dar uma olhada nas pinagens.
O LCD tem um total de 16 pinos, conforme mostrado acima, eles podem ser categorizados em quatro grupos como a seguir
Pinos de fonte (1, 2 e 3): esses pinos fornecem a potência e o nível de contraste do display
Pinos de controle (4, 5 e 6): esses pinos definem / controlam os registros no IC de interface do LCD (mais informações podem ser encontradas no link abaixo)
Pinos de dados / comando (7 a 14): Esses pinos fornecem os dados de quais informações devem ser exibidas no LCD.
Pinos de LED (15 e 16): Esses pinos são usados para acender a luz de fundo do LCD, se necessário (opcional).
De todos esses 16 pinos, apenas 10 pinos são obrigatórios para o funcionamento correto do LCD se você quiser saber mais sobre esses monitores LCD, pule para este artigo sobre LCD.
Diagrama de circuito e conexão:
O diagrama de circuito completo para fazer a interface de um display LCD de matriz de pontos de 16 × 2 com MSP430G2 é mostrado abaixo.
Uma das principais restrições ao fazer a interface entre esses dois é suas tensões operacionais. O display LCD tem uma tensão operacional de + 5V, enquanto o MSP opera apenas com 3,6V. Para nossa sorte, o pino de dados do IC da interface LCD (HD44780U) tem uma ampla tensão de operação de 2,7 V a 5,5 V. Portanto, temos que nos preocupar apenas com o Vdd (pino 2) do LCD enquanto os pinos de dados podem funcionar mesmo com 3,6V.
A placa MSP430G2 por padrão não fornece um pino de + 5V, mas podemos fazer um pequeno hack para obter + 5V do MSP430 usando a porta USB. Se você der uma olhada perto da porta USB, você encontrará um terminal chamado TP1, este terminal nos dará + 5v. Tudo o que temos que fazer é soldar um pequeno pino conector macho, conforme mostrado abaixo, para que possamos conectá-lo ao nosso display LCD.
Nota: Não conecte cargas que possam consumir mais de 50 mA neste pino de 5 V, pois isso pode fritar sua porta USB.
Se você não estiver interessado em soldar, basta usar qualquer fonte regulada de + 5V e alimentar o LCD, nesse caso, certifique-se de conectar o aterramento da fonte de alimentação ao aterramento da placa MSP.
Assim que terminar de conectar o pino de + 5V, os outros pinos serão bastante simples. Agora que nosso hardware está pronto, vamos passar para a parte do software.
Programando MSP430 para LCD usando Energia:
O programa completo para fazer a interface de um MSP430G2553 com display LCD é fornecido no final desta página. O código pode ser compilado, carregado e usado como tal. Nos próximos parágrafos, explicarei como o programa funciona.
Antes de prosseguirmos com a explicação, devemos anotar os pinos que estamos usando. Se você der uma olhada no diagrama de circuito acima e no diagrama de pinagem MSP430 abaixo
Você pode concluir que conectamos o LCD conforme a tabela a seguir
Nome do pino LCD |
Conectado a |
Vss |
Terra |
Vdd |
+ 5V pino USB |
Rs |
Pino 2 do MSP |
R / W |
Terra |
Habilitar |
Pino 3 do MSP |
D4 |
Pino 4 do MSP |
D5 |
Pino 5 do MSP |
D6 |
Pino 6 do MSP |
D7 |
Pino 7 do MSP |
Com isso em mente, vamos começar a definir os pinos LCD usados em nosso programa. Nomearemos cada pino com um nome mais significativo para que possamos usá-lo facilmente mais tarde.
#define RS 2 #define EN 3 #define D4 4 #define D5 5 #define D6 6 #define D7 7
Isso significa simplesmente que em vez de chamar o pino 2, posso me referir a ele como RS a partir de agora, da mesma forma para todos os 6 pinos.
A próxima etapa seria incluir a biblioteca LCD. Esta biblioteca teria sido instalada automaticamente quando você instalou o IDE Energia. Então, basta adicioná-lo usando a seguinte linha
#incluir
O próximo passo é mencionar os pinos aos quais o LCD está conectado, como já o chamamos usando o #define , agora podemos simplesmente mencionar os nomes dos pinos do LCD. Certifique-se de que a mesma ordem seja seguida.
LiquidCrystal lcd (RS, EN, D4, D5, D6, D7);
Agora vamos passar para a configuração void () função. Existem tantos tipos de monitores LCD variando em tamanho e natureza, o que estamos usando é 16 * 2, então vamos especificar isso em nosso programa
lcd.begin (16, 2);
Para imprimir algo no LCD, temos que mencionar duas coisas no programa. Uma é a posição do texto que pode ser mencionada usando a linha lcd.setCursor () e a outra é o conteúdo a ser impresso que pode ser mencionado por lcd.print (). Nesta linha, estamos definindo o cursor para 1 st linha e 1 st coluna.
lcd.setCursor (0,0);
Da mesma forma, também podemos
lcd.setCursor (0, 1); // define o cursor para a 1ª coluna 2ª linha
Assim como apagar um quadro branco depois de escrever nele, um LCD também deve ser apagado quando algo estiver escrito nele. Isso pode ser feito usando a linha abaixo
lcd.clear ();
Assim, a completa configuração void () função seria algo parecido com isso.
configuração vazia () {lcd.begin (16, 2); // Estamos usando um display LCD 16 * 2 lcd.setCursor (0,0); // Posiciona o cursor na 1ª linha 1ª coluna lcd.print ("MSP430G2553"); // Exibe uma mensagem de introdução lcd.setCursor (0, 1); // define o cursor para a 1ª coluna 2ª linha lcd.print ("- CircuitDigest"); // Exibe uma mensagem de introdução delay (2000); // Aguarde o display mostrar informações lcd.clear (); // Em seguida, limpe-o}
A seguir, dentro de nossa função void loop () , vamos continuar incrementando um número a cada 500 ms e exibir o número no LCD. Este número testa e é inicializado como 1 conforme mostrado abaixo
teste interno = 1;
Para criar um atraso, podemos usar a função embutida delay (). Temos que mencionar quanto tempo precisamos que o atraso ocorra. No nosso caso, usei 500ms conforme mostrado abaixo
atraso (500);
O incremento de uma variável pode ser feito por test ++, o resto já foi explicado. O código completo dentro do loop vazio é mostrado abaixo
void loop () {lcd.print ("LCD com MSP"); // Exibe uma mensagem de introdução lcd.setCursor (0, 1); // define o cursor para a coluna 0, linha 1 lcd.print (test); // Exibe uma mensagem de introdução delay (500); lcd.clear (); // Em seguida, limpe test ++; }
LCD 16x2 com MSP430G2:
Assim que seu hardware e código estiverem prontos, simplesmente conecte sua placa ao computador e carregue o código como fizemos no tutorial um. Assim que o código for carregado, você deverá ver o visor mostrando o seguinte.
Após dois segundos, a tela de exibição mudará de configuração para loop e começará a incrementar a variável e será exibida na tela conforme mostrado na imagem abaixo.
O trabalho completo pode ser conferido no vídeo abaixo. Vá em frente e tente alterar o que está sendo exibido no LCD e brinque com isso. Espero que você tenha entendido o tutorial e aprendido algo útil com ele. Se você tiver alguma dúvida deixe-a na seção de comentários abaixo ou use os fóruns. Vamos nos encontrar em outro tutorial.