Código de Pesquisa

Lição 20/31: Usando LCD1602 com Arduino para exibir texto | Robojax

Lição 20/31: Usando LCD1602 com Arduino para exibir texto | Robojax

Introdução

O LCD1602 é um dos displays alfanuméricos mais populares para projetos com Arduino e, quando combinado com um módulo I2C, torna-se incrivelmente fácil de usar. Neste tutorial, você aprenderá a exibir texto, números e caracteres personalizados, além de como rolar texto pela tela. Também mostraremos como combinar o LCD com outros sensores para criar ferramentas práticas de monitoramento. Este guia faz parte de um curso mais amplo de Arduino e foi projetado para ajudar você a construir dispositivos úteis para sua casa, escola ou oficina.

screenshot-2

Aqui estão algumas ideias práticas do que você pode construir com esse conhecimento:

  • Um monitor de temperatura e umidade para uma estufa ou terrário de répteis.
  • Um voltímetro simples para verificar os níveis de bateria em seus projetos.
  • Um sensor de distância para um assistente de estacionamento ou uma lixeira inteligente que mostra o quanto está cheia.

Visão Geral do Hardware

O LCD1602 é um display de 16 caracteres por 2 linhas. O módulo na parte de trás é um adaptador I2C (ou I²C), que reduz o número de fios necessários de uma conexão paralela padrão para apenas quatro: GND, VCC, SDA e SCL. Isso torna a fiação muito mais simples e libera muitos pinos digitais no seu Arduino.

O display possui uma luz de fundo, que pode ser ligada ou desligada via software. Ele também tem um pequeno potenciômetro no módulo I2C para ajustar o contraste. Se você ligar o display e não vir nada, basta girar esse parafuso até que o texto fique visível (no vídeo em 02:47).

Existem diferentes versões deste display, como o LCD2004, que tem 20 caracteres e 4 linhas. O endereço I2C também pode ser alterado soldando os jumpers A0, A1 e A2 no módulo (no vídeo em 03:51). O endereço padrão geralmente é 0x27, mas pode variar, então é sempre uma boa ideia executar um scanner I2C para encontrar o endereço correto para o seu módulo específico.

Componentes de Hardware

Para acompanhar a demonstração principal deste vídeo, você precisará dos seguintes componentes:

  • Arduino Uno (ou qualquer placa compatível)
  • LCD1602 com módulo I2C
  • Protoboard e fios jumper

Para as seções posteriores, você também precisará de um sensor DHT11, um potenciômetro ou um sensor ultrassônico, dependendo do projeto que deseja construir.

Guia de Fiação

lcd1602_I2C_wiring_sunfounder

Conectar o LCD é simples. O diagrama de fiação mostra as conexões claramente.

Conecte os pinos do módulo I2C ao seu Arduino da seguinte forma:

  • GND ao GND do Arduino
  • VCC ao 5V do Arduino
  • SDA ao A4 do Arduino
  • SCL ao A5 do Arduino

Se a sua placa Arduino tiver pinos SDA e SCL dedicados, você também pode conectá-los a esses pinos (no vídeo em 05:47).

Instalando a Biblioteca

Este módulo requer a biblioteca "Arduino Liquid Crystal I2C". Você pode baixá-la pelo link fornecido na descrição do vídeo ou pelo site Robojax. Após o download, instale-a na sua IDE Arduino indo em Sketch > Include Library > Add .ZIP Library e selecionando o arquivo baixado (no vídeo em 06:41).

Explicação do Código

Como nenhum trecho de código foi fornecido, explicaremos a estrutura geral do código usado no vídeo.

O código começa incluindo as bibliotecas necessárias: Wire.h para comunicação I2C e a biblioteca LiquidCrystal_I2C.h para o display. A parte principal é criar um objeto para o LCD. Você precisará definir o endereço I2C correto e as dimensões do seu display:

// Define o endereço do LCD como 0x27 para um display de 16 caracteres e 2 linhas
LiquidCrystal_I2C lcd(0x27, 16, 2);

Se o seu display não mostrar nada, talvez seja necessário alterar 0x27 para 0x3F ou outro endereço encontrado pelo seu scanner I2C. Os números 16 e 2 representam o número de colunas e linhas do seu display.

