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.

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
| Fabricante | Afiado |
|---|---|
| Número da peça | GP2Y0A21YK0F |
| Tensão lógica/E/S | 5 V |
| Tensão de alimentação | 4.5 - 5.5 V |
| Tensão de saída | 0.4 - 2.5 V |
| Faixa de medição | 10 - 80 cm |
| Tempo de resposta | 50 ms |
| Corrente de saída | 20 mA |
| Pacote | Módulo |
| Notas / variantes | Disponí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

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 pinEste 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
/*
* 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
-
Amazonas
Recursos e referências
-
ExternoBiblioteca Sharp da RoboJob.comrobojax.com
-
ExternoFolha de dados do Sharp IR GP2Y0A51SK0F (PDF)global.sharp
Arquivos📁
Bibliotecas do Arduino (zip)
-
Biblioteca Arduino para sensor de distância IR Sharp
robojax-sharp_IR-master.zip
Arquivo Fritzing
-
sensor infravermelho GP2Y0A02YK0F
sharp ir sensor GP2Y0A02YK0F .fzz