Código de Pesquisa

Código Arduino e vídeo para módulo de distância IR Sharp com display LCD1602

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

Sharpt IR distance sensor

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

FabricanteAfiado
Número da peçaGP2Y0A41SK0F
Tensão lógica/E/S5 V
Tensão de alimentação4,5 - 5,5 V
Faixa de distância operacional4 - 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 resposta30 ms
PacoteMódulo compacto
Notas / variantesDiferentes 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

Arduino Wiring Diagram of Sharp distance sensor with LCD1602-2
Diagrama de fiação do Arduino do sensor de distância Sharp com LCD1602-2 — Arduino Wiring Diagram of Sharp distance sensor with LCD1602-2

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

Imagens

Diagrama de fiação do Arduino do sensor de distância Sharp com LCD1602-2
Diagrama de fiação do Arduino do sensor de distância Sharp com LCD1602-2
LCD1602-I2C display module with 4 wires
LCD1602-I2C display module with 4 wires
Sharpt IR distance sensor
Sharpt IR distance sensor GP2Y0A21YK0F
71-This is the Arduino code and video for a Sharp Infrared Sensor Module with LCD1602.
Idioma: C++
/*
 * 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

Arquivos📁

Bibliotecas do Arduino (zip)

Arquivo Fritzing