Na função setup(), você inicializa o LCD e liga a luz de fundo:

void setup() {
  lcd.init();
  lcd.backlight();
}

Para imprimir texto, você usa a função lcd.setCursor(coluna, linha) para posicionar o cursor, seguida de lcd.print() para exibir seus dados. Por exemplo, para imprimir na segunda linha, você usaria lcd.setCursor(0, 1). O vídeo também explica como imprimir caracteres especiais, como o símbolo de grau, usando lcd.write(223) (no vídeo em 31:42).

Demonstração

O vídeo demonstra vários recursos principais do LCD. Primeiro, mostra a impressão básica do texto "Hello World" e como usar a função lcd.scrollDisplayLeft() para mover o texto pela tela. Depois, combina o LCD com um sensor DHT11 para exibir temperatura e umidade, com um potenciômetro para exibir voltagem e com um sensor ultrassônico para exibir distância.

Para a exibição da temperatura, o código lê o sensor e imprime o valor. Para mostrar um número inteiro sem decimais, você pode converter o valor float para inteiro, como mostrado no vídeo (no vídeo em 32:21).

Para o medidor de tensão, o código lê o valor analógico do potenciômetro, converte-o para uma faixa de tensão de 0-5V e o exibe na tela (no vídeo em 34:31).

A demonstração final combina o LCD com um sensor ultrassônico para exibir a distância medida em centímetros (no vídeo em 37:55).

Projetos relacionados deste vídeo

Este vídeo também contém outros tutoriais de projetos. Você pode encontrá-los aqui:

Capítulos

  • [00:00] Introdução ao LCD1602 e visão geral do curso
  • [01:30] Visão geral do hardware do LCD1602 e do módulo I2C
  • [02:47] Ajustando o contraste do display e a luz de fundo
  • [03:14] Conexões dos pinos e seleção do endereço I2C
  • [05:28] Diagrama de ligação para o LCD
  • [06:16] Instalando a biblioteca necessária
  • [07:24] Código básico para imprimir texto
  • [11:10] Exemplo de cursor piscante
  • [13:46] Caracteres personalizados e impressão de símbolos especiais
  • [18:51] Exemplo de exibição serial
  • [23:16] Texto rolante no LCD
  • [36:51] Combinando LCD com um sensor ultrassônico

Imagens

LCD1602_wiring_DHT11_bb
LCD1602_wiring_DHT11_bb
LCD1602_wiring_DHT11_nopcb_bb
LCD1602_wiring_DHT11_nopcb_bb
LCD1602 displaying voltage and title
LCD1602 displaying voltage and title
screenshot-2
screenshot-2
lcd1602_I2C_wiring_sunfounder
lcd1602_I2C_wiring_sunfounder
910-Lesson 20/31: Displaying simple text on LCD1602
Idioma: C++
/*
Lesson 20/31: Displaying text on LCD screen
Get this code and watch video Download and resource page https://robojax.com/RJT603
YouTube video https://www.youtube.com/watch?v=NXAswOc_2zg

*/
/*
This is code for LCD1602 Display with I2C module
 * watch the video for this code https://youtu.be/q9YC_GVHy5A
 
 * Permission granted to share this code given that this
 * note is kept with the code.
 * Disclaimer: this code is "AS IS" and for educational purpose only.
 * This library is based on work done by DFROBOT (www.dfrobot.com).
 */
/*
 *  This code has been modefied from the Arduino library
 *  Updated by Ahmad Nejrabi on Jan 20, 2018 at 11:09
 *  in Ajax, Ontario, Canada
 *  for Robojax.com
 *  
 *  This is code for LCD1602 Display with I2C module
 *  which can display text on the screen.
 */
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);



void setup()
{
  // Robojax code for LCD with I2C
  // initialize the LCD, 
  lcd.begin();
 
  // Turn on the blacklight and print a message.
  //lcd.backlight();
  // Robojax code for LCD with I2C


}

void loop()
{

  lcd.clear();
  lcd.setCursor (0,0);  
  lcd.print("SunFounder ");
  lcd.setCursor (0,1);
  lcd.write(244);


  delay(500);
 //end of loopcode Robojax code for LCD with I2C
}

Arquivos📁

Bibliotecas do Arduino (zip)