Código de Pesquisa

Lição 20/31: Exibindo a distância ultrassônica no LCD1602

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.

Sunfounder 20-LCD1602-ultrasonic

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

LCD1602_wiring_ultrasonic_bb

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 usar 0x3F. 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:

  1. Ele usa a função sonar.ping_cm() para medir a distância e armazená-la na variável distance.
  2. Ele limpa o LCD e imprime o texto "Robojax.com" na primeira linha.
  3. Em seguida, ele posiciona o cursor na segunda linha e imprime "Distance: ".
  4. Por fim, ele move o cursor para a posição 10 na segunda linha para imprimir o valor medido de distance seguido 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

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

Imagens

Sunfounder car assembled
Sunfounder car assembled
Sunfounder 20-LCD1602-ultrasonic
Sunfounder 20-LCD1602-ultrasonic
LCD1602_wiring_ultrasonic_bb
LCD1602_wiring_ultrasonic_bb
921-Lesson 20/31: Displaying distance from ultrasonic sensor on LCD1602
Idioma: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

Arquivos📁

Bibliotecas do Arduino (zip)

Manual do Usuário