Lição 20/31: Exibindo a distância ultrassônica no LCD1602
Este projeto demonstra como combinar um sensor de distância ultrassônico HC-SR04 com um display LCD1602 habilitado para I2C para criar um sistema de medição de distância em tempo real. Ao final deste guia, você terá um dispositivo funcional que mede e exibe continuamente a distância até um objeto em centímetros. Esta é uma habilidade fundamental em eletrônica com Arduino, pois combina entrada de sensor com saída visual.
Esta configuração prática pode ser usada em uma variedade de aplicações do mundo real, incluindo:
- Criar um assistente de estacionamento inteligente que ajuda a avaliar a distância até uma parede ou outro veículo.
- Construir um monitor simples de nível de líquido para um tanque, medindo a distância do topo até a superfície.
- Desenvolver um dispensador automático de álcool em gel ou uma lixeira sem toque que abre quando um objeto está próximo.
- Construir um alarme de segurança básico que dispara quando alguém entra em uma zona específica.
Hardware e Componentes
Para construir este projeto, você precisará dos seguintes componentes:
- Placa Arduino (ex.: Uno)
- Display LCD1602 com módulo de interface I2C
- Sensor de Distância Ultrassônico HC-SR04
- Cabos jumper
- Protoboard (opcional, para conexões mais fáceis)
Entendendo o LCD1602 e o I2C
O LCD1602 é um display popular capaz de mostrar 16 caracteres por linha em duas linhas. O módulo "I2C" em sua parte traseira é uma vantagem significativa porque reduz o número de pinos necessários para controlar o display de 6 ou mais para apenas 2 para comunicação (SDA e SCL) e 2 para alimentação (VCC e GND). Essa simplificação torna a fiação muito mais limpa e libera pinos digitais valiosos no seu Arduino para outros sensores, como o ultrassônico usado neste projeto. (no vídeo em 01:30)
O módulo I2C também possui um pequeno potenciômetro para ajustar o contraste do display. Se você ligar o display e não vir nada, tente girar este parafuso até que o texto se torne visível. (no vídeo em 02:47)
Guia de Fiação
Conectar os componentes é simples. O módulo I2C do LCD tem quatro pinos que precisam ser conectados ao Arduino. Para o sensor ultrassônico, ele também tem quatro pinos.
Aqui está um detalhamento das conexões:
Módulo I2C do LCD1602 ao Arduino:
- GND ao GND do Arduino
- VCC ao 5V do Arduino
- SDA ao A4 do Arduino
- SCL ao A5 do Arduino
Sensor Ultrassônico HC-SR04 ao Arduino:
- VCC ao 5V do Arduino
- Trig ao pino digital 12 do Arduino
- Echo ao pino digital 11 do Arduino
- GND ao GND do Arduino
O diagrama de fiação para este projeto é referenciado no vídeo.
Instalando as Bibliotecas Necessárias
Este projeto depende de duas bibliotecas cruciais. A primeira, LiquidCrystal_I2C, é necessária para controlar o LCD e não está incluída com a IDE do Arduino por padrão. Você pode baixá-la do link fornecido na descrição do vídeo ou do site Robojax. (no vídeo em 06:16)
A segunda biblioteca, NewPing, é usada para interfacear com o sensor ultrassônico. Ela simplifica o processo de enviar um pulso e ler o tempo do eco. Ambas as bibliotecas podem ser instaladas via Gerenciador de Bibliotecas da IDE do Arduino, indo em Sketch -> Incluir Biblioteca -> Gerenciar Bibliotecas e pesquisando por seus nomes.
Explicação do Código
Este sketch combina a funcionalidade do LCD e do sensor ultrassônico. O código é estruturado para ser facilmente configurável para sua configuração específica.
No topo do código, você encontrará as principais variáveis que pode precisar ajustar:
// Define o endereço do LCD como 0x27 para um display de 16 caracteres e 2 linhas
LiquidCrystal_I2C lcd(0x27, displayChars, displayRows);
#define TRIGGER_PIN 12 // Pino do Arduino ligado ao pino de trigger do sensor ultrassônico.
#define ECHO_PIN 11 // Pino do Arduino ligado ao pino de echo do sensor ultrassônico.
#define MAX_DISTANCE 190 // Distância máxima que queremos medir (em centímetros).
- Endereço do LCD (0x27): Este é o endereço I2C do seu módulo LCD. A maioria dos módulos usa
0x27, mas alguns podem usar0x3F. Se o seu display não mostrar nada, você pode precisar executar um sketch de varredura I2C para encontrar o endereço correto e atualizar este valor. (no vídeo em 08:11) - TRIGGER_PIN e ECHO_PIN: Estes definem os pinos digitais do Arduino conectados aos pinos Trig e Echo do sensor ultrassônico. Se você usar pinos diferentes, altere estas definições.
- MAX_DISTANCE: Isso define a distância máxima em centímetros que o sensor irá medir. O HC-SR04 pode medir até 400-500cm, mas definir um valor mais baixo pode melhorar a precisão e a confiabilidade das leituras, especialmente para distâncias mais curtas.
Na função loop(), o código executa os seguintes passos:
- Ele usa a função
sonar.ping_cm()para medir a distância e armazená-la na variáveldistance. - Ele limpa o LCD e imprime o texto "Robojax.com" na primeira linha.
- Em seguida, ele posiciona o cursor na segunda linha e imprime "Distance: ".
- Por fim, ele move o cursor para a posição 10 na segunda linha para imprimir o valor medido de
distanceseguido por "cm".
O delay(200) no final do loop controla a frequência com que o sensor faz uma nova leitura e atualiza o display.
Demonstração do Código
Depois que o código for carregado no seu Arduino, o LCD acenderá e começará a exibir a distância. Você pode testar a configuração movendo sua mão ou um objeto para mais perto e mais longe do sensor ultrassônico. O número na tela deve ser atualizado em tempo real, mostrando a distância em centímetros. (no vídeo em 38:07)
Projetos relacionados deste vídeo
- Lição 20/31: Usando LCD1602 com Arduino para exibir texto | Robojax
- Lição 20/31: Exibindo temperatura e umidade do DHT11 na tela LCD
- Lição 20/31: Exibindo tensão no LCD1602
Capítulos
- [00:00] Introdução ao LCD1602 e Visão Geral do Projeto
- [01:30] Hardware do LCD1602 e Módulo I2C Explicados
- [03:14] Pinagem do LCD e Configuração do Endereço I2C
- [05:28] Diagrama de Ligação para o LCD1602
- [06:16] Instalando a Biblioteca LCD Necessária
- [07:24] Código Básico para Imprimir Texto no LCD
- [08:11] Encontrando o Endereço I2C do Seu LCD
- [11:10] Exemplos de LCD: Cursor Piscante e Caracteres Personalizados
- [18:51] Exemplo de LCD: Exibição Serial e Texto Rolante
- [24:36] Exibindo Temperatura e Umidade do DHT11 no LCD
- [33:00] Exibindo Tensão de um Potenciômetro no LCD
- [35:56] Combinando Código do Sensor Ultrassônico com o LCD
- [38:07] Demonstração da Exibição de Distância Ultrassônica
This code has not been parsed yet. Please return to the admin panel to parse it.
Coisas que você pode precisar
-
AmazonasSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazonas
-
Amazonas
-
Amazonas
-
Amazonas
Recursos e referências
-
DocumentaçãoDocumentação para o Kit de Aprendizado 3 em 1 IoT/Carro Inteligente/SunFounderdocs.sunfounder.com
-
Externo
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
Manual do Usuário
-
SunFounder 3-in-1 Arduino Smart Car assembly manualThis document shows step by step assembly of SunFounder 3-in-1 Arduino Smart Car
SunFounder_car_assembly_manual.pdf1.20 MB