Salut à tous !
aujourd’hui je vais vous présenter le GP2Y0A21YK0F, un capteur de distance infrarouge construit par sharp.
Les capteurs infrarouge de sharp sont de petit capteur de distance infrarouge, allant de 10 à 80 cm pour ce modèle et vendu pour un prix inférieur à 10€ chez mon fournisseur.
Comme vous pouvez le voir il sont relativement petit (4cm de long pour 2 cm de haut environ).
L’avantage de c’est capteurs c’est qu’ils embarquent toute l’électronique nécessaire à leur fonctionnement.
De ce faite un simple interface 3 fils suffit pour les faire marcher ! (GND, VCC, OUT)
Il n’y a pas grand chose à dire sur ces capteurs si ce n’est qu’ils font bien leur bouleau !
Toute les infos technique sous détaillé dans le datasheet fourni par sharp (qui en plus est vraiment agréable à lire).
Mais ce serait dommage d’arrêté ce test à ce point !
C’est pourquoi j’ai sortit une grosse règle, mon arduino, et un déclencheur à main pour appareil photo.
Le but de tout ce bouzin !?
Regarder si le graphique de réponse IR fourni par sharp est réaliste ou complétement inventé.
Pour éviter tout risques j’ai suivis les conseils du datasheet :
Le capteur est fixé sur un support lesté et perpendiculaire à la règle,
l’obstacle est constitué d’une carton avec par dessus une feuille blanche pour optimisé la réfection lumineuse,
j’ai aussi pris soin que la lumière sont en contre jours et ne se reflète pas sur la feuille.
Pour généré le graphique j’ai fait un petit sktech arduino sortant les info sur le port série au format csv.
void setup(){
Serial.begin(9600);
Serial.println("Sharp Ir Test");
pinMode(2, INPUT);
digitalWrite(2, HIGH);
attachInterrupt(0, getV, FALLING);
}
void loop(){
}
int index = 0;
int value = 0;
void getV(){
value = analogRead(A0);
Serial.print(index);
Serial.print(',');
Serial.println(value);
index++;
}
Le déclencheur est un bouton pour appareil photo bricolé avec un anti rebonds.
Les résultats :
Voici le graphique de réponse supposé par sharp :

Comme vous pouvez le voir les deux sont très similaire sharp ne nous a pas menti, on remarquera 3-4 point raté surement dus à une mauvaise manipulation.
Pour ceux qui voudrait le fichier tableur le voici :
result-sharp-IR.xls
(Ps: je trouve cela scandaleux que wordpress.com n’autorise QUE les fichiers µsoft office ! (excepté les .ODT (texte))
Conclusion :
Ce sont des capteurs petit et puissant, avec un câblage facile et qui ne demande quasiment aucun code.
Idéal pour un robot ou une prise de distance avec une carte arduino !








Je viens de recevoir mon capteur mais je me demande si ce branchement fonctionne sans cramer l’arduino:
fil rouge(+)= sur 3.3 V
fil noir(-)=sur GND (?? direct sans aucune résistance ?)
fil blanc(signal)=sur pinAnalog
Publié par Fabien | 25 juillet 2012, 13 h 15 minc’est ça, rouge : VCC, noir : GND, blanc : Ax, c’est pas possible de faire plus simple 😉
Publié par skywodd | 25 juillet 2012, 13 h 40 minok mais en faite j’avais un doute sur le noir et GND sans résistance parce que moi j’ai l’habitude de mettre des résistance de 10k sur les capteur de luminosité, température et bouton
Publié par Fabien | 26 juillet 2012, 9 h 04 minTu n’en as pas besoin, le capteur possédé sa propre électronique interne 😉
Tu lui fourni juste une alimentation 3v3 ou 5v et il se charge du reste de lui même.
Publié par skywodd | 26 juillet 2012, 16 h 05 minok merci.
Super site, super admin !! XD
Publié par Fabien | 27 juillet 2012, 12 h 24 minSalut,
merci pour ce petit programme, il m’a permis de faire le mien.
Il y a cependant une petite erreur, dans la loop, il faut appeler getV sinon rien ne se passe !
J’aurais aussi voulu savoir à quoi sert exactement les ligne suivantes :
pinMode(2, INPUT);
digitalWrite(2, HIGH);
attachInterrupt(0, getV, FALLING);
Merci.
A+.
Publié par Sam | 31 mars 2013, 18 h 11 minManifestement tu n’as pas compris le principe de fonctionnement du code …
Je cite :
« Le déclencheur est un bouton pour appareil photo bricolé avec un anti rebonds. »
pinMode(2, INPUT); // Place la broche D2 en entrée
digitalWrite(2, HIGH); // Active la résistance de pull-up de la broche D2
attachInterrupt(0, getV, FALLING); // Active l’interruption 0 (sur la broche D2) pour appeler la fonction getV() quand le signal sur la broche D2 passe de HIGH à LOW.
Publié par skywodd | 31 mars 2013, 18 h 26 mincomment introduire getV dans la fonction loop? merci en avance
Publié par Mahi | 3 avril 2013, 12 h 43 minLa fonction getV() est appelé par l’interruption du bouton poussoir (voir mon commentaire juste au dessus) pas par la fonction loop().
Publié par skywodd | 3 avril 2013, 19 h 21 minBonsoir, auriez vous des kit de fixation a me conseiller adapter pour ces capteurs?
Publié par Bertrand | 17 février 2014, 21 h 54 minDes visses de diamètre 2mm (le classique trio : visse, rondelle et écrou) font très bien l’affaire, pas besoin de kit de fixation.
Publié par skywodd | 22 février 2014, 16 h 10 minMême sur un tube d’acier de 3mm d’épaisseur?
Publié par bertrand | 2 mars 2014, 2 h 33 min>> Même sur un tube d’acier de 3mm d’épaisseur?
Suffit de faire un support avec deux plaques de métal montées en sert-joint …
Publié par skywodd | 3 mars 2014, 20 h 21 minC’est a dire?
Publié par Bertrand | 4 mars 2014, 0 h 55 minC’est le principe des colliers de fixation pour tube de cuivre … comme en plomberie.
Publié par skywodd | 6 mars 2014, 22 h 02 minMais le fait de montées 2 plaques de métal en sert joint est assez complexe selon vous?
Publié par bertrand | 7 mars 2014, 2 h 37 minSuper ! merci pour cette belle présentation qui donne envie :-))
Peut-on intégrer ce capteur derrière une plaque dépolie ou autre, pour le « cacher » un peu ?
Publié par Mat | 1 Mai 2014, 19 h 00 minBonjour merci pour ce test, pour mon projet de terminale SI j’aurais besoin de ce capteur mais serais-t’il compatible avec une carte ECIO 40 ? merci d’avance
Publié par TORNIER | 2 mars 2016, 14 h 43 minBonjour dans votre tableau à quoi correspond votre deuxième colonne. Merci
Publié par Ryme | 16 Mai 2018, 21 h 05 min