[Mise sur rails] Laser distance + Arduino UNO

juju_m:
Bonjour tout le monde :slight_smile:

Voilà je viens de recevoir un capteur de distance à laser, et d'ici peu il me faudra récupérer cette distance dans mon application en AIR.
J'ai donc naturellement opté pour l'Arduino. Seul hic, j'ai une vague idée de ce que je suis sensé faire, mais pas trop non plus... Alors je comptais sur vous pour me mettre sur les rails au niveau des branchements de PIN etc. Pour la partie suivante (interfaçage avec le logiciel) je devrais me débrouiller, donc pas de souci à ce niveau là. (Du moins j'espère!)

Niveau matos Arduino je possède la petite Arduino UNO.
La personne sensée s'occuper de ça, m'avait brièvement montré qu'il fallait brancher les broches du câble sur le coté gauche de la Arduino UNO, c'est-à-dire les pins de "ANALOG IN"..

bonjour
1ere chose , le capteur sort en boucle de courant standard industrie (4-20 mA) , il faut donc déjà mettre entre le capteur et l'arduino un convertisseur/adaptateur 4-20 mA---> 0-5V (ou autre choix)
il existe des shields prevus pour

1 exemple ici
http://erdosmiller.com/products/arduino-4-20ma-shield

Merci pour ta réponse !

Oula, 100 boules le shield :fearful:

Concrètement, entre le capteur et l'arduino, niveau branchement ça donne quoi ?
Après quelques recherches, si je comprend bien le shield se pose sur l'arduino et le capteur se branche sur le shield.. ?

juju_m:
Merci pour ta réponse !

Oula, 100 boules le shield :fearful:

Concrètement, entre le capteur et l'arduino, niveau branchement ça donne quoi ?
Après quelques recherches, si je comprend bien le shield se pose sur l'arduino et le capteur se branche sur le shield.. ?

sinon il y a l'adaptateur du "pauvre" :grin:

lire
http://www.industrologic.com/aninput.htm

Oué enfin le shield y'a plein de choses dessus : alimentation à découpage, ADC 16 bits, température ...

Le "montage du pauvre", je m'en sers couramment ça fait parfaitement son job :wink:

Up :slight_smile:

Et bonjour ! Merci pour vos réponses.
Je viens bientôt commencer le montage avec le laser, mais nous avons reçu entre-temps un autre modèle et je souhaitais avoir votre avis sur ce dernier..

les specs:
http://info.bannerengineering.com/xpedio/groups/public/documents/literature/64323.pdf

Juste pour rappel, je n'y connais quasiment rien en Arduino et je reviendrais très souvent vers vous pour un peu d'aide.. Et bien sûr je chercherais à coté.
J'ai aussi opté pour une résistance de 250 ohm dans le cas où j'utiliserais le premier modèle. (photos dans mon 1er post)

Merci beaucoup :slight_smile:

Bonjour

nous avons reçu entre-temps un autre modèle et je souhaitais avoir votre avis sur ce dernier..

Belle bête .... du bon matériel industriel à première vue.......
Question interfaçage Arduino ça reste du "4-20mA" s'il y a un "I" dans la référence, du "0-10V" s'il y a un "U"
Quelle est la référence complète ? (Q50BVI, Q50BVU etc ...)

Il s'agit du Q50BU :slight_smile:

UP :slight_smile:

J'ai finalement réussi a brancher le laser à l'Arduino, et je reçois bien le signal dans mon programme.

Mais deux problèmes (je crois) se posent à moi:
Déjà, comme spécifié plus haut, le modèle de mon laser retourne une tension allant de 0 à 10V. Hors si j'ai bien compris Arduino n'accepte que du 0-5V..? J'ai fais quelques recherches sur le net mais peu fructueuses. Est-ce qu'il suffit d'utiliser quelques fonctions/formules dans mon programme pour le remmener à l'équivalence de 0-5V (avec la fonction map() par exemple), ou cela se passe-t-il en amont avec des composants supplémentaires ?

Ensuite, lors que j'ai réussi à lire la tension dans mon programme, j'ai finalement réalisé que je ne savais pas ce que j'étais sensé en faire...... :cold_sweat: :cold_sweat:
Déjà sur la doc du laser, je ne vois pas ce qu'il me retourne comme données. Est-ce des paquets de bytes que je dois manipuler ? J'en ai aucune idée..

Help ^^

Sinon à coté de ça je suis en train de lire cet excellent tuto sur le Site du Zero, peut-être que l'auteur se trouve parmi vous ! :slight_smile:

juju_m:
Mais deux problèmes (je crois) se posent à moi:
Déjà, comme spécifié plus haut, le modèle de mon laser retourne une tension allant de 0 à 10V. Hors si j'ai bien compris Arduino n'accepte que du 0-5V..? J'ai fais quelques recherches sur le net mais peu fructueuses. Est-ce qu'il suffit d'utiliser quelques fonctions/formules dans mon programme pour le remmener à l'équivalence de 0-5V (avec la fonction map() par exemple), ou cela se passe-t-il en amont avec des composants supplémentaires ?

