O SHARP GP2Y0A710K0F é um sensor de distância IR fácil de usar com um alcance extra longo de 100 – 500 cm. Este alcance extra longo torna-o uma boa alternativa aos sensores de distância ultrassónicos.
Neste tutorial, vais aprender como o sensor funciona e como usá-lo com Arduino. Incluí um diagrama de ligação e código de exemplo para que possas começar a experimentar com o teu sensor.
Se procuras um sensor de distância mais acessível ou à prova de água, dá uma vista de olhos no HC-SR04 ou JSN-SR04T. Nos artigos abaixo explico como estes sensores de distância/proximidade funcionam e como podes usá-los com Arduino.
Outros sensores de distância/proximidade:
- How to use an HC-SR04 Ultrasonic Distance Sensor with Arduino
- Waterproof JSN-SR04T Ultrasonic Distance Sensor with Arduino Tutorial
- How to use a SHARP GP2Y0A710K0F IR Distance Sensor with Arduino
- TOF10120 Distance Sensor with Arduino
- VL53L1X/TOF400C Distance Sensor with Arduino
- VL53L0X Distance Sensor with Arduino
Peças Necessárias

Sensor de Distância GP2Y0A710K0F

Arduino Uno

Cabo USB para Arduino UNO

Conjunto de Fios Dupont

Breadboard

Condensador( ≥ 10 µF)
Makerguides is a participant in affiliate advertising programs designed to provide a means for sites to earn advertising fees by linking to Amazon, AliExpress, Elecrow, and other sites. As an Affiliate we may earn from qualifying purchases.
Como funciona um sensor de distância IR?
Um sensor de distância IR usa um feixe de luz infravermelha que reflete num objeto para medir a sua distância. A distância é calculada usando triangulação do feixe de luz. O sensor é composto por um LED IR e um detector de luz ou PSD (Dispositivo de Sensibilidade Posicional).
Quando o feixe de luz é refletido por um objeto, o feixe refletido alcança o detector de luz e forma-se um ‘ponto óptico’ no PSD.

Quando a posição do objeto muda, o ângulo do feixe refletido e a posição do ponto no PSD também mudam. Vê o ponto A e o ponto B na imagem abaixo.

O sensor tem um circuito de processamento de sinal incorporado. Este circuito processa a posição do ponto óptico no PSD para determinar a posição (distância) do objeto refletor. Ele produz um sinal analógico que depende da posição do objeto em frente ao sensor.
Como ler um sensor de distância IR?
Sensores de distância IR produzem um sinal analógico, que varia conforme a distância entre o sensor e um objeto. Pelo datasheet, podes ver que a tensão de saída do SHARP GP2Y0A710K0F varia de 2,5 V quando um objeto está a 100 cm até 1,4 V quando um objeto está a 500 cm. O gráfico também mostra porque o intervalo útil de deteção começa nos 100 cm.
Repara que a tensão de saída para um objeto a 30 cm é igual à tensão para um objeto a 160 cm. Portanto, o intervalo útil de deteção começa após o pico, aproximadamente aos 100 cm ou 2,5 V.

O gráfico também mostra a desvantagem destes sensores: a resposta é não linear. Ou seja, uma grande mudança na tensão de saída nem sempre corresponde a uma grande mudança na distância. Para determinar a distância entre o sensor e um objeto, precisas de encontrar uma função que converta a tensão de saída num valor de distância.
Se traçares a tensão de saída contra o inverso da distância, obténs uma relação maioritariamente linear. Para distâncias > 100 cm obténs a seguinte curva.

Cálculo da Distância
Com base nos dados do datasheet da SHARP, podes calcular a função linear:
y = 137500x + 1125
Com y igual à tensão de saída em mV e x igual a 1/distância em cm.
Isto resulta na seguinte fórmula para a distância entre o sensor e um objeto:
distância (cm) = 1 / ((output_voltage_mV – 1125) / 137500)
Esta é a função usada na biblioteca SharpIR , que usaremos mais tarde. Nota que esta função é baseada apenas nos dados do datasheet da SHARP. As características de saída do sensor podem variar ligeiramente de sensor para sensor, pelo que podes obter leituras imprecisas.
Especificações do GP2Y0A710K0F
| Tensão de funcionamento | 4,5 a 5,5 V |
| Corrente de funcionamento | 30 mA |
| Intervalo de medição | 100 a 550 cm |
| Tipo de saída | Analógica |
| Dimensões | 58 x 17,6 x 22,5 mm |
| Orifício de montagem | 4,2 mm |
| Custo | Check price |
Para mais informações podes consultar o datasheet aqui.
Ligação do sensor IR GP2Y0A710K0F ao Arduino
O diagrama de ligação abaixo mostra como ligar o sensor de distância IR GP2Y0A710K0F a um Arduino. Nota: as cores dos fios não são intuitivas!

