Arduino Mega 2560 et Capteurs GP2D120

Bonjour @toutes et @tous :)

Voilà je vous écris concernant la détection d'obstacle, je m'explique :

je travail sur une carte Arduino Mega 2650
je possède des capteurs SHARP GP2D120. Capteurs de mesure de distance et télémètres infrarouges

mon but est de détecter des obstacles aux environs de 18cm voir 19cm (c'est pour mon robot XD)

Donc après avoir lu les post concernant les capteurs, je me suis mis à programmer un test :
Dès qu'il détecte un objet entre 18 et 19cm alors il allume la del borne 52

donc je branche mon capteur : :)

  • le 5v sur le 5v de la carte Arduino

  • le noir sur le gnd de la carte

  • le signal sur la borne A2

  • Le + de la del sur la borne 52 (la del fonctionne XD ;) )

  • Le - de la del sur le gnd

le tout est alimenté via mon câble usb


je calcul le nombre "arduino" correspondant à ma distance : :)

Vréf = 5v
Coeff = 1024
donc Pas = Vréf/Coeff = 0,0048828125

Pour Distance = 18cm, Vcapteur = 0,7v (d'après le diagramme capteur)

Donc NAr = Vcapteur/Pas = 0,7/(5/1024) = 143,36 (Nar = Nombre Arduino)


Voici mon programme : :)

int val=0;

void setup()
{
  pinMode(52,OUTPUT);
  pinMode(A2,INPUT);
}

void loop()
{
  val=analogRead(A2);
  if(val>=143)  // val=143,36 pour 18cm
  {
    digitalWrite(52,HIGH);
  }
  else
  {
    digitalWrite(52,LOW);
  }
}

Cependant je n'ai aucune réponse, pourriez vous m'éclairer ? :~ :blush: :blush:
D'avance je vous remercie. :D ;)

Si vous avez des questions, n'hésitez pas :)

val = analogRead(A2) fonctionne, c'est la troisième pin anaalogue (A0, A1, A2, ...)

La syntaxe est bonne.

Par contre : pinMode(A2,INPUT); ne sert à rien il faut retirer cette ligne.

Les pin analogue ne fonctionne qu'en entrée. C'est peut-être cela qui fiche le bordel.

Sinon pour la led, c'est mieux de lui coller une resistance genre 220 ohm afin de limiter le courant dans cette dernière.

Sinon essaye d'inverser l'allumage de la led (change les HIGH en LOW et vice est versa), pour voir si tu as un résultat différent.

Sinon tu peux aussi utiliser la pin 13 qui comporte une led sur l'arduino (elle est minuscule mais efficace).

Essaye aussi de mettre un petit délai pour laisser de l'air entre 2 mesures (genre 200ms), après tu pourra l'enlever.

AlienArea51:
au temps pour moi

ayant vu ça

The analog pins can be used identically to the digital pins, using the aliases A0

j'ai cru :roll_eyes:

@+

Pas de soucis, c'est bon pour utiliser A0 !!!

Sinon dans le datasheet du capteur, la sortie oscille entre 0v et 2,5v

Ce qui va plutôt te donner une valeur entre 0 et 512 sur l'analog.

Ce que tu peux faire, c'est aussi afficher la valeur de ton entrée analogue pour voir les résultats en fonction de la distance sur le serial moniteur arduino.

pour cela dans le setup tu mets :

Serial.begin(9600);

et dans le loop après la mesure :

Serial.println(val, DEC);

Un grand MERCI à vous Deux pour vos réponse XD XD XD XD

ça fonctionne à présent !! ^^/ ^^/ ^^/

Seul petit bémol :
je m'aperçois que ma del clignote brièvement quand mon installation est en mouvement (pourtant il n'y a rien qui passe devant le capteur.. :~)
et quand l'obstacle arrive à bonne distance (19cm) la del clignote un peu avant de se stabiliser...

Est-ce dû à quelques parasites ?

Devrais-je programmer de tels façon, qu'il faudrait que la mesure se stabilise (reste à 1) pendant un temps (peut être 200ms) ?
Pourriez vous me prêter vos idées ? :blush: :slight_smile:

Bonjour @toutes et @tous

Après de nombreuses recherches sur internet,
j'ai trouvé comme conseil de mettre au plus près du capteur un condo de 100µf entre le 5v et le gnd.

ce que j'ai fais, cependant même si cela filtre les perturbations de l'alimentation,
je me retrouve toujours avec mon capteur qui est saturé par la lumière du soleil et donc qui détecte des obstacles là où il n'y en a pas :frowning: :frowning:

N'y aurait-il pas un moyen de soustraire le signal "perturbateur du soleil" au signal "lu par le capteur" afin de ne retrouver que les pics dus aux obstacles ?

Please HELP Me :blush: :blush: :~

quand il y a beaucoup de soleil, la valeur retournée par la borne abalog est de combien environ.

Sinon tout ce qui est infrarouge marche pas genial quand il y a beaucoup de soleil!...

Tu peux essayer de mettre du papier calc devant pour réduire la sensibilité... Mais je ne sais pas si ca t'aidera beaucoup

peut-être en mettant un morceau de plastique rouge très foncé devant (comme sur les récepteurs IR des TV). Par contre, il y a des plastiques qui sont opaques aux IR.

Ok .... =(
donc si je comprend bien , j'ai acheté 6 capteurs infrarouges pour rien... :~ =( =( :disappointed_relieved:

Pourriez vous m'indiquer les meilleurs capteurs d'obstacles à distance (pas de switch :stuck_out_tongue: ) pour un robot "marcheur" qui circulerait le jour comme la nuit, en intérieur (maison, appart, entrepot ) ?

Merci d'avance. :slight_smile:

p.s : sur ce forum, le personne en question ayant pratiquement le même pb que moi a ajouté une resistance entre le signal et GND.
là-> adaptation d'impédance - Forums de Abcelectronique

Qu'en pensez-vous ? :~

Merci. :slight_smile:

Salut @toutes et @tous :slight_smile:

pour info, (en cherchant sur internet) j'ai trouvé que l'on peut aider un capteur infrarouge avec une pellicule photo exposée (noire)

après quelques tests, j'ai trouvé quand collant 2 bouts de diapo l'une sur l'autre et sur le récepteur infrarouge, le capteur n'est plus gêné.

pour info le récepteur est à droite au niveau du "rectangle" :slight_smile:

Voilà @plus :wink:

Donc c'est très proche des solutions qu'on a évoqué un peu plus haut : un morceau de calque ou un morceau de plastique transparent très foncé :slight_smile: