No artigo de hoje vamos ensina-los a utilizar um display de cristal líquido super comum no mundo da eletrônica e sistemas embarcados; trata-se do display LCD de 2 linhas e 16 caracteres por linha (mais conhecido como display LCD 16×2).
   A maior parte dos fabricantes deste tipo de display utiliza o controlador (circuito integrado) de LCD HD44780 ou seus similares para fazer o gerenciamento dos caracteres mostrados; o datasheet deste circuito integrado pode ser encontrado aqui. Para demonstrar o funcionamento deste tipo display nós faremos uso de um microcontrolador Arduino UNO, que já dispõe de bibliotecas e exemplos funcionando perfeitamente com este tipo de componente.
   O esquema de ligação para utilizar o LCD  16×2 se encontra abaixo: são utilizados alguns pinos para comunicação (informações á serem mostradas), além de pinos para alimentação do LCD e ajuste do contraste da tela.
   A conexão deste LCD ao Arduino segue a seguinte ordem:
– Pino 1 do LCD -> GND do Arduino
– Pino 2 do LCD -> +5V do Arduino
– Pino 3 do LCD ->  Centro do potenciômetro (contraste da tela)
– Pino 4 (RS) do LCD ->  pino 12 do Arduino
– Pino 5 (R/W) do LCD ->  GND do Arduino
– Pino 6 (E) do LCD ->  pino 11 do Arduino
– Pino 11 (D4) do LCD -> pino 5 do Arduino
– Pino 12 (D5) do LCD -> pino 4 do Arduino
– Pino 13 (D6) do LCD -> pino 3 do Arduino
– Pino 14 (D7) do LCD -> pino 2 do Arduino
– Pino 15 (A) do LCD ->  Resistor em série com o +5V do Arduino (luz de fundo do display)
– Pino 16 (K) do LCD ->  GND do Arduino
   A biblioteca “LiquidCrystal” vem inclusa nas últimas versões da IDE do Arduino, e contém vários programas (sketchs) de exemplo. O primeiro sketch que vou mostrar para vocês aqui hoje se chama “HelloWorld.ino” e pode ser acessado na IDE do Arduino em “Arquivo > Exemplos > LiquidCrystal”; o programa consiste em imprimir a palavra “Hellow, world!” na linha de cima do LCD e o valor de um contador (incrementado a cada segundo) na linha  de baixo.
 // include the library code:  
 #include <LiquidCrystal.h>  
   
 // initialize the library with the numbers of the interface pins  
 LiquidCrystal lcd(12, 11, 5, 4, 3, 2);  
   
 void setup() {  
  // set up the LCD's number of columns and rows:   
  lcd.begin(16, 2);  
  // Print a message to the LCD.  
  lcd.print("hello, world!");  
 }  
   
 void loop() {  
  // set the cursor to column 0, line 1  
  // (note: line 1 is the second row, since counting begins with 0):  
  lcd.setCursor(0, 1);  
  // print the number of seconds since reset:  
  lcd.print(millis()/1000);  
 }  
   Ao fazer o upload deste código para o Arduino, você deve ver observar na tela do LCD algo parecido com a foto acima; caso não veja  nada (tela toda branca ou toda escura) você deve  ajustar o contraste de tela através do potenciômetro que está montado junto ao circuito. Veja como fazer isso no video abaixo (observe o potenciômetro sendo girado na esquerda da imagem).
   Uma característica da biblioteca deste LCD para Arduino (liquidCrystal) é que você pode escrever a letra que quiser na posição do display que você quiser!. O exemplo abaixo* ilustra como.
* Dica: este exemplo foi desenvolvido por mim (baseado no exemplo “setCursor.ino”, porém ele não vem com a IDE do Arduino.
 // include the library code:  
 #include <LiquidCrystal.h>  
   
 // these constants won't change. But you can change the size of  
 // your LCD using them:  
 const int numRows = 2;  
 const int numCols = 16;  
   
 // initialize the library with the numbers of the interface pins  
 LiquidCrystal lcd(12, 11, 5, 4, 3, 2);  
   
 void setup() {  
  // set up the LCD's number of columns and rows:   
  lcd.begin(numCols,numRows);  
 }  
   
 void loop() {  
       
     lcd.setCursor(0,0); // (0,0) significa coluna 0 e linha 0 (1a linha)                      
     lcd.write("1- Palavra aqui,"); // o comando lcd.write("") deve conter a palavra que voce deseja  
                     // escrever no LCD   
     lcd.setCursor(0,1); // (0,1) significa coluna 0 da linha 1 (2a linha)     
     lcd.write("2- Outra Palavra"); // o comando lcd.write("") deve conter a palavra que voce deseja  
             // escrever no LCD   
     delay(200);  
     lcd.clear(); // limpa a tela do LCD a cada 2 segundos  
       }  

   O comando ” lcd.setCursor( , ) ” leva o “cursor” do lcd até a posição que você quiser; tudo que você mandar o ” lcd.write(“‘) ” escrever, será escrito começando nesta posição. Rode o exemplo e veja como  ele funciona!.
Dá pra fazer um monte de coisas legais com um display LCD e um Arduino, como por exemplo um bargraph (barra de “loading”), caracteres especiais (símbolos que não estao na tabela ASCII), entre outros. Mostramos para vocês aqui hoje apenas o básico (conexão, ligação e sketches de exemplo), porém encorajamos todos os curiosos á bisbilhotar e brincar na página oficial da biblioteca “liquidCrystal” no Arduino.cc .

– Para comprar um Display LCD 16×2 em nosso Parceiro ICStation (da China), clique no texto: 1602A HD44780 Character LCD Display Module LCM Blue Backlight
– Para comprar o Arduino UNO em nosso Parceiro ICStation (da China), clique no texto: ICStation ATMEGA328 UNO V3.0 R3 Board Compatible Arduino UNO R3
– Para comprar um potenciômetro de 10k ohms em nosso Parceiro ICStation (da China), clique no texto: 10K Ohm B10K Knurled Shaft Linear Rotary Taper Potentiometer
– Para comprar os cabinhos coloridos (jumpers) em nosso Parceiro ICStation (da China), clique no texto: 1pcs Dupont Wire 10CM 2.54MM Female to Male 1P-1P Jumper Cable For Arduino

Como ligar um display LCD 16×2 com Arduino
Classificado como:                    

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Solve : *
17 + 3 =