24 dezembro 2013

Display LCD 16x2 Arduino HD44780

Post "light" para (quase) encerrar o ano, vamos mostrar a ligação do LCD 16x2 com backlight azul, que utiliza o chip de controle HD44780.

A ligação é praticamente a mesma do display WH1602A, com a diferença que, no LCD que vamos utilizar agora, os pinos são numerados de 1 a 16 continuamente, e estão no topo do LCD.

Dependendo do modelo, a função dos pinos vem marcada na própria placa :


Pinagem LCD 16 x 2 HD44780
  • Pino 1 - Vss  (Terra - 0v)
  • Pino 2 - Vdd (Vcc - 5v)
  • Pino 3 - V0 - Ajuste de contraste
  • Pino 4 - RS - Register Selec
  • Pino 5 - RW - Read / Write - Leitura / Escrita
  • Pino 6 - E - Enable
  • Pino 7 à 14 - D0, D1, D2, D3, D4, D5, D6, D7 (Dados)
  • Pino 15 - A - Anode Backlight (Anodo luz de fundo)
  • Pino 16 - K - Negativo Backlight

O esquema de ligação do display LCD 16x2 ao Arduino e ao potenciômetro utilizado para ajuste do contraste:

Tabela pinos HD44780 lcd 16x2
  

Ligacao LCD 16x2 HD44780 Arduino Uno

Para finalizar, use este programa para escrever no LCD 16x2:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Programa : Teste de Display LCD 16x2 Arduino
// Alteração / revisão : Arduino & Cia  
   
#include <LiquidCrystal.h> //Carrega a biblioteca LiquidCrystal  
   
//Define os pinos que serão utilizados para ligação ao display  
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);   
  
void setup() 
{  
 //Define o número de colunas e linhas do LCD:  
 lcd.begin(16, 2);  

 //Envia o texto entre aspas para o LCD :  
 lcd.print("Arduino e Cia");  
}  
  
void loop()  
{  
   //Insira aqui o código para alterar o texto, gerar 
   //efeito "blink" (piscar), etc.  
} 

Um datasheet bem completo sobre o controlador HD44780, utilizado por vários fabricantes de displays, você encontra nesse link.


15 comentários:

  1. Boa noite,
    gostaria de saber se tem como deixar um texto na primeira linha com o scroll e a segunda linha parada?
    Ou seja, o texto da primeira linha rolando e o da segunda parado.
    Será que tem como?
    Obrigado

    ResponderExcluir
    Respostas
    1. Boa tarde Henrique,

      Desculpe a demora na resposta, mas achei a sua pergunta tão interessante que fiz um post sobre isso, veja se ajuda :

      http://www.arduinoecia.com.br/2014/03/arduino-como-realizar-um-scroll-no-lcd.html

      Abraços !

      Excluir
    2. Muito obrigado mesmo! Ajudou bastante!
      Seu blog é um dos melhores sobre Arduino, parabéns!

      Excluir
    3. Opa, Valeu Henrique ! Abraço e volte sempre. :-)

      Excluir
    4. Olá amigo, obrigado e parabéns por este post, sempre acompanho!
      Sobre as linhas 20 e 21, onde vc colocou: "//Insira aqui o código para alterar o texto, gerar //efeito "blink" (piscar), etc. Vc poderia, por favor, me dar um exemplo de como e o que poderia ser colocado nessas linhas?
      Obrigado

      Excluir
    5. Bom dia,

      Você pode utilizar comandos para posicionar o cursor e escrever, como por exemplo :

      lcd.setCursor(0,0); //Coluna, linha
      lcd.print("Teste"); //Imprime a palavra Teste na posição do cursor

      Ou então gerar um efeito de piscar, como por exemplo :

      lcd.setCursor(0,0) //Posiciona o cursor
      lcd.print("Teste"); //Imprime a palavra Teste
      delay(1000); //Aguarda 1 segundo
      lcd.setCursor(0,0); //Posiciona o cursor
      lcd.print(" "); //Imprime caracteres em branco na mesma posicao anterior

      Esses são apenas alguns exemplos, utilizando os próprios comandos do Arduino. Na biblioteca LiquidCrystal você encontra outros exemplos para piscar, rolagem de tela, etc.

      Abraço e obrigado !

      Excluir
  2. tem como conectar o lcd utilizando apenas quatro pinos ?

    ResponderExcluir
    Respostas
    1. OI Pedro,

      Tem sim, mas você tem que usar um adaptador I2C.

      Abraço !

      Excluir
  3. Poderia me dizer qual o site/programa que usam para fazer a representação prática ilustrada do circuito? Estou organizando uma apresentação e a documentação ficaria bem melhor.
    Obrigado.

    ResponderExcluir
    Respostas
    1. Boa tarde Bruno,

      O programa que utilizamos é o Fritzing, disponível para download neste link:

      http://fritzing.org/home/

      Abraço e boa apresentação! :)

      Excluir
  4. Ola tem como usar o display sem arduino se tiverme avise ;)

    ResponderExcluir
    Respostas
    1. Bom dia

      Você pode até usar sem Arduino, mas você provavelmente vai precisar de um microcontrolador pra mandar informações para o dipslay. O PIC é uma opção. :)

      Abraço!

      Excluir
  5. Boa tarde. Gostaria de saber se é possível controlar o Backlight do lcd de alguma forma.. Este potenciômetro apenas controla o contraste certo?..
    Grato!

    ResponderExcluir
    Respostas
    1. Boa noite,

      Dê uma olhada nesse link, por favor. Tem o que você precisa:

      http://labdegaragem.com/profiles/blogs/controle-de-display-lcd-com-garagino-ou-arduino

      Abraço!

      Excluir
  6. alguem sabe se eu consigo um painel bem grande compativel com arduino

    ResponderExcluir