Código Arduino e vídeo para módulo de distância IR Sharp com display LCD1602
Neste tutorial, aprenderemos a usar o módulo de distância infravermelho Sharp em conjunto com um display LCD1602 para medir distâncias com precisão. O sensor IR Sharp fornecerá a distância medida, que será exibida no LCD, permitindo feedback em tempo real. Ao final deste projeto, você terá um sistema funcional capaz de medir distâncias de 4 a 30 centímetros (no vídeo em 00:30).
Módulos de saída analógica Sharp:
2 a 15 cm GP2Y0A51SK0F
4 a 30 cm série GP2Y0A41SK0F / GP2Y0AF30
10 a 80 cm GP2Y0A21YK0F
10 a 150 cm GP2Y0A60SZLF
20 a 150 cm GP2Y0A02YK0F
100 a 550 cm GP2Y0A710K0F

O sensor de distância Sharp IR funciona emitindo luz infravermelha e medindo o tempo que leva para a luz refletir de volta. Isso permite que o sensor calcule a distância com base na quantidade de luz recebida. O display LCD1602 é usado para apresentar essa informação em um formato legível. O conjunto é compacto, tornando-o adequado para várias aplicações, incluindo robótica e sistemas de medição de distância.
Hardware Explicado
Para este projeto, usaremos o sensor de distância Sharp IR e o display LCD1602. O sensor Sharp IR tem três fios: o fio vermelho conecta-se à alimentação de 5V, o fio preto conecta-se ao terra e o fio amarelo é o sinal de saída que se conecta a um pino analógico do Arduino. O display LCD1602 requer vários pinos para comunicação, que também serão conectados ao Arduino.
O display LCD1602 usa a biblioteca LiquidCrystal para gerenciar os dados enviados a ele, permitindo controlar facilmente a saída do display. Essa biblioteca lida com a comunicação entre o Arduino e o LCD, tornando simples imprimir texto e números.
Detalhes da ficha técnica
| Fabricante | Afiado |
|---|---|
| Número da peça | GP2Y0A41SK0F |
| Tensão lógica/E/S | 5 V |
| Tensão de alimentação | 4,5 - 5,5 V |
| Faixa de distância operacional | 4 - 30 cm |
| Tensão de saída (a 30 cm) | 0,4 V |
| Tensão de saída (a 4 cm) | 3 V |
| Tempo de resposta | 30 ms |
| Pacote | Módulo compacto |
| Notas / variantes | Diferentes modelos disponíveis para alcances variados |
- Certifique-se de que o sensor está corretamente alimentado com 5 V.
- Use um ponto de terra comum para todos os componentes.
- Tenha cuidado com a tensão de saída, que varia com a distância.
- Considere usar um filtro no sinal de saída para estabilizar as leituras.
- Mantenha o sensor limpo e livre de obstruções para medições precisas.
Instruções de fiação

