Controlando um LCD 16×2 com Arduino 235

Neste post você vai encontrar alguns testes básicos do display LCD 16×2 com arduino, um display muito comum com controlador HD44780, que se adapta aos mais diversos projetos, podendo ser usado com vários modelos de placas e microcontroladores como Arduino, Raspberry Pi, PIC, etc.

YouTube video

Esse display LCD tem 16 colunas e 2 linhas, com backlight (luz de fundo) azul e letras na cor branca. Para conexão, são 16 pinos, dos quais usamos 12 para uma conexão básica, já incluindo as conexões de alimentação (pinos 1 e 2), backlight (pinos 15 e 16) e contraste (pino 3).

Pinagem LCD 16x2

Conexão display LCD 16×2 com Arduino

Na conexão do display ao Arduino Uno vamos utilizar apenas 4 pinos de dados (pinos digitais 2, 3, 4 e 5), e 2 pinos de controle (pinos digitais 11 e 12).

Para o ajuste do contraste, usamos um potenciômetro de 100K, mas você pode testar com outros valores como 10K ou 50K, por exemplo.

Ligacao LCD HD44780

Se preferir, você também pode utilizar um potenciômetro para regular a luz de fundo, nos pinos 15 e 16 do display. Outra opção é usar um resistor em um desses pinos.

Programa de controle LCD

O controle desse display pode ser feito utilizando-se a biblioteca LiquidCrystal, já embutida na IDE do Arduino.

No início do programa (linha 8), definimos os pinos que serão utilizados pelo displays, nesse formato:

LiquidCrystal lcd(<pino RS>, <pino enable>, <pino D4>, <pino D5>, <pino D6>, <pino D7>)

No setup, inicializamos o display definindo o número de colunas e linhas com o comando lcd.begin(16,2).

//Programa: Teste de Display LCD 16 x 2
//Autor: MakerHero

//Carrega a biblioteca LiquidCrystal
#include <LiquidCrystal.h>

//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);
}

void loop()
{
  //Limpa a tela
  lcd.clear();
  //Posiciona o cursor na coluna 3, linha 0;
  lcd.setCursor(3, 0);
  //Envia o texto entre aspas para o LCD
  lcd.print("MakerHero");
  lcd.setCursor(3, 1);
  lcd.print(" LCD 16x2");
  delay(5000);
  
  //Rolagem para a esquerda
  for (int posicao = 0; posicao < 3; posicao++)
  {
    lcd.scrollDisplayLeft();
    delay(300);
  }
  
  //Rolagem para a direita
  for (int posicao = 0; posicao < 6; posicao++)
  {
    lcd.scrollDisplayRight();
    delay(300);
  }
}

O programa acima posiciona o texto na posição desejada utilizando o comando lcd.setCursor(), e imprime a string na tela usando lcd.print(“Texto”). Depois de 5 segundos, são utilizados os comandos scrollDisplayLeft() e scrollDisplayRight() para “mover” os caracteres para a esquerda e para a direita, respectivamente.

Circuito Arduino e LCD 16x2

Gostou? Deixe seu comentário logo abaixo.

Faça seu comentário

Acesse sua conta e participe

