The SHARP GP2Y0A710K0F è un sensore di distanza IR facile da usare con un raggio extra lungo di 100 – 500 cm. Questo raggio extra lungo lo rende una buona alternativa ai sensori di distanza a ultrasuoni.
In questo tutorial imparerai come funziona il sensore e come usarlo con Arduino. Ho incluso uno schema di collegamento e un codice di esempio per iniziare a sperimentare con il tuo sensore.
Se stai cercando un sensore di distanza più economico o impermeabile, dai un’occhiata all’HC-SR04 o JSN-SR04T. Negli articoli seguenti spiego come funzionano questi sensori di distanza/prossimità e come usarli con Arduino.
Altri sensori di distanza/prossimità:
- 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
Componenti necessari

Sensore di distanza GP2Y0A710K0F

Arduino Uno

Cavo USB per Arduino UNO

Set di fili Dupont

Breadboard

Condensatore( ≥ 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.
Come funziona un sensore di distanza IR?
Un sensore di distanza IR usa un fascio di luce infrarossa che si riflette su un oggetto per misurarne la distanza. La distanza viene calcolata tramite triangolazione del fascio luminoso. Il sensore è composto da un LED IR e un rilevatore di luce o PSD (Position Sensing Device).
Quando il fascio di luce viene riflesso da un oggetto, il fascio riflesso raggiunge il rilevatore di luce e si forma un ‘punto ottico’ sul PSD.

Quando la posizione dell’oggetto cambia, cambia anche l’angolo del fascio riflesso e la posizione del punto sul PSD. Vedi i punti A e B nell’immagine sottostante.

Il sensore ha un circuito di elaborazione del segnale integrato. Questo circuito elabora la posizione del punto ottico sul PSD per determinare la posizione (distanza) dell’oggetto riflettente. Fornisce un segnale analogico che dipende dalla posizione dell’oggetto davanti al sensore.
Come leggere un sensore di distanza IR?
I sensori di distanza IR forniscono un segnale analogico che varia in base alla distanza tra il sensore e un oggetto. Dal datasheet si vede che la tensione di uscita del SHARP GP2Y0A710K0F varia da 2,5 V quando un oggetto è a 100 cm a 1,4 V quando un oggetto è a 500 cm. Il grafico mostra anche perché l’intervallo di rilevamento utile inizia a 100 cm.
Nota che la tensione di uscita per un oggetto a 30 cm è la stessa di quella per un oggetto a 160 cm. L’intervallo di rilevamento utile quindi inizia dopo il picco a circa 100 cm o 2,5 V.

Il grafico mostra anche il limite di questi sensori: la risposta non è lineare. In altre parole, un grande cambiamento nella tensione di uscita non corrisponde sempre a un grande cambiamento nella distanza. Per determinare la distanza tra il sensore e un oggetto, è necessario trovare una funzione che converta la tensione di uscita in un valore di distanza.
Se si traccia la tensione di uscita rispetto all’inverso della distanza, si ottiene una relazione per lo più lineare. Per distanze > 100 cm si ottiene la seguente curva.

Calcolo della distanza
Basandosi sui dati del datasheet SHARP, si può calcolare la funzione lineare:
y = 137500x + 1125
Con y uguale alla tensione di uscita in mV e x uguale a 1/distanza in cm.
Questo porta alla seguente formula per la distanza tra il sensore e un oggetto:
distanza (cm) = 1 / ((output_voltage_mV – 1125) / 137500)
Questa è la funzione usata nella libreria SharpIR , che useremo più avanti. Nota che questa funzione si basa solo sui dati del datasheet SHARP. Le caratteristiche di uscita del sensore possono variare leggermente da sensore a sensore, quindi potresti ottenere letture imprecise.
Specifiche GP2Y0A710K0F
| Tensione di funzionamento | 4,5 a 5,5 V |
| Corrente di funzionamento | 30 mA |
| Intervallo di misura | 100 a 550 cm |
| Tipo di uscita | Analogica |
| Dimensioni | 58 x 17,6 x 22,5 mm |
| Foro di montaggio | 4,2 mm |
| Costo | Check price |
Per maggiori informazioni puoi consultare il datasheet qui.
Collegare il sensore IR GP2Y0A710K0F ad Arduino
Lo schema di collegamento qui sotto mostra come collegare il sensore di distanza IR GP2Y0A710K0F a un Arduino. Nota bene: i colori dei fili non sono intuitivi!

Questi tipi di sensori di distanza tendono a essere un po’ rumorosi, quindi si consiglia di aggiungere un condensatore tra Vcc e GND. Il datasheet suggerisce un condensatore da 10 µF o più. Collega il terminale positivo del condensatore al filo Vcc e il terminale negativo al filo GND (vedi immagine). I condensatori sono spesso contrassegnati da una striscia che indica il terminale negativo. Il terminale positivo è spesso più lungo di quello negativo.
Collegamenti GP2Y0A710K0F
| GP2Y0A710K0F | Arduino |
|---|---|
| 1 (Rosso) | GND |
| 2 (Nero) | 5V |
| 3 (Giallo) | 5V |
| 4 (Verde) | A0 |
| 5 (Blu) | GND |
Se il tuo sensore ha fili di colori diversi, assicurati di controllare il pinout qui sotto. Il pin Vo è collegato all’ingresso analogico di Arduino (A0).

Il connettore del sensore non è marcato, l’ordine dei pin corrisponde al sensore con il logo rivolto verso l’alto.
Ora che hai collegato il sensore, è il momento di vedere un esempio di codice.
Installare la libreria SharpIR per Arduino
La libreria SharpIR scritta da Guillaume Rico e Thibaut Mauon rende molto più semplice lavorare con i sensori IR SHARP. Include le formule necessarie per convertire la tensione di uscita misurata in una distanza in centimetri. Attualmente, la libreria supporta i seguenti sensori: GP2Y0A02YK0F, GP2Y0A21YK0F, GP2Y0A710K0F e GP2YA41SK0F. L’ultima versione della libreria può essere scaricata qui su GitHub o cliccando il pulsante qui sotto.
Puoi installare la libreria andando su Sketch > Include Library > Add .ZIP Library nell’IDE di Arduino.

L’autore della libreria ha notato che le letture del sensore possono variare molto. La libreria risolve questo problema prendendo più letture consecutive, scartando i valori anomali e calcolando la media per ottenere una lettura della distanza più stabile. Attualmente, la libreria calcola la media di 25 letture, che richiede circa 53 ms.
Codice di esempio per sensore di distanza IR SHARP GP2Y0A710K0F con Arduino
Il codice di esempio qui sotto può essere usato con il sensore GP2Y0A710K0F e mostra la distanza misurata in centimetri nel monitor seriale.
Puoi copiare il codice cliccando il pulsante in alto a destra nel campo del codice.
/*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 che in questo esempio abbiamo chiamato il sensore mySensor. Se vuoi usare più sensori di distanza IR, puoi creare un altro oggetto sensore con un nome diverso: SharpIR mySensor2 = SharpIR(IRPin2, model); Nota che in questo caso devi anche usare un pin di ingresso diverso per il secondo sensore.
Quando la tensione di uscita è sotto 1,4 V o superiore a 3,3 V, vedrai “Mean distance: 0 cm” nel monitor seriale.
Conclusione
In questo articolo ti ho mostrato come funziona il sensore di distanza IR SHARP GP2Y0A710K0F e come usarlo con Arduino. Spero che ti sia stato utile e interessante. Se è così, condividilo con un amico appassionato di elettronica!
Sentiti libero di lasciare qualsiasi domanda nella sezione commenti.