Euh comment dire....
10V sur l'entrée de l'arduino c'est destructif.
Il faut limiter la tension sur l'entrée à 0-5V strictement. Pour cela il faut réaliser un diviseur potentiomètrique.
Dans ton cas il faut diviser par 2 pour passer de 10V de dynamique à 5V donc il faut que les 2 résistances soient égales. La valeur n'est pas très critique pour autant que la charge qu'elles représentes ne soit pas trop forte pour ton capteur. D'après la notice il faut être inférieur à 15mA. Si, par exemple, on prend 2 résistances de 4,7kOhms le courant sera de l'ordre du mA.
Si l'équipement est installé dans un environnement fortement perturbé (machines tournantes par exemples) il fadrait mieux passer à 2 résistances de 470Ohms le courant serait plus fort mais cela donnerait une meilleur immunité aux perturbations. Dans tous les cas limiter la distances entre le capteur et l'arduino.

juju_m:
Ensuite, lors que j'ai réussi à lire la tension dans mon programme, j'ai finalement réalisé que je ne savais pas ce que j'étais sensé en faire...... :cold_sweat: :cold_sweat:
Déjà sur la doc du laser, je ne vois pas ce qu'il me retourne comme données. Est-ce des paquets de bytes que je dois manipuler ? J'en ai aucune idée..

De ce que j'ai compris de la doc du capteur, il y a une phase d'apprentissage pendant laquelle tu détermines une position minimum et une position maximum. En mode opérationnel, le capteur te retourne une tension comprise entre 0 et 10V.

  • 0V correspondant à position min ou inférieure
  • 10V correspondant à position max ou supérieure
  • la tension est proportionnelle pour les distances comprises en min et max

Après ce que tu en fais..... c'est toi qui voit.

Merci pour ta réponse !

Il faut limiter la tension sur l'entrée à 0-5V strictement. Pour cela il faut réaliser un diviseur potentiomètrique.
Dans ton cas il faut diviser par 2 pour passer de 10V de dynamique à 5V donc il faut que les 2 résistances soient égales.

Donc si j'ai bien suivi tes explications et ce que j'ai lu en parallèle, pour que mon Arduino reçoive du 0-5V je dois mettre deux résistances en série, soit un "potentiomètre" ?
Je suis tombé sur un autre sujet sur ce forum où quelqu'un exposait ce même souci, vous l'aviez dirigé vers une calculatrice permettant de savoir de combien de ohm chacune des résistances devait posséder dans le cas d'un pont diviseur de tension. Je l'ai aussi utilisé et elle me donne simplement le résultat de deux résistances de 1kOhm..

C'est pourquoi je te suis pas trop dans la suite de ton poste au niveau des résistances à utiliser..

La valeur n'est pas très critique pour autant que la charge qu'elles représentes ne soit pas trop forte pour ton capteur. D'après la notice il faut être inférieur à 15mA. Si, par exemple, on prend 2 résistances de 4,7kOhms le courant sera de l'ordre du mA.
Si l'équipement est installé dans un environnement fortement perturbé (machines tournantes par exemples) il faudrait mieux passer à 2 résistances de 470Ohms le courant serait plus fort mais cela donnerait une meilleur immunité aux perturbations. Dans tous les cas limiter la distances entre le capteur et l'arduino.

Par contre, tu vois très juste pour l'environnement de l'installation, car il s'agit d'un dispositif que des passants pourront librement déplacer de droite à gauche sur 1m50 pendant 4 jours...

il s'agit d'un dispositif que des passants pourront librement déplacer de droite à gauche sur 1m50 pendant 4 jours.

Ton capteur est prévu pour fonctionner entre 100mm et 300m. Tu es loin du compte avec tes 1m50...

je te suis pas trop dans la suite de ton poste au niveau des résistances à utiliser..

La valeur des résistances est relativement peut importante.
La seule contrainte c'est de ne pas faire débiter plus de 15mA au capteur donc il faut que la somme des résistances reste inférieur à 660Ohms.
Mettre des résistances élevées c'est consommer moins. Mais en contre partie comme l'impédance de la ligne est plus élevée elle est plus sensible aux perturbations électriques et électromagnétiques.
Donc 2 résistances de 1k c'est très bien aussi.

Ton capteur est prévu pour fonctionner entre 100mm et 300m. Tu es loin du compte avec tes 1m50...

Maintenant que tu le dis, j'ai un doute effectivement. Es tu sûr qu'il s'agit bien de la distance max calculable ? Car dans le PDF si on regarde en bas les cas d'utilisation, le capteur mesure selon le défilement de l'objet cible, et non la distance entre le capteur et l'objet.. Et cela se voit sur le capteur lorsque je l'éloigne trop, la diode "Range" devient rouge car il n'a pas de cible. Je croyais que le range de 100mm-400mm concernait cette distance de détection de la cible :.