235 Comentários

  1. Boa tarde, muito bom !!
    Utilizei o projeto de vocês como base para uma necessidade minha, e fiz alguns ajustes simples a mais.
    No meu caso, preciso que um produto passe por 2 pontos (sensores) para indicar que ele foi finalizado (inicializado e finalizado) para que não haja contagens duplicadas no meu processo.

    Sendo assim adicionei tais sensores no projeto e na simulação do Tinkercad tudo está funcionando perfeitamente, porém ao montar a protoboard conforme o projeto, o sinal não está de acordo com o esperado. Poderia me ajudar? Vou deixar um link abaixo para visualizar os arquivos. Não sou muito experiente com programação.

    “https://drive.google.com/drive/folders/149Bwmt6LYVQePYHoYZn5qCJ3ispNe6Tp?usp=sharing”

    1. Olá!

      Pela montagem parece que os botões estão ligados de uma forma que estão gerando um curto entre o positivo e o negativo.

      Você pode configurar os pinos que recebem os sinais do botão dessa forma aqui: pinMode(selectButton, INPUT_PULLUP);
      Com o INPUT_PULLUP você não precisa do resistor externo, e pode usar este post aqui como exemplo de como conectar o botão no Arduino: https://www.makerhero.com/blog/senha-de-atendimento-com-arduino/

      Abraços!
      Vinícius – Equipe MakerHero

      1. Obrigado pela resposta.

        Ontem (09/03) consegui resolver os problemas que estava tendo. A parte sobre meu sistema não responder conforme o programa, de fato era um curto no botão, troquei o modelo de botão que estava utilizando e também substituí os resistores por um de 10k e não tive mais problemas

        Quando ao meu painel de LCD que não estava mostrando as informações, soldei os pinos dos jumper’s nos conectores e não tive mais problemas também.

        Agora o programa está funcionando perfeitamente.

        Na prática não vou utilizar a placa UNO, mas sim uma HOFFER PLC com ATmega 368 e saídas a relé pois preciso trabalhar com um sinal 24v (ao invés de 5 ou 3.3v da UNO).

        Sobre sua sugestão do INPUT_PULLUP estava lendo sobre, e parece que se utilizado uma corrente maior que 5v pode danificar o resistor interno do arduino, não sei se entendi corretamente. Seria isso mesmo?

        1. Olá!

          A corrente que o atmega328 consegue fornecer é aproximadamente 40 mA, e tentar exigir corrente acima disso pode causar danos ao transistor de saída, mas o resistor a principio justamente limita a corrente.
          Colocar uma tensão acima de 5 V pode danificar independente do INPUT_PULLUP estar configurado ou não.

          Abraços!
          Vinícius – Equipe FlipeFlop

  2. Boa tarde.
    Segui exatamente como no esquema de ligação e o display acende mas não mostra mensagem.

    1. Olá Marcos!

      Mesmo ajustando o potenciômetro não apareceram os caracteres?

      Abraços!
      Vinícius – Equipe MakerHero

      1. Boa tarde, fiz as conexões iguais, e usei o mesmo script, mas não aparece o texto, apenas preenche da linha superior, como se fosse um teste

        1. Olá,

          Mesmo ajustando o potenciômetro fica só preenchido todos os caracteres?
          Existem caracteres especiais que podem não ser mostrador corretamente, você testou com as mesmas palavras do código?

          Abraços!
          Vinícius – Equipe MakerHero

  3. Olá Adilson… Tremenda surra aqui para ler gcode direto de um pendrive no Arduino e ver comandos no Display

  4. muito bom queria saber como ligar e desligardisplay lcd pelo monitor serial

  5. Boa Tarde, teria como eu programar o arduino com um sensor de pressão e o valor que o sensor de pressão tiver aparece no lcd?

    1. Luiz,

      Sim, é possível tranquilamente!

      Abraços!
      Diogo – Equipe MakerHero

  6. Bom dia! Percebi que houve uma mudança de ligação do potenciômetro nos dois esquemas de ligação . Inverteu os fios preto e vermelho do potenciômetro de um esquema para o outro. Você poderia me explicar? Obrigado. Carlos Leonardo

  7. Boa tarde amigo gostei muito do código.

  8. coloquei a pinagem corretamente e não aparece nada

    1. Sandré,

      Você verificou o contraste?

      Abraços!
      Diogo – Equipe MakerHero

  9. Olá. Muito bom! Mas estou em um projeto utilizando o display lcd para mostrar os parâmetros, e quero usar o timer 2 para efetuar as comparações. Mas quando eu vou simular no proteus, o display não faz nada. Será que ele usa o Timer 2 do arduino para funcionar? Como posso contornar esta situação?

  10. Antes de testar na prática testei no Tinkercad. Por que ele avisou que o Display teria queimado?
    Link para ver a imagem: https://lh3.googleusercontent.com/-5wEiut9xypo/XyGlrVceaWI/AAAAAAAAAGk/zplinIcv-KQ4Ydrabghuo39zqYBshG2JgCLcBGAsYHQ/s0/tinkercad%2Blcd.JPG

    1. Nathan,

      A imagem está offline.

      Abraços!
      Diogo – Equipe MakerHero

  11. Boa noite. Oque eu teria que fazer pra que um display desses ficasse com o fundo preto é letras caracteres em branco? Muito obrigado.

  12. olá, o display Lcd pode usar as portas 0 e 1 do Arduino?

  13. TOP!!!!!!!!!!!!

  14. Boa noite, consigo usar esta biblioteca em um pic18f4550? como configuro ela no proteus? obrigado

  15. Estou fazendo um projeto de uma gerador de energia, eu vou fazer a medição desse gerador e estou usando o Arduino Uno , Display 1602 e o sensor de tensão ZMPT101B. Voce pode me ajudar como eu faço a programação do arduino . Se vc tiver whatsapp para poder trocar umas ideias.

  16. após várias tentativas com outras postagens, só consegui com sua. obrigado

  17. Olá,
    tenho um problema no meu código.
    Estou tentando jogar um valor de um sensor de fluxo de água para o lcd, um valor que muda constantemente. no Serial.beging eu consigo ver os valores corretamente, mas quando jogo pro lcd ele não le os valores, começa a ler um monte de ???787hdwjhbcwuc e começa a passar um valor em cima do outro por todo o lcd.
    estou fazendo da seguinte forma:
    lcd.print(valorsensor);

    1. Raphael,

      Vá lá no nosso fórum e coloque seu código inteiro lá, fica mais fácil de prestar auxílio.

      Abraços!
      Diogo – Equipe MakerHero

  18. Vocês vendem o display 128×64. Já existe o módulo I2C para ele, só não há uma biblioteca válida. Porque não fazem um post sobre isso? E vendam o módulo com uma biblioteca de vcs, porque ele ocupa muitos pinos, o I2C são só dois no display 16×2 e 16×4. O 128×64 são 20.

  19. Parabéns, comprei um kit Arduíno com vcs faz algum tempo, e hoje, na quarentena, eu e meus filhos estamos montando vários projetos. Muito legal ver o display escrever o que a gente quer. REalmente algo pra gastar um bom tempo útil em casa. Valeu pessoal

  20. Boa noite , tenho um display 16×2 , já achei ha porta (38) mais ele só acende , já fiz de tudo para aparecer as coisas que escrevo no código mais nada aparece ele só fica aceso , tem como me ajudar…obrigado.

    1. Luiz,

      Verifique/modifique o contraste através do potenciômetro. Além disso, verifique todas as conexões/soldas, pois muitas as vezes é mal contato.

      Abraços!
      Diogo -Equipe MakerHero

  21. Olá me encontra com o seguinte problema: meu display aparece quadrados na primeira linha já conferi todas as ligações como devo prosseguir?
    observação: sei que não esta queimado porque usado outro código acidentalmente apareceu alguns símbolos

    Grato pela resposta

    1. Joseph,

      Você já tentou configurar o contraste do seu Display LCD? Geralmente o problem reside aí 🙂

      Abraços!
      Diogo – Equipe MakerHero

    2. Olá, vc tem que girar ha trimpot atrás do seu i2c

  22. Bom dia,
    Eu sou novo em Arduino e estou tentando seguir este tutorial em do Display LCD.
    Já conferi as pinagens e cabos, e estão corretos, mas quando eu passo a String para o display, pelo método lcd.print(“string”), o texto no display aparece todo desconfigurado, tipo como sinais e símbolos, (+-/<-), como se houvesse alguma incompatibilidade no padrão de texto ACSII. Alguém já teve esse problema ?
    Outra coisa que eu gostaria, como eu faria para aumentar o tamanho do texto no display, tipo diminuir o número de colunas e linhas, para que o texto fique maior ?

    Obrigado
    Bruno

    1. Bruno,

      Extremamente provável que há algum problema na solda dos pinos. Esse tipo de erro é comum quando os pinos de dados possuem algum curto.

      Abraços!
      Diogo – Equipe MakerHero

      1. Boa noite Diogo,
        Existe alguma outra possibilidade ? As soldas estão isoladas, não há nenhum contato entre os pinos de dados.

        1. Bruno,

          Dê uma conferida nesse link, tem algumas possibilidades: https://arduino.stackexchange.com/questions/19150/i2c-lcd-displaying-weird-characters

          Abraços!
          Diogo – Equipe MakerHero

  23. Olá! Assim como relatado por diversos colegas aqui, também não estou conseguindo fazer aparecer nada dos caracteres. O LCD acende mas nada é mostrado, o potenciômetro não tem ação nenhuma de ajuste, pra qualquer lado que eu vire nada acontece. Refiz a montagem diversas vezes, com e sem a board, está tudo correto. Inclusive comparei com a sugestão de montagem e códigos de outros sites, é basicamente a mesma coisa, mas não funciona. Não vi ninguém postando uma solução definitiva. O que mais pode ser afinal? Grato.

  24. Bom dia, estou com um problema o meu lcd 16×2 1602a só apresenta a linha de cima após energizado fiz refiz várias tentativas e descobri que a alimentação do lcd esta invertida, pois quando coloco na posição correta ele não apresenta nada e esquenta, mas quando inverto o led acende e só aparece a linha de cima. Alguem pode me ajudar, será que fui premiado com um lote defeituoso?

    1. Geniere,

      Apenas as letras da segunda linha não aparecem ou o próprio backlight fica apagado?

      Abraços!
      Diogo – Equipe MakerHero

  25. oque eu faço quando o texto nao aparece (a primeira linha fica td acesa porem sem texto ). ja mudei o pino RW pra GND porem continua com o mesmo erro
    e sem o pino RW no GND nem chega a acender o monitor de led

    1. Mussalam,

      Já verificou todas as outras conexões para ver se não há nada invertido?

      Abraços!
      Diogo – Equipe MakerHero

  26. Gostaria de conhecer todos os comandos possíveis para LCD com o Arduino.
    Obrigado

    1. Ola!

      A lista com os comandos você encontra no link: https://github.com/arduino-libraries/LiquidCrystal/blob/master/keywords.txt

      Abraços!
      Diogo – Equipe MakerHero

  27. Este exemplo poderia ser feito também no arduino nano? ou existem muitas diferenças?
    Obrigado

    1. Douglas,

      Acredito que apenas o nome dos pinos no programa se alterem 🙂

      Abraços!
      Diogo – Equipe MakerHero

  28. Atentem a pinagem do LCD que esta diferente mas esse link resolveu meu problema:
    https://www.arduinoecia.com.br/display-lcd-winstar-wh1602a/

  29. gostaria de saber se vcs sabem qual biblioteca usar para escrever no esp 32, uso a LiquidCrystal.h e n escreve. Fica tudo preto

    1. Olá Lucas,

      Utilize essa bilioteca: https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library

      Abraços!
      Diogo – Equipe MakerHero

  30. Boa Noite Felipe, Preciso muito da sua ajuda, estou tentando apresentar um projeto de controle de temperatura, utilizando Arduino,sensor de temperatura e demonstrando no display, porém tem 2 semanas que estamos tentando e nao conseguimos, tem como entrar em contato ?

    1. Olá, Amanda!

      Aconselho você a abrir um tópico no nosso fórum 😀

      Abraço!
      Diogo – Equipe MakerHero

  31. BOA TARDE ADILSON,NO LCD DEU UMAS FALHAS NO LEITOR,O QUE PODE SER.

    1. Olá, Ednei

      Consegue explicar quais falhas seriam essas?

  32. É possível trabalhar com esse display utilizando o Módulo Serial I2C e operar com a tensão de 3,3V? Estou usando o módulo NodeMCU com o ESP8266 em meu projeto e quero ligar um display 16×2 nele, mas parece que o ESP8266 opera apenas com a tensão de 3,3V.
    Obrigado!

    1. Olá, Tiago,

      Você pode ligar o Vcc do LCD no Vin do ESP, tendo em vista que esse pino está ligado diretamente aos 5V da USB, então se você alimentá-lo pela USB, conseguirá ligá-lo.

      Abraços!
      Diogo – Equipe MakerHero

  33. Bom dia sou leigo no asunto mas estou apaixonado pelas ideias e procuro le e entender o arduino ja faço algumas coisas mas quero ir mais longe

    1. Olá, Geraldo,

      É isso aí, siga em frente! Eu tenho certeza que você vai conseguir fazer coisas incríveis!

      Abraços!
      Diogo – Equipe MakerHero

  34. Ola, gostaria de saber se é possível, conectar o display e o teclado no mesmo conversor I2C, hora eu leio o teclado hora eu escrevo no display, tem algum exemplo? Obrigado

    1. Olá André,

      Não é possível conectar no mesmo conversor.

      Abraço!
      Rosana – Equipe MakerHero

  35. Meu monitor não registra a palavra. Não consigo saber o porque.

    1. Olá Elaine,

      Veja se todas as conexões do LCD com o Arduino estão feitas corretamente. Além disso, tente ajustar o potenciômetro, talvez ajude.

      Abraço!
      Rosana – Equipe MakerHero

  36. Olá Adilson bom dia amigo, Tudo jóia? Amigo estou com um pequeno projeto onde estarei usando os módulos RFID, display LCD 16×2 com o serial I2C acoplado, o matricial 4×4 e a câmera para arduino. Mas infelizmente não estou conseguindo achar biblioteca todas que já baixei da erro e também não estou conseguindo criar uma. Gostaria de te pedir uma ajuda na biblioteca para fazer todos esses modulos funcionar. Desde já te agradeço um forte abraço.

    1. Olá Marcos,

      Acredito que nesses tutoriais baixo você vai encontrar todas as bibliotecas necessárias:
      https://www.makerhero.com/blog/como-gravar-dados-no-cartao-rfid/
      https://www.makerhero.com/blog/teclado-matricial-4×4-arduino/
      https://www.makerhero.com/blog/modulo-camera-vga-ov7670/

      Abraço!
      Rosana – Equipe MakerHero

  37. Boa noite Adilson.

    Eu a construir um Arduino controlando um modulo L298, uma ponte H dupla. Como fazer para colocar as informações de controle no LCD, como por exemplo de 0 a 255 0 a 100%) o valor do sinal PWM do Arduino?

    Grato.

    Haroldo Kennedy Clebicar Nogueira.

    1. Olá Haroldo,

      Acredito que esse post pode te ajudar a entender como enviar uma váriável para o LCD: https://www.makerhero.com/blog/sensor-de-temperatura-ds18b20-arduino/

      Abraço!
      Rosana – Equipe MakerHero

  38. legal! obrigado! poderia digitar um codigo que eu entre diferentes menus e caracteres no lcd pelo remote?

    1. Olá André!

      Bonito nome! Você pode digitar o que quiser com o “lcd.print(“coisa”)”. Para montar o que você deseja vai precisar de mais componentes e mais programação.

      Abraços!

      André – Equipe MakerHero

  39. nao aparece o nome no display

    1. Olá Andrey!

      Aparece alguma coisa no display?

      Você modificou o código?

      Abraços!

      André – Equipe MakerHero

  40. Porque nao sao conectados todos os pinos dos lcd??
    uma curiosidade sei que funciona sem ligar os 4 d0 a d3, mas porque nao sao ligados???
    ou pode ligar…

    ja vi lcd destes com cor avrmelhada ajulada verde…sera que sao essas entradas que controla isso?

    1. Olá Marcio!

      Quanto mais pinos ligados, mais rápido você consegue mandar a mensagem pro display.

      Abraços!

      André – Equipe MakerHero

  41. Eu tenho um lcd 16×2 com 14 pinos sem backlight, quando for colocar os pinos o que muda?

    1. Olá Sam!

      Você segue a mesma pinagem, pode ver que tem vários pinos sem conectar.

      Abraços!

      André – Equipe MakerHero

  42. Boa tarde! Eu comprei uma placa de circuito com um potenciômetro para controlar o temporizador do limpador de para-brisas do meu carro, com este potenciômetro posso escolher entre 2 segundos até 30 segundos de intervalo no funcionamento do limpador, porém eu gostaria de adicionar um display de 2×1 para me informar qual valor eu escolhi de intervalo, e não encontrei na internet nada que poderia me ajudar. Desde já muito obrigado!!

    1. Olá José!

      Você pode usar um display de 7 segmentos, como esse:
      https://www.makerhero.com/produto/display-7-segmentos-1-digito-vermelho/

      Abraços!

      André – Equipe MakerHero

  43. eii poderia me ajuda estou querendo coloca rolagem left mais não esta indo
    ex:
    void loop()
    {
    if (green – blue >= 10 && green – blue = 8 )
    {
    lcd.clear();
    lcd.setCursor(0, 1);
    lcd.print(“cor : “);
    lcd.print(“VERMELHO”);
    Serial.print(” – (VERMELHO COR)”);
    Serial.print(“Vermelho”);

    }

    for (int posicao = 0; posicao = 10 && green – blue = 8 )
    {
    lcd.clear();
    lcd.setCursor(0, 1);
    lcd.print(“cor : “);
    lcd.print(“verde”);
    Serial.print(” – (verde COR)”);
    Serial.print(“verde”);

    }

  44. Tem como usar um botão para desligar o led e ele só voltarba ligar se o botão for acionado ou depois de x minutos?

    1. Olá Flávio!

      Você pode ligar o pino 15 em uma saída digital e, através dela, controlar a iluminação do display.

      Abraços!

      André – Equipe MakerHero

  45. Como eu poderia ler os dados de um display que esta sendo controlado por outro micro. (obs: codigo hex do micro esta protegido).

  46. show.
    estamos construindo um projeto sobre eficiência energética, quero saber se tem uma programação que mostra no LCD a diminuição da luminosidade na hora que abaixa essa luminosidade por um potenciômetro ?

    1. Olá Rafael!

      Teria que medir, com uma entrada analógica a saída do potenciômetro e mostrá-la no display 🙂

      Abraços!

      André – Equipe MakerHero

  47. Como ligo o display na placa Mega?
    Usei este passo a passo mas não funciona .
    O display apenas acende

    1. Olá Breno!

      Você alterou no programa os pinos utilizados?
      Eles devem ser os mesmos na placa e na programação.

      Outra coisa que você pode fazer é mexer no potenciômetro para ver se aparece algo na tela. Pode girar bastante pros dois lados, até aparecer alguma coisa

      Abraços!

      André – Equipe MakerHero

  48. Primeiramente, Boa noite! Fiz as ligações do display exatamente seguindo estes passo, já havia também feito porém utilizando outras portas, e ele não mostra a mensagem em que eu envio para ele… Fica apenas mostrando na primeira linha vários quadrados… Já pesquisei bastante mas não encontrei uma resposta, o que poderia ser?

    1. Olá Ariel!

      Isso deve ser problema no contraste do display. Você deve ajustar o potenciômetro até sumir esses quadrados.

      Pode girar bastante, às vezes são necessárias várias voltas.

      Abraços!

      André – Equipe MakerHero

  49. No lugar do potenciômetro liguei um resistor de 10K ohms, mas o contraste não ficou como o esperado, qual resistor devo colocar para ficar com 100% de contraste (o fundo o mais azul o possível)

    1. Olá!

      É difícil saber exatamente o valor pra cada display. Seria interessante testar diferentes valores até encontrar o que te agrada.

      Abraços!

      André – Equipe MakerHero

  50. Ola pessoal

    Estou com um LCD 16×2 com back light, fiz a montagem conforme o pessoal da MakerHero indicou no post, e aparece somente os quadradinhos, nao aparece o texto.
    Eu vi que varios passaram pelo mesmo problema, mas me certifiquei que o pino RW esta no ground. Mas no meu caso o problema persiste.

    Meus pinos estao assim:
    VSS->gnd
    VDD->5v
    V0-pino central do potenciometro 10k
    RS->porta 12
    RW->gnd
    E->porta 11
    D4->porta 5
    D5->porta 4
    D6->porta 3
    D7->porta 2
    A->5v
    K->gnd

    O potenciometro de 10K tem 3 pinos:
    1o. pino da esquerda: 5v
    2o. pino (do meio): V0
    3o. pino da direita: gnd

    O codigo do sketch esta igualzinho o do post, sem tirar nem por.

    Alguem pode me ajudar?

    1. pessoal, somente troquei a posicao do display no protoboard e funcionou….

  51. Não consegui fazer com a interface I2C. Quando faço só aparece as iniciais e não o texto inteiro.
    ajuda ae

    #include
    #include
    //LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
    //LiquidCrystal_I2C lcd(0x3F, 16,2);//comente a de cima e dscomente essa
    LiquidCrystal_I2C lcd(0x27, 16, 2);

    void setup()
    {

    lcd.init(); // initialize the lcd
    lcd.backlight();
    lcd.setCursor(3,0);
    lcd.print(“Hello, world!”);
    lcd.setCursor(2,1);
    lcd.print(“keyestudio!”);

    }
    void loop()
    {

    }

  52. Boa tarde, você teria um modelo desse display ligado a uma NodeMCU?? Obrigado.

  53. Olá pessoal! pra quem ainda não está conseguindo fazer aparecer as letras no display, tenta o seguinte:
    tira o fio que está indo no potenciômetro e liva direto no GND.
    ou seja V0 liga no GND.
    funcionou aqui, abç.

    Wellington Maia dos Santos
  54. Boa tarde! Vocês teriam um programa que lê uma chave e indique chave aberta ou fechada no display LCD 16×2?

  55. Thanks for taking the time to discuss this, I really feel strongly about it and appreciate finding out additional on this topic. If possible, as you acquire expertise, would you thoughts updating your blog with far more info? It is extremely useful for me.
    cheap ecco shoes online http://www.fantistic.co.uk

  56. boa tarde
    para fazer funcionar com um display 40×2 segue esses “mesmos” comandos?
    a ligação com o arduino é igual?

  57. Pessoal, gostaria de divulgar um grupo de discussão sobre Arduíno (tudo por e-mail ), Trata-se do Yahoo Grupos Arduino, que já participo faz tempo, e é muito legal e produtivo, Segue o endereço: https://br.groups.yahoo.com/neo/groups/arduino-br/info // aguardo vocês por lá para trocarmos idéias experiencias, e tirar dúvidas, obrigado

  58. Bom dia Adilson,

    Estou veredando pelo mundo Arduino, vou começar um projeto de uma router cnc e estou sempre acompanhando as publicações da MakerHero. Parabéns pelos trabalhos publicados.

    Eugenio

    * Estudamos no mesmo colégio em Ferraz

    1. Haha Fala Eugenio! 🙂

      Blz. Precisando de ajuda, estamos aí.

      Abraço!

      Adilson – Equipe MakerHero

  59. Olá tudo bem.
    Tenho umas dúvidas.
    Fiz minha ligação do display LCD 16/2 igual à que vc fez…porém qdo reparei a solda estavam nos pinos do LCD D1 D2 D3 e D4 e não estou usando o potenciometro…o display liga mais não aparece nada escrito…no lugar do potenciometro posso usar algum resistor e em relação aos pinos D que usei tem como alterar a biblioteca do liquidcristal ou perdi o meu display.
    Obrigado seu site é ótimo.
    Parabéns pelo trabalho.

    1. Não aparece porque tem que ajustar com o potenciômetro com um de 10 k já dá
      Caso esteja usando um módulo i2c faça o ajuste nele também boa sorte ( com ele ligado)

  60. Quantos segmentos tem um LCD???

  61. Olá!

    Estou conectando meu display a mais ou menos 1 metro e meio da minha placa arduino. Quando compilo o programa aparece normal as informações, depois de algum tempo ele começa a aparecer uns caracteres estranhos, e começa a ficar piscando algumas coisas como se tivesse perdido o sinal. Quando conecto o display na protobord e faço o teste funciona perfeitamente.

    Já testei outro display.

    Para ligar o display nessa distancia estou usando cabo de rede, pois não encontrei cabo para ligar nessa distância.

    Gostaria que alguém me ajudasse com esse detalhe?

    O programa roda normal, somente as informações é que não aparecem.

  62. boa tarde estou com um display 16×1, nao deu certo , oque faço?

  63. Adilson realizei o procedimento no display de LCD de 16X2 e funcionou perfeitamente! Vocês estão de Parabéns!

  64. Para conectar o Display LCD 16×2 no Arduino DUE. O método é diferente do UNO?

  65. Acho que seria legal acrescentar mais um esquema (e código correspondente) , com o brilho do display também controlado pelo Arduino, ligado numa saída pwm . . .

  66. olá boa tarde, estou com um probleminha, pois é para o meu tcc. Eu retirei o potenciometro e gostaria de saber
    qual resistor seria melhor colocar no lugar, e também gostaria de saber onde , ou seja , qual o lugar que devo colocar o resistor no lugar do potenciometro.

  67. Muito legal! Estou interessado em projetos de arduino com rádiofrequencia…teriam algum projeto para nos mostrar? abracos!

  68. Estou tendo alguns problemas com o meu projeto de TCC, poderia ter alguma forma de conatato com vocês?

  69. Boa noite,

    Estou fazendo teste já joguei o programa na placa e liguei todos os fios certos mas não está aparecendo nada no meu display. O que estou fazendo de errado?

    Grato,

  70. keep at it man, your almost there , thanks for the read!
    Victoria’s Secret online http://www.victoriassecretonline.store

  71. Interesting and informative. But will you write about this one more? I can’t quite remember what he was selling.
    hunter boots sale http://www.huntersale.online

  72. Boa tarde, estou com problemas na ligação do meu display de lcd.
    Giro o potenciômetro de contraste mas não aparece nenhum das letras escritas, ja verifiquei minhas ligações do meu protoboard, mas sem sucesso o que poderia ser ?
    Troquei o potenciõom
    São problemas semelhantes ao do Moises.

    1. Qual a versão devo usar da biblioteca LiquidCrystal do arduino?
      Tem alguma diferença ?

  73. Olá, estou com um problema na compilação da biblioteca LCD 16×2. Usei o mesmo algoritmo fornecido na página, mas aparece o seguinte erro na última chave do segundo ‘for’:

    exit status 1
    stray ‘\302’ in program

    Alguém consegue me ajudar? Obrigada!

  74. Posso fazer um medidor de carga de bateria com este display? Se possível envie o código ok? Obrigado.

  75. Olá, estou iniciando no mundo do arduino, e queria pedir ajuda em um projeto de tcc. Conectei um arduino uno à um esp8266 – 01, porém gostaria de mostrar os resultados do monitor serial em um display 16×2. Poderia alguém me dar um auxílio???? Grato desde já…

  76. meu sensor de temperatura esta funcionando corretamente mais a parte da umidade so fica em 1%, sera que ta queimado a parte responsável pela leitura da umidade?

  77. Posso ligar os pinos 4(RS) e 6(E) do LCD nos pinos 6 e 7 do Arduino em vez dos pinos 12 e 11 como mostrado no esquema de ligação(tabela)?

    1. Se fizer a alteração no software tambem, não tem problema nenhum.

  78. gostaria de saber se tem como gravar em uma memoria de tv ex. uma foto minha para que toda vez que a tv for ligada aparecer a minha foto ao inves de apareçer o logo da empresa fabricante da tv . isto er possivel ? vcs fazem ? e quanto custaria ?

  79. Gostaria de saber como mostrar no display um determinado dado”; seria a pontuação de um joguinho. Ja tenho a variavel, só não sei com “dispar” shusuh

    1. ja consegui ushsuhs

      parte do código :

      ” lcd.setCursor(9, 1); //Posiciona o cursor
      lcd.print(rodada_atual); //Escreve no LCD os pontos

  80. Opa, funcionou aqui, bem bacana e simples o tutorial, no meu caso como eu estou sem o potenciômetro, liguei o Pino 3 V0 no Gnd da arduino, funcionou de boa pra testar, só não acionou o backlight naturalmente ^^.

  81. Não esta aparecendo o nome no LCD como faço?

  82. montei todo certo porém não consigo carregar o nome para o LCD o programa ta carregando mais o nome não fica passando

  83. Boa tarde, é possível utilizar o display sem o potenciômetro?

    1. Boa tarde Daniel,

      Sim, você pode utilizar um resistor, por exemplo, no lugar do potenciômetro.

      Abraço!

      Adilson – Equipe MakerHero

      1. Você tem algum exemplo de código e montagem de como proceder. Comprei o kit de vocês mas não comprei o potenciômetro.

        1. Olá, fiz o teste com um resistor de 560Ohm ao GND e o contraste ficou excelente. Tente fazer um teste com este valor de resistor.

    2. Você pode usar um pino PWM sem a necessidade de ter um potenciometro a mão.
      Escolha o pino (neste caso foi escolhido o pino 5) e use o código:

      void setup() {
      // lcd.begin(16, 2);
      pinMode(5,OUTPUT);
      analogWrite(5,96); //escolha o valor que ajusta o constraste cfe desejado, neste exemplo 96
      }

  84. Olá,

    Fiz a montagem e deu certo.
    Porém, é normal o pino do meio do potenciometro esquentar?

  85. 100% das pessoas que tem problemas, acredito eu, não faz a soldagem dos contatos do LCD, daí esse problema na pinagem em relaçã ao contato… eu preferi vazar os pinos nos contatos do LCD e apoiando na placa… péssima idéia, não há 100% de certeza em relação ao contato. Uma solução é deixa-los apenas encostados nos furos do LCD e após, passar uma fita isolante forçando os pinos a ficarem inclinados em relação ao eixo dos furos. Após é claro, dar o carregamento.

  86. Olá! quanto aos caracteres malucos que aparecem, experimentem dar uma leve forçada nos pinos, ajeitando o contato de todos no display… e após, dê um carregamento novamente no programa. Funcionou… o problema ao que vi, é que se houver um único contato fora do local, o display não recebe as informações do carregamento e assim que vc sana o problema do contato, aparecem esses pontos malucos… ou seja, terá que recarregar novamente

  87. Olá
    quando ligo o meu arduino o s pinos vazios ficam com 5V e,acredito eu, que por isso aparecem mensagens bem loucas na tela com interrogações e números aleatórios.

    Alguém pode me ajudar a fazer com que os vazios fiquem zero sem colocar um gnd neles ?

    Obrigado

  88. boa tarde, tenho uma duvida. se eu quiser mudar a pinagem no arduino é obrigatório se quir essa sequência?

    LiquidCrystal lcd(, , , , , ) // pinagem display

    posso mudar essa pinagem?

    1. Boa tarde Leandro,

      Pode sim, sem problemas.

      Abraço!

      Adilson – Equipe MakerHero

  89. Boa noite amigos, montei um projeto com lcd16x2 e modulo rele para acionar uma lampada, mas toda vez q a lampada é acionada o lcd fica doido, aparece vários caracteres estranhos e não normaliza mais a não ser que eu reset o Arduíno. Alguém já passou por isso ou sabe como resolver isso?

  90. #include

    LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

    void setup() {
    lcd.begin(16, 2);
    }

    void loop() {
    lcd.print(“Hello world”);
    }

  91. Os dados aparecem na tela mas fica tudo maluco os quadrados ligados.

  92. Tentei milhares de vezes sem sucesso.
    Já conferi milhares de vezes todas as conexões e as soldas do LCD.
    Estou usando um lcd 16×2 (1602H).
    Alguma luz amigos ? Tem salvação ? rsrs

    Obrigado.

    Pino 1 LCD: GND
    Pino 2 LCD: 5V
    Pino 3 LCD: Pino central do potenciometro.
    Pino 4 LCD: Porta 12 Arduino
    Pino 5 LCD: GND
    Pino 6 LCD: Porta 11 Arduino
    Pinos 7, 8, 9, 10 LCD: Vazios
    Pino 11 LCD: Porta 5 Arduino
    Pino 12 LCD: Porta 4 Arduino
    Pino 13 LCD: Porta 3 Arduino
    Pino 14 LCD: Porta 2 Arduino
    Pino 15 LCD: 5V
    Pino 16 LCD: GND

    1. Verifica se vc ta ligando os pinos certos pq no lcd que eu peguei ele inicia no 16,15,1,….14 entao ao inves de a ligação ser GND, 5v, porta é GND,5v, GND,5V e ai sim segue a sequencia

    2. Eder, uma vez peguei um display xingling que a pinagem estava exatamente ao contrário (pino 1 era o 16 o 2 o 15 e assim por diante) passei uma semana até encontrar o problema e pior, o controlador era um Pic onde vc tem de fazer tudo “na mão”.
      Verifica.

      Abs.

    3. Tem que usar o lcd.setCursor( , ); senão o arduino vai ficar escrevendo um na frente do outro

  93. Para quem não tem um potenciômetro na mão na hora de testar, liga o V0 no GND. Dá para testar o LCD direitinho.

  94. Para quem estiver com o problema de ver apenas quadrados pretos na tela, a dica é: reveja as soldas dos pinos.

  95. Boa tarde, excelente tutorial, gosto muito desse blog pela didática que oferece. Será que poderia me dar uma ajuda? Tenho um LCD de 40×4 faço funcionar com o arduino, porém só tenho problemas na 2º e 4º linha, pois os textos não inicia na coluna 1, mas lá depois da metade (coluna 25+ou-), lembro que vi algo para corrigir isso, faz muito tempo e não sei onde encontrei. Já tentei o lcd.setCursor (0,1), mas não adianta.

    #include

    LiquidCrystal lcd1(12, 11, 10, 9, 8, 7); //RS, EN, D4, D5, D6, D7
    LiquidCrystal lcd2(12, 13, 5, 4, 3, 2); //RS, EN2, D4, D5, D6, D7

    void setup() {
    lcd1.begin(40, 2);
    lcd2.begin(40, 2);
    lcd.setCursor(0,0);
    lcd.print(“Linha 01”);
    lcd.setCursor(0,1);
    lcd.print(“Linha 02”);
    lcd2.setCursor(0,0);
    lcd2.print(“Linha 03”);
    lcd2.setCursor(0,1);
    lcd2.print(“Linha 04”);
    }

    void loop() {

    }

    1. Essas rigas:
      lcd.setCursor(0,0);
      lcd.print(“Linha 01″);
      lcd.setCursor(0,1);
      lcd.print(“Linha 02″);

      não deveriam ter o “lcd1” no lugar do “lcd”?

  96. Bom dia,eu fiz a ligação deu certo carregei o pro arduino apareceu MakerHero porem quando carrego outro texto,o display ainda fica do msm jeito não muda nada o que poderia ser ?

    1. Tenta dar lcd.Clear(); antes de escrever o novo texto

  97. Me tira um duvida, aqui quando plugo o positivo no ponteciometro, tudo desliga como se fechasse curto. o que pode ser?

    1. Bom dia,

      Por favor verifique se a pinagem do display que você está usando é a mesma do display usado no post. Verifique também se o circuito foi montado corretamente e se possível utilize algum outro potenciômetro.

      Abraço!

      Adilson – Equipe MakerHero

      1. Boa noite, segui o mesmo procedimento do post, apareceu a tela inicial em azul, em seguida fiz o upload do programa e carregou normalmente mas não apareceu nada no display,apenas quando vario o potenciômetro aparece os quadrados brancos na primeira linha e as vezes aparece umas sequencias meias loucas, o que pode ser, alguém me ajude por favor!

        1. Boa tarde Victor,

          Por favor reveja as conexões e a solda dos pinos. Me parece algum tipo de mau contato.

          Abraço!

          Adilson – Equipe MakerHero

    2. A Saida vai no pino central do potenciômetro aconselho usar um potenciômetro de 10k

  98. fiz umas alterações para usar com i2c, também usando caracteres especiais.

  99. Fiz umas modificações na configuração mas funcionou certinho.

  100. Segui o post, mas, infelizmente, não funciona.
    Então, desmontei e fiz testes individualmente, somente:
    I. O Ponteciometro, funcionou;
    II. O LCD , funcionou; então
    III. Troquei o local da fiação na protoboard, liguei diretamente, indiretamente. Ou seja, stressei a protoboard. E o resultado foi positivo para os itens I e II.

    Assim sendo, marquei uma range da protoboard que tenho certeza de não haver problema, com canetinha. Portanto, quando, voltei a montar de acordo com o post, nada acontece.

    Dessa forma, estou certo de que os meus componentes funcionam.

  101. Todas as ligações estão OK, mas não consigo escrever no display, ele simplesmente liga e fica la sem sinal nenhum…Estou usando sensor de luz e sensor de temperatura, todos funcionando 100%, e substitui a conexão 11, pela 10(a 11 ja esta sendo usada), qual será o problema?

    1. Bom dia Jonathan,

      Com o exemplo do post ele funciona ?

      Abraço

      Adilson – Equipe MakerHero

  102. Nao funcionou no meu tentei mudar alguns carateres mas mesmo assim nao funciona nem a pau.

  103. comprei esse lcd do site e nem sinal de vida….e conectei td certo..n tem nem como ter queimado

    1. Aconteceu comigo também. O problema estava no potenciômetro do contrate.

  104. Kra montei igual está ai, mas n funcionou, 2 erros q notei, os caracteres estão desconfigurados no lcd e eu n está setando la posição que quero

  105. queria saber como fazer a ligaçao no arduino mega

    1. a msm coisa! tu pode escolher em quais pinos ligar!

  106. O meu LCD sempre queima, como faço pra ajeitar?

  107. Gostaria de saber em qual simulador os testes são executados?
    Grata!

    1. Bom dia,

      Montamos todos os circuitos para garantir que funcionem de acordo com o tutorial.

      Abraço

      Adilson – Equipe MakerHero

  108. Boa noite Galera!
    Estou com um projeto e adquiri uma shield ethernet e uma shield lcd 16×2. Porém com a shield lcd conectada não consigo fazer a ethernet realizar a conexão com o banco de dados, sem a shield conecta normalmente….
    Estou usando a sequencia de pinos para a Shield LCD LiquidCrystal lcd(8, 9, 4, 5, 6, 7); e o visor funciona…. fora essa sequencia o visor não funciona e a ethernet também não….
    Alguém ja passou por isso ou tem alguma solução?

    Obrigado!!

  109. Boa noite,

    Gostaria de saber qual o software que vocês usam para fazer a simulação do circuito como mostra o exemplo do display LCD ? Pois estou procurando alguns bons simuladores de arduino porem não encontro alem de softwares pagos.

    Att,

    Arthur

    1. Bom dia Arthur,

      Os circuitos são montados e testados para garantir que funcionem conforme está explicado no post.

      Abraço!

      Adilson – Equipe MakerHero

    2. Tu pode tentar com o TikerCard

      https://www.tinkercad.com/

      É muito bom e gratuito

  110. Boa Tarde

    Meu Lcd e 16×2 so que ele tem o controle das portas igual a este
    http://produto.mercadolivre.com.br/MLB-678116002-display-lcd-16×2-azul-serial-com-2-pinos-arduino-raspberry-_JM

    como fica a programação ?

    obrigado

    1. Bom dia Patrick,

      Por favor dê uma olhada neste link: http://www.arduinoecia.com.br/2014/12/modulo-i2c-display-16×2-arduino.html

      Abraço

      Adilson – Equipe MakerHero

  111. Olá, parabéns pelo site, muito bom o conteúdo!

    Estou fazendo um projeto de Termômetro IP com LM35. A ideia é monitorar a temperatura via browser e ao mesmo tempo exibi-la no display usando um Arduino Pro Mini.

    Tenho uma dúvida: posso alterar a pinagem do LCD? Meu problema é que estou com um shield ethernet ENC28J60 e ele usa alguns dos pinos do LCD (o 2 e o 12).
    Alterei a sequência do LCD, no lugar do 12 coloquei o 8 e no lugar do 2 o 7 (de 12, 11, 5, 4, 3, 2 para 8, 11, 5, 4, 3, 7) mas não funcionou legal, aparece um monte de ??????? no display (no caso um display 8×2).
    Há uma solução?
    Muito obrigado!

    1. Olá, consegui resolver alterando para LiquidCrystal lcd(8, 6, 5, 4, 3, 7);
      De qualquer forma, muito obrigado!

    2. Boa tarde Adalberto,

      É possível sim. Eu fiz a alteração utilizando os pinos que você colocou (8,11,5,4,3,7), e funcionou sem problemas em um display 8×2. Veja se não há alguma conexão incorreta.

      Abraço

      Adilson – Equipe MakerHero

  112. Olá, gostaria de trocar os potenciômetros por resistores, onde ligo e quais valores
    eu devo usar?
    Ótimo site e tutoriais, parabéns.

    1. Bom dia Daniel,

      Se você estiver usando um potenciômetro, pode ajustar o contraste e então medir a resistência do potenciômetro, trocando então por um resistor de valor equivalente.

      De qualquer forma, você pode fazer alguns testes com resistores de 4,7K ou 1 K, e ir ajustando esse valor conforme o contraste que você precisa. Ligue esse resistor ao GND.

      Abraço.

      Adilson – Equipe MakerHero

  113. Boa tarde!

    Eu gostaria de saber qual o máximo de displays que eu consigo controlar usando o arduino. Normalmente eu sei que seria 1 com o uno e 2 com o mega. Queria saber se posso controlar 5 ou 10 por exemplo, usando apenas um arduino com algum outro hardware, ou apenas outro hardware como por exemplo o raspberry.

    1. Boa tarde Frederico,

      Uma boa opção é utilizar o módulo I2C, com ele, você consegue ligar vários displays ao Arduino utilizando interface I2C.

      https://www.makerhero.com/pd-179dbc-modulo-serial-i2c-para-display-lcd-arduino.html

      Abraço.

      Adilson – Equipe MakerHero

  114. Olá, Boa Tarde.

    Estou com a ideia de um projeto que utiliza o display LCD Shield com Teclado para Arduino, disponivel aqui no site. Porém, me deparei com um problema, os tutorias que encontrei, inclusive esse, ensinam somente a utilização do display sem o shield. E o display que adquiri vem diretamente soldado com o shield.
    Gostaria de saber, se por ventura, se existe um tutorial mais fácil, com a utilização do display fundido com o keyboard shield, pois sou iniciante na utilização do arduino

    1. Boa noite Gustavo,

      Por favor dê uma olhada neste artigo, provavelmente tem o que você precisa: http://www.arduinoecia.com.br/2013/08/shield-lcd-16×2-com-keypad.html

      Abraço.

      Adilson – Equipe MakerHero

  115. o lcd 16×2 e compativel com arduino due ?

    1. Boa tarde Gilmar,

      O Arduino Due trabalha com nível de sinal de 3.3v. É mais seguro usar um conversor.

      Abraço.

      Adilson – Equipe MakerHero

  116. Bom Dia.

    Comprei um display desses com vocês, mas não liga nem por reza, já segui todos os passos que você ensinou aqui e também tentei seguir os passos do Arduino & Cia, para ligar ele em 8bits, mas nenhum funciona, o display só fica azul, mas não aparece nada escrito.

    1. Boa noite Marcel,

      A princípio parece ser algum problema no ajuste do contraste do display. Você está utilizando algum potenciômetro ?

      Abraço.

      Adilson – Equipe MakerHero

      1. eu estou com esse mesmo problema, ja liguei de varias maneiras , liguei ate fora do protoboard so que o problema persiste e eu nao sei mais o que fazer

        1. Bom dia Antonio,

          Você utilizou este circuito do post ?

          Adilson – Equipe MakerHero

  117. quando conecto o lcd ((1602zfa), até aparece o texto mas fica difícil de ler, a luz de fundo fica fraca. se mudo a regulagem do potenciometro o texto desaparece. usando um potenciometro de 10k ou 100k o resultado é o mesmo. qual pode ser o problema? obrigado

    1. Boa tarde Cesar,

      O potenciômetro apenas regula o contraste. A luz de fundo é controlada pelos pinos 15 e 16. Tente retirar o resistor que está no circuito e veja se melhora.

      Abraço.

      Adilson – Equipe MakerHero

      1. tirando o resistor e mesmo desligando os pinos 15 e 16 não ocorre alteração, a aparência é que a luz de fundo está desligada.
        obrigado

  118. Estou utilizando display 20×4 e arduino mega 2560, estou com duvida nas pinagens eu utilizei (21,22,31,32,33,34) e ñ alterei mais nada do programa confirei todos os pinos como estar no seu blog mais ñ aparece mensagens nenhuma só acende o display, enquanto vc utilizou os pinos (8, 9, 4, 5, 6, 7) e se for possível explique cada pino desses
    #include

    // Inicializa a biblioteca com os números dos pinos da interface
    LiquidCrystal lcd(22, 21, 34, 33, 32, 31); // Cria um LCD objeto com estes pinos

    void setup() {
    lcd.begin(16, 2); // Seta o display 16 colunas por 2 linhas
    }

    void loop() {
    basicPrintDemo();
    displayOnOffDemo();
    setCursorDemo();
    scrollLeftDemo();
    }

    void basicPrintDemo() {
    lcd.clear(); // Limpa Display
    lcd.print(“MakerHero”); // Escreve algum texto
    delay(2000);
    }

    void displayOnOffDemo() {
    lcd.clear();
    lcd.print(“Display On/Off”);
    for(int x=0; x < 3; x++) { // Loop 3 vezes
    lcd.noDisplay(); // Desliga Display
    delay(1000);
    lcd.display(); // Liga Display
    delay(1000);
    }
    }

    void setCursorDemo() {
    lcd.clear();
    lcd.print("SetCursor Demo");
    delay(1000);
    lcd.clear();
    lcd.setCursor(5,0); // Cursor coluna 5 linha 0
    lcd.print("5,0");
    delay(2000);
    lcd.setCursor(10,1); // Cursor coluna 10 linha 1
    lcd.print("10,1");
    delay(2000);
    lcd.setCursor(3,1); // Cursor coluna 3 linha 1
    lcd.print("3,1");
    delay(2000);
    }

    void scrollLeftDemo() {
    lcd.clear();
    lcd.print("Scroll Left Demo");
    delay(1000);
    lcd.clear();
    lcd.setCursor(7,0);
    lcd.print("Filipe");
    lcd.setCursor(9,1);
    lcd.print("Flop");
    delay(1000);
    for(int x=0; x<16; x++) {
    lcd.scrollDisplayLeft(); // Scroll o Display para a esquerda 16 vezes
    delay(250);
    }
    }

  119. Estou utilizando display 20×4 e arduino mega 2560, estou com duvida nas pinagens eu utilizei (21,22,31,32,33,34) e ñ alterei mais nada do programa confirei todos os pinos como estar no seu blog mais ñ aparece mensagens nenhuma só acende o display, enquanto vc utilizou os pinos (8, 9, 4, 5, 6, 7) e se for possível explique cada pino desses
    #include

    // Inicializa a biblioteca com os números dos pinos da interface
    LiquidCrystal lcd(22, 21, 34, 33, 32, 31); // Cria um LCD objeto com estes pinos

    void setup() {
    lcd.begin(16, 2); // Seta o display 16 colunas por 2 linhas
    }

    void loop() {
    basicPrintDemo();
    displayOnOffDemo();
    setCursorDemo();
    scrollLeftDemo();
    }

    void basicPrintDemo() {
    lcd.clear(); // Limpa Display
    lcd.print(“MakerHero”); // Escreve algum texto
    delay(2000);
    }

    void displayOnOffDemo() {
    lcd.clear();
    lcd.print(“Display On/Off”);
    for(int x=0; x < 3; x++) { // Loop 3 vezes
    lcd.noDisplay(); // Desliga Display
    delay(1000);
    lcd.display(); // Liga Display
    delay(1000);
    }
    }

    void setCursorDemo() {
    lcd.clear();
    lcd.print("SetCursor Demo");
    delay(1000);
    lcd.clear();
    lcd.setCursor(5,0); // Cursor coluna 5 linha 0
    lcd.print("5,0");
    delay(2000);
    lcd.setCursor(10,1); // Cursor coluna 10 linha 1
    lcd.print("10,1");
    delay(2000);
    lcd.setCursor(3,1); // Cursor coluna 3 linha 1
    lcd.print("3,1");
    delay(2000);
    }

    void scrollLeftDemo() {
    lcd.clear();
    lcd.print("Scroll Left Demo");
    delay(1000);
    lcd.clear();
    lcd.setCursor(7,0);
    lcd.print("Filipe");
    lcd.setCursor(9,1);
    lcd.print("Flop");
    delay(1000);
    for(int x=0; x<16; x++) {
    lcd.scrollDisplayLeft(); // Scroll o Display para a esquerda 16 vezes
    delay(250);
    }
    }

    1. Gil, na void setup()
      Em “Lcd.begin(16, 2)” vc deve mudar o valor de (16, 2) para (20, 4), conforme o seu LCD.

  120. BOA TARDE – ONDE EU ENCONTRO A BIBLIOTECA DO DISPLAY – LiquidCrystal.h

    1. Olá Luiz.
      Na própria IDE do Arduino já tem. Acesse Sketch > Import Library > LiquidCrystal.h
      Abraço!

  121. BOA TARDE – ONDE EU ENCONTRO A BIBLIOTECA DO DISPLAY – LiquidCrystal.h

    1. Olá Luiz.
      Na própria IDE do Arduino já tem. Acesse Sketch > Import Library > LiquidCrystal.h
      Abraço!

  122. Como eu faço para usar as portas do arduino usando o Shield LCD ? Pois parece que os pinos não estão disponíveis nesse shield

    1. O Shield LCD foi feito especificamente para funcionar com o Arduino. Verifique em quais pinos o Shield está conectando o LCD ao Arduino e altere se necessário o código para casar estes pinos conforme o esquemático deste post.
      Um abraço!

    2. Para quem usa o Shield LCD a configuração dos pinos fica assim no sketch:
      LiquidCrystal lcd( 8, 9, 4, 5, 6, 7 );

      1. Correto ebraz. Já fizemos a alteração.
        Muito obrigado pela cooperação. Abraço!

  123. Como eu faço para usar as portas do arduino usando o Shield LCD ? Pois parece que os pinos não estão disponíveis nesse shield

    1. O Shield LCD foi feito especificamente para funcionar com o Arduino. Verifique em quais pinos o Shield está conectando o LCD ao Arduino e altere se necessário o código para casar estes pinos conforme o esquemático deste post.
      Um abraço!

    2. Para quem usa o Shield LCD a configuração dos pinos fica assim no sketch:
      LiquidCrystal lcd( 8, 9, 4, 5, 6, 7 );

      1. Correto ebraz. Já fizemos a alteração.
        Muito obrigado pela cooperação. Abraço!

  124. estou com o mesmo problema postado pelo MOISÉS SAMPAIO… Verifiquei toda a instalação, troquei o LCD e mesmo assim continua com o mesmo problema: O LCD liga, fica com a luz de fundo acesa, utilizei um potenciómetro de 10K quando giro o potenciómetro vejo que há mudanças no LCD (fica na primeira linha os quadradinhos tudo bem acessos) e qdo giro no sentido contrário os quadradinhos somem… Porém as mensagens não são printadas no display…
    Alguma luz!?!?!?

    MOISÉS SAMPAIO, vc conseguiu resolver o problema!? Se sim, me envie a solução.

    Agradeço pelas ajudas!!!

    1. Olá DEIVIS. Sinto muito pela demora mas iremos verificar o problema nesta semana. Caso tenha encontrado a solução neste tempo peço que entre em contato conosco detalhando o problema.
      Até breve!

      1. [RESOLVIDO]: Bem, após inúmeras tentativas e erros, acabei achando um possível problema, no pino RW eu estava deixando vazio, quando na verdade esse pino deveria estar conectado ao GND. Bastou conecta-lo ao GND e passou a funcionar perfeitamente!
        Agradeço pelo interesse em tentar ajudar.

        1. Legal Deivis! Já colocamos uma nota neste Post caso outros usuários encontrem o mesmo problema.
          Um Abraço!

  125. estou com o mesmo problema postado pelo MOISÉS SAMPAIO… Verifiquei toda a instalação, troquei o LCD e mesmo assim continua com o mesmo problema: O LCD liga, fica com a luz de fundo acesa, utilizei um potenciómetro de 10K quando giro o potenciómetro vejo que há mudanças no LCD (fica na primeira linha os quadradinhos tudo bem acessos) e qdo giro no sentido contrário os quadradinhos somem… Porém as mensagens não são printadas no display…
    Alguma luz!?!?!?

    MOISÉS SAMPAIO, vc conseguiu resolver o problema!? Se sim, me envie a solução.

    Agradeço pelas ajudas!!!

    1. Olá DEIVIS. Sinto muito pela demora mas iremos verificar o problema nesta semana. Caso tenha encontrado a solução neste tempo peço que entre em contato conosco detalhando o problema.
      Até breve!

      1. [RESOLVIDO]: Bem, após inúmeras tentativas e erros, acabei achando um possível problema, no pino RW eu estava deixando vazio, quando na verdade esse pino deveria estar conectado ao GND. Bastou conecta-lo ao GND e passou a funcionar perfeitamente!
        Agradeço pelo interesse em tentar ajudar.

        1. Legal Deivis! Já colocamos uma nota neste Post caso outros usuários encontrem o mesmo problema.
          Um Abraço!

    1. voce chama isso de experiencia? reveja seu conceito

  126. Estou com um problema: fiz a compilação do código e em seguida o upload. Percebi que o arduino recebeu o comando mas não acontece nada com o display, o mesmo fica ligado direto mas não aparece nada. O que pode estar errado?

    1. Olá Moisés. Isto pode acontecer devido a inúmeras causas. Confira primeiro as ligações entre o seu Arduino e LCD, pode estar acontecendo algum problema de mal contato no seu protoboard. Se possível substitua o LCD para verificar se este apresenta algum problema.
      Se após estas tentativas o problema persistir peço que descreva mais detalhadamente o teu problema.
      Abraço!

  127. Estou com um problema: fiz a compilação do código e em seguida o upload. Percebi que o arduino recebeu o comando mas não acontece nada com o display, o mesmo fica ligado direto mas não aparece nada. O que pode estar errado?

    1. Olá Moisés. Isto pode acontecer devido a inúmeras causas. Confira primeiro as ligações entre o seu Arduino e LCD, pode estar acontecendo algum problema de mal contato no seu protoboard. Se possível substitua o LCD para verificar se este apresenta algum problema.
      Se após estas tentativas o problema persistir peço que descreva mais detalhadamente o teu problema.
      Abraço!

    2. Moisés, Boa Tarde, estava com o mesmo problema, resolvi acrescerntando o pino RW na GND, Trocando o resistor de 10k por um de 3k (ou dois de 1,5k em série) e ao invés de ligar esse resistor em 5v ligue ele em GND.

    3. ajusta o trimpot do back light que fica atras do display com ele ligado voce ajusta ate aparecer o texto xD

    4. que racista

    1. Estamos felizes que tenha gostado Nilton, em breve novos posts virão. Compartilhe!

    2. nao achei tao daora

    1. Estamos felizes que tenha gostado Nilton, em breve novos posts virão. Compartilhe!

Trackbacks and Pingbacks

  1. […] interface paralela, necessitando de pelo menos 6 pinos na versão 4 bits, conforme pode ser visto neste artigo do blog,  ou até 11 pinos na versão 8 […]