Código de Pesquisa

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

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

Neste tutorial, exploraremos como usar o módulo de distância Sharp IR para medir distâncias e acionar ações com base na distância detectada. Este projeto demonstrará como configurar o hardware e escrever o código Arduino para ler as medições de distância e ativar um buzzer quando um objeto for detectado dentro de um determinado alcance. Você aprenderá como conectar os componentes e entender os identificadores-chave no código.

Sharpt IR distance sensor

Para este projeto, utilizaremos um sensor Sharp IR que emite luz infravermelha e mede a distância até um objeto com base na luz refletida. Quando um objeto for detectado dentro do alcance, o buzzer será acionado, proporcionando uma forma simples, porém eficaz, de demonstrar as capacidades do módulo Sharp IR. Certifique-se de conferir o vídeo para um guia visual sobre a montagem e o código (no vídeo em 00:00).

Hardware explicado

Os principais componentes deste projeto incluem um sensor de distância Sharp IR, uma placa Arduino e um buzzer. O sensor Sharp IR consiste em um transmissor e um receptor que trabalham juntos para medir distâncias. Quando a luz infravermelha do transmissor atinge um objeto, ela se reflete de volta para o receptor, permitindo que o sensor calcule a distância com base no tempo que a luz leva para retornar.

O Arduino atua como controlador, lendo as medições de distância do sensor IR e controlando o buzzer com base nas leituras. O buzzer soará quando um objeto for detectado dentro de uma faixa especificada, tornando essa configuração útil para aplicações como detecção de obstáculos em robótica.

Detalhes da ficha técnica

FabricanteAfiado
Número da peçaGP2Y0A21YK0F
Tensão lógica/E/S5 V
Tensão de alimentação4.5 - 5.5 V
Tensão de saída0.4 - 2.5 V
Faixa de medição10 - 80 cm
Tempo de resposta50 ms
Corrente de saída20 mA
PacoteMódulo
Notas / variantesDisponível em vários alcances

  • Certifique-se de que a fonte de alimentação seja adequada (4,5 - 5,5 V) para evitar danos.
  • Use um resistor para limitar a corrente, se necessário.
  • Mantenha o sensor limpo para leituras precisas.
  • Esteja atento à interferência da luz ambiente.
  • A fiação deve estar bem fixada para evitar conexões intermitentes.

Instruções de fiação

Arduino wiring for Sharf IR distance sensor
Arduino wiring for Sharf IR distance sensor

Para ligar o módulo de distância IR Sharp, conecte o pino de aterramento do módulo ao pino GND do Arduino. Em seguida, conecte o pino VCC do módulo ao pino 5V do Arduino. O pino de saída de sinal do módulo Sharp IR deve ser conectado ao pino 2 do Arduino, que lerá os dados de distância.

Para o buzzer, conecte o pino mais longo (positivo) ao pino 8 do Arduino e o pino mais curto (negativo) ao GND. Certifique-se de que todas as conexões estejam seguras e de que os componentes estejam corretamente alimentados para garantir o funcionamento adequado.

Exemplos de Código e Guia Passo a Passo

Abaixo está um breve trecho do código Arduino onde definimos os pinos e configuramos o sensor. O identificadorIRé definido como o pino analógico usado para o sinal do sensor.

#define IR A0 // define signal pin
SharpIR SharpIR(IR, model); // Initialize SharpIR with the defined pin

Este código inicializa o sensor IR Sharp no pino analógico especificado. O identificadormodelespecifica o tipo de sensor que está sendo usado, que neste caso está definido como 1080 para o modelo GP2Y0A21YK0F.

Na função setup, iniciamos a comunicação serial para monitorar as leituras de distância:

void setup() {
    Serial.begin(9600); // Initialize serial communication
    Serial.println("Robojax Sharp IR  "); // Print message to serial monitor
}

A função setup inicializa a comunicação serial a 9600 baud, permitindo que o Arduino envie dados de distância ao Serial Monitor para observação.

Dentro da função loop, lemos a distância do sensor e a imprimimos:

void loop() {
    int dis = SharpIR.distance(); // Read the distance
    Serial.print("Mean distance: "); // Print distance to serial monitor
    Serial.println(dis); // Output the distance measurement
}

Este trecho mostra como ler continuamente a distância e imprimi-la no Monitor Serial. A variáveldisArmazena o valor da distância medido pelo sensor IR Sharp.

Demonstração / O que esperar

Quando a configuração estiver concluída, espere que o buzzer toque sempre que um objeto for detectado dentro do alcance especificado do sensor IR Sharp. O Monitor Serial exibirá "Mean distance" juntamente com a distância medida em centímetros. Se não houver objetos no alcance, o monitor também indicará isso (no vídeo em 02:30).

Erros comuns incluem garantir que o sensor esteja alinhado corretamente e que não haja obstruções que bloqueiem o sinal infravermelho. Além disso, verifique se a fonte de alimentação está estável para evitar leituras erráticas.

Marcas de tempo do vídeo

  • 00:00- Introdução ao projeto
  • 02:30- Demonstração da funcionalidade do sensor
  • 03:45- Explicação da fiação
  • 05:00Análise do código

Imagens

Sharpt IR distance sensor GP2Y0A21YK0F
Sharpt IR distance sensor GP2Y0A21YK0F
Arduino wiring for Sharf IR distance sensor
Arduino wiring for Sharf IR distance sensor
Sharpt IR distance sensor
Sharpt IR distance sensor GP2Y0A21YK0F
69-This is the Arduino code and video for a Sharp Infrared Sensor Module
Idioma: C++
/*
 * Sharp IR (infrared) distance measurement module for Arduino
 * Measures the distance in cm.

 * Original library: https://github.com/guillaume-rico/SharpIR

 * Watch video instruction for this code: https://youtu.be/GL8dkw1NbMc
 *
 * 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/>.

*/




 */
  // Sharp IR code for Robojax.com
#include <SharpIR.h>

#define IR A0 // define signal pin
#define model 1080 // used 1080 because model GP2Y0A21YK0F is used
// Sharp IR code for Robojax.com
// ir: the pin where your sensor is attached
// model: an int that determines your sensor:  1080 for GP2Y0A21Y
//                                            20150 for GP2Y0A02Y
//                                            430 for GP2Y0A41SK
/*
2 to 15 cm GP2Y0A51SK0F	use 1080
4 to 30 cm GP2Y0A41SK0F / GP2Y0AF30 series	use 430
10 to 80 cm GP2Y0A21YK0F	use 1080
10 to 150 cm GP2Y0A60SZLF	use 10150
20 to 150 cm GP2Y0A02YK0F	use 20150
100 to 550 cm GP2Y0A710K0F	use 100550

 */

SharpIR SharpIR(IR, model);
void setup() {
    // Sharp IR code for Robojax.com
 Serial.begin(9600);
 Serial.println("Robojax Sharp IR  ");
}

void loop() {
    // Sharp IR code for Robojax.com
    delay(500);

  unsigned long startTime=millis();  // takes the time before the loop on the library begins

  int dis=SharpIR.distance();  // this returns the distance to the object you're measuring

  // Sharp IR code for Robojax.com

  Serial.print("Mean distance: ");  // returns it to the serial monitor
  Serial.println(dis);
  //Serial.println(analogRead(A0));
  unsigned long endTime=millis()-startTime;  // the following gives you the time taken to get the measurement
 Serial.print("Time taken (ms): ");
 Serial.println(endTime);
     // Sharp IR code for Robojax.com

}

Coisas que você pode precisar

Recursos e referências

Arquivos📁

Bibliotecas do Arduino (zip)

Arquivo Fritzing