Para ligar o módulo de distância infravermelho (IR) Sharp, conecte o fio vermelho ao pino 5V do Arduino. Em seguida, conecte o fio preto a um dos pinos de terra (GND) do Arduino. O fio amarelo, que fornece a medição de distância, deve ser conectado ao pino analógico.A0no Arduino. Para o display LCD1602, conecte os pinos da seguinte forma:rsao pino 12,enao pino 11,d4para o pino 5,d5para o pino 4,d6ao pino 3, ed7para o pino 2. Certifique-se de que todas as conexões estejam seguras para evitar qualquer problema de fiação solta (no vídeo em 02:15).
Exemplos de Código e Guia Passo a Passo
O código Arduino para este projeto inicializa o LCD e o sensor Sharp IR. Os identificadores-chave incluemIR, que é definido como o pino analógico usado para a saída do Sharp IR, emodel, que especifica o tipo de sensor Sharp que está sendo usado. Na função setup, o LCD é inicializado para exibir conteúdo.
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
#define IR A0 // define Sharp IR signal pin
#define model 430 // the model of the IR module
Este trecho mostra como a biblioteca LiquidCrystal é inicializada e como o pino do sensor IR e o modelo são definidos. O modelo é crucial para garantir que a biblioteca funcione corretamente com o tipo específico de sensor em uso.
Na função loop, a distância é medida continuamente e exibida no LCD. A funçãoSharpIR.distance()obtém a distância em centímetros, que é então formatada em uma string e impressa no LCD.
int dis = SharpIR.distance(); // gets the distance in cm
String distance = String(dis);
distance = "Distance: " + distance + "cm";
lcd.print(distance);
Este trecho de código obtém a leitura de distância do sensor e a formata para exibição. A atualização contínua da exibição fornece feedback em tempo real sobre a distância medida pelo sensor IR Sharp.
Demonstração / O que esperar
Após concluir as ligações e carregar o código, deverá ver o ecrã LCD a mostrar a distância medida pelo sensor IR Sharp. Pode testar a configuração colocando um obstáculo a várias distâncias. As leituras devem ser precisas dentro da faixa especificada de 4 a 30 centímetros. Tenha em atenção que as leituras podem tornar-se menos fiáveis nos extremos dessa faixa (no vídeo em 04:50).
Marcas de tempo do vídeo
- 00:00Introdução
- 02:15Instruções de fiação
- 04:50Demonstração da configuração
/*
* Sharp IR (infrared) distance measurement module for Arduino
* Measures the distance in cm and displays it on LCD1602 (without the I2C module)
* Original library: https://github.com/guillaume-rico/SharpIR
* Watch video instructions for this code: https://youtu.be/NjUOEAoKY7A
*
* Full explanation of this code and wiring diagram is available at
* my Arduino Course at Udemy.com here: http://robojax.com/L/?id=62
* Written by Ahmad Shamshiri on Feb 03, 2018 at 07:34
* in Ajax, Ontario, Canada. www.robojax.com
*
* Get this code and other Arduino codes from Robojax.com
Learn Arduino step by step in a structured course with all material, wiring diagrams, and libraries
all in one place.
If you found this tutorial helpful, please support me so I can continue creating
content like this.
or make a donation using PayPal http://robojax.com/L/?id=64
* * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.*
* This code has been downloaded from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
// original source https://www.arduino.cc/en/Tutorial/HelloWorld
// include the library code:
#include <LiquidCrystal.h>
// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
///////////////////***** start of Sharp IR
//Sharp IR library source: https://github.com/guillaume-rico/SharpIR
#include <SharpIR.h>
#define IR A0 // define Sharp IR signal pin
#define model 430 // the model of the IR module
// Sharp IR code for Robojax.com
// ir: the pin where your sensor is attached
// model: an int that determines your sensor:
/*
* GP2Y0A02YK0F --> "20150"
GP2Y0A21YK --> "1080"
GP2Y0A710K0F --> "100500"
GP2YA41SK0F --> "430"
*/
SharpIR SharpIR(IR, model);
/////////////////////**** end of Sharp IR
void setup() {
// Robojax LCD1602 Test
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
// Robojax Sharp IR with LCD1602 Test
}
void loop() {
lcd.clear();
// Robojax.com Sharp IR Test
lcd.setCursor(0, 0);
lcd.print("Robojax IR Test");
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
int dis=SharpIR.distance();// gets the distance in cm
String distance = String(dis);
distance ="Distance: "+distance+"cm";
lcd.print(distance);
delay(500);
// Robojax.com Sharp IR Test
}
Recursos e referências
-
Interno
Arquivos📁
Bibliotecas do Arduino (zip)
-
Biblioteca Arduino para sensor de distância IR Sharp
robojax-sharp_IR-master.zip
Arquivo Fritzing
-
Módulo LCD LCD1602-I2C com 4 fios
LCD1602-I2C.fzpz0.01 MB -
sensor infravermelho GP2Y0A02YK0F
sharp ir sensor GP2Y0A02YK0F .fzz