De toute façon, j'utiliserai plus tard l'autre laser qui se base lui sur la distance de la cible. En attendant je prends le jaune, le tout étant pour le moment de pouvoir le brancher correctement, et de recevoir un signal dans mon programme et surtout de découvrir l'Arduino me concernant :slight_smile:

J'aurai une autre question sur la "protection" de l'installation Arduino. J'ai commandé un boitier pour le microcontroller, par contre j'ai un souci concernant les broches connectée aux pins. Y a-t-il des accessoires qui permettent de fixer "correctement" la broche à la pin afin d'être sûr qu'elle ne sorte pas lors de tremblements par exemple. J'ai fais quelques recherches, mais je ne sais pas trop où les orienter.. Tout bêtement lorsque je vais utiliser le premier laser tout en haut de mon topic, je vais devoir ajouter une résistance de 250 ohm au circuit, comment m'assurer de bien fixer tout ça ?

En tout cas merci beaucoup pour ton aide ! :slight_smile:

comment m'assurer de bien fixer tout ça ?

Fer à souder, il n'y a que cela de sûr.
Éventuellement des prises/fiches vissantes si le démontage doit être prévu : de toute façon si tu as réellement besoin de "sûr" il faut modifier.

Le plus simple c'est d'utiliser un shield de prototypage que tu pourras monter sur ta carte arduino.
Tu pourras ainsi souder les petits composants sur la zone de prototypage et faire les connexions vers les entrées de l'arduino. L'ensemble devrait être assez robuste.
http://www.lextronic.fr/P4130-kit-shield-prototypage.html

Il y a aussi une version avec des borniers qui pourrait être pratique pour raccorder ton capteur
http://www.lextronic.fr/P19666-platine-bornier-v15-pour-arduino.html

J'ai pris des exemples chez Lextronic mais il y a d'autres sources bien évidemment.

Re-salut tout le monde,

Merci beaucoup pour vos réponses :slight_smile:

Le dernier boîtier que tu link chez Lextronic à l'air très sympa, je prendrais sûrement celui-ci.

Sinon je suis en train d'essayer de brancher le nouveau laser au microcontroller, et je bute sur l'installation à faire avec la résistance de 250 afin de transformer l'analog input de 4-20mA filé par le laser en 1-5V.. J'ai beau chercher je ne trouve rien ou presque. Mise à part cet unique post: http://arduinoforgoodnotevil.blogspot.fr/2012/04/how-to-connect-4-20ma-sensor-to-arduino.html

Le schéma d'Artouste m'apparaissait peu compliqué avant que je commence, mais en fait je suis pas sûr de saisir comment je dois m'y prendre pour le réaliser, concrètement. :.

La boucle 4-20mA se fait entre la sortie signal et la masse.
Donc la résistance doit être placée entre signal et masse.
La broche de masse du capteur doit être réunie à la masse de l'arduino.
La broche signal du capteur doit être réunie à une entrée analogique de l'arduino.
La résistance doit être au plus près de l'arduino.

Merci pour ta réponse !
J'ai réussi à alimenter le laser désormais, mais j'ai beaucoup de mal à le paramétrer. (Mais c'est un autre problème)

J'ai un gros doute maintenant, sur le laser il est marqué que la tension de service Ub doit être de 18-30 V DC.
S'agit-il bien de la tension à fournir à ce capteur pour qu'il fonctionne ?? L'Arduino est-elle capable de lui fournir ça ? Ou j'ai encore rien compris.. :.

En tout cas mon montage avec la résistance de 250R à une "sale gueule" étant donné que j'ai aucun matos pour prototyper. Ni breadboard, ni straps XD

juju_m:
J'ai un gros doute maintenant, sur le laser il est marqué que la tension de service Ub doit être de 18-30 V DC.
S'agit-il bien de la tension à fournir à ce capteur pour qu'il fonctionne ?? L'Arduino est-elle capable de lui fournir ça ? Ou j'ai encore rien compris.. :.

bonjour
C'est la tension (plage) à fournir à ton capteur sous une Intensité suffisante.

l'arduino n'est pas capable de la fournir , c'est une valeur V (DC =continue) centrée sur de l'alim de type industrielle (valeur standard 24V )

il te faut une alim externe

Aïe aïe.. ok. :disappointed_relieved: Merci pour ta réponse.
Ça ne facilite pas vraiment mon montage..
Grosso modo, ça se passe comment ? J'achète ce genre d'adaptateur
http://www.conrad.fr/ce/fr/product/510824/

je dénude le câble, et ne prend que le fil fournissant le courant ?

edit: vu la gueule du câble dénudé du laser (voir photos précédentes), je vois pas quel type d'alim externe il me faut..

Up..