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.
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
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
/*
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
}
Common Course Links
Common Course Files
Coisas que você pode precisar
-
AmazonasCompre o LCD1602-I2C na Amazonamzn.to
-
AmazonasSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazonas
-
Amazonas
-
Amazonas
-
Amazonas
-
eBayCompre LCD1602-I2C no eBayebay.us
-
AliExpressCompre 10 peças de LCD1602-I2C no AliExpress.s.click.aliexpress.com
Recursos e referências
-
DocumentaçãoDocumentação para o Kit de Aprendizado 3 em 1 IoT/Carro Inteligente/SunFounderdocs.sunfounder.com
-
Externo
-
ExternoBiblioteca LCD da RoboJax (ZIP)robojax.com
Arquivos📁
Bibliotecas do Arduino (zip)
-
Código fonte do kit de aprendizado Smart Car 3 em 1 da SunFounder
3in1-kit-main-v2.zip12.80 MB