Este tipo de sensores de distância tende a ser um pouco ruidoso, por isso recomenda-se adicionar um condensador entre Vcc e GND. O datasheet sugere um condensador de 10 µF ou mais. Liga o terminal positivo do condensador ao fio Vcc e o terminal negativo ao fio GND (ver imagem). Os condensadores costumam ter uma faixa que indica o terminal negativo. O terminal positivo é geralmente mais longo que o negativo.
Ligações do GP2Y0A710K0F
| GP2Y0A710K0F | Arduino |
|---|---|
| 1 (Vermelho) | GND |
| 2 (Preto) | 5V |
| 3 (Amarelo) | 5V |
| 4 (Verde) | A0 |
| 5 (Azul) | GND |
Se o teu sensor tiver fios de cores diferentes, certifica-te de verificar o pinout abaixo. O pino Vo está ligado à entrada analógica do Arduino (A0).

O conector do sensor não está marcado, a ordem dos pinos corresponde ao sensor com o logo virado para cima.
Agora que ligaste o sensor, é hora de ver algum código de exemplo.
Instalar a biblioteca SharpIR para Arduino
A biblioteca SharpIR, escrita por Guillaume Rico e Thibaut Mauon, facilita muito o trabalho com sensores IR SHARP. Inclui as fórmulas necessárias para converter a tensão de saída medida numa distância em centímetros. Atualmente, a biblioteca suporta os seguintes sensores: GP2Y0A02YK0F, GP2Y0A21YK0F, GP2Y0A710K0F e GP2YA41SK0F. A versão mais recente da biblioteca pode ser descarregada aqui em GitHub ou clica no botão abaixo.
Podes instalar a biblioteca indo a Sketch > Include Library > Add .ZIP Library no IDE do Arduino.

O autor da biblioteca notou que as leituras do sensor podem oscilar bastante. A biblioteca resolve este problema fazendo várias leituras seguidas, descartando valores fora do padrão e calculando a média para obter uma leitura de distância mais estável. Atualmente, a biblioteca calcula a média de 25 leituras, o que demora cerca de 53 ms.
Código de exemplo para o sensor de distância IR SHARP GP2Y0A710K0F com Arduino
O código de exemplo abaixo pode ser usado com o sensor GP2Y0A710K0F e mostra a distância medida em centímetros no monitor serial.
Podes copiar o código clicando no botão no canto superior direito do campo de código.
/*SHARP GP2Y0A710K0F IR distance sensor with
Arduino and SharpIR library example code.
More info: https://www.makerguides.com */
// Include the library:
#include "SharpIR.h"
// Define model and input pin:
#define IRPin A0
#define model 100500
// Variable to store the distance
int distance_cm;
/* Model :
GP2Y0A02YK0F --> 20150
GP2Y0A21YK0F --> 1080
GP2Y0A710K0F --> 100500
GP2YA41SK0F --> 430
*/
// Create a new instance of the SharpIR class
SharpIR mySensor = SharpIR(IRPin, model);
void setup() {
// Serial communication at a baud rate of 9600
Serial.begin(9600);
}
void loop() {
// Get a distance measurement and store it as distance_cm
distance_cm = mySensor.distance();
// Print the measured distance to the serial monitor
Serial.print("Mean distance: ");
Serial.print(distance_cm);
Serial.println(" cm");
delay(1000);
}
Nota que neste exemplo chamámos o sensor de mySensor. Se quiseres usar vários sensores de distância IR, podes criar outro objeto sensor com um nome diferente: SharpIR mySensor2 = SharpIR(IRPin2, model); Nota que nesse caso também usas um pino de entrada diferente para o segundo sensor.
Quando a tensão de saída estiver abaixo de 1,4 V ou acima de 3,3 V, verás “Mean distance: 0 cm” no monitor serial.
Conclusão
Neste artigo, mostrei como funciona o sensor de distância IR SHARP GP2Y0A710K0F e como podes usá-lo com Arduino. Espero que tenhas achado útil e informativo. Se sim, partilha com um amigo que também goste de eletrónica!
Sente-te à vontade para deixar qualquer pergunta na secção de comentários.

