Capteur analogique non lineaire

Bonjour,
Je dispose '(un capteur infrarouge de distance (entre 20 et 150 cm) . Celui ci delivre une tension analogique non linéaire Est il possible d’appliquer une courbe de correction sur l’entrée analogique de l’IPX pour avoir une mesure de distance exacte ?

Merci pour vos avis

Laurent

Bonjour,
nous avons de plus de renseignement pour vous aider notamment le type d’IPX800 V" ou V4 et la tension délivrée par le capteur ainsi que sa courbe ou un tableau des données.
Cdt

Bonjour,
en supposant que vous avez une IPX800 V4 :

vous pourriez créer un Widget HTML avec du JavaScript (il faudra une Source de Données)
puis y définir votre propre tableau de correspondance tension :: Distance
Ainsi votre script rechercherait la valeur lue dans ce tableau et retournerait la distance correspondant à la valeur la plus proche.
Plus vous mettrez de valeurs dans votre tableau, plus la précision sera grande.
cdt

Bonjour,
si vous avez un peu de courage, vous pouvez chercher la formule qui va vous permettre de trouver les correspondances entre x et y pour y=f(x) . Si vous ne savez pas faire, envoyer votre tableau et on essaiera de vous aider.
Cdt

Pour les matheux :smiley:

votre courbe donnée par le fabricant ressemble certainement à une parabole, avec la tension en fonction de la distance.

image

Pour la compréhension, la première étape consiste à redessiner la parabole avec la Distance en fonction de la Tension (étape facultative)

image

Il faut alors relever 3 points de la courbe M N P et leurs coordonnées respectives
M (T1 ; D1)
N (T2 ; D2)
P (T3 ; D3)
Attention si vous n’avez pas redessiné votre courbe, pensez à inverser abcisse et ordonnée :wink:

Une parabole ayant une équation du type aX2 + bX + c
nous obtiendrions un système à 3 équations du second degré en remplaçant X par T1 T2 et T3
image

Voilà, il faut résoudre le système et déterminer les valeurs a, b, c :smiley:

Résolution (cliquez pour ouvrir)

image

Bon, je ne veux pas décevoir les moins matheux ou les plus pressés d’entre vous :wink:
Il existe des outils permettant de déterminer l’équation d’une parabole à partir des coordonnées de 3 de ses points. (belle coïncidence , non ?)
Dans notre cas, il suffira alors de renseigner les coordonnées de nos 3 points M N et P

http://fsincere.free.fr/equation_parabole/equation_parabole.html

Utilisation de l'outil (cliquez pour ouvrir)

image

Dans le script du Widget, il suffit de lire la tension aux bornes de l’entrée analogique (avec la formule propre à l’IPX800 V4 : T= X * 0.00323), puis d’appliquer la formule que nous avons déterminée plus haut :
D=aT2 + bT + c

Même si la courbe donnée par le fabricant n’est pas une parabole parfaite, l’application de cette méthode donnera entière satisfaction.

Je ferai surement un Wiki à ce sujet.

EDIT 03/11/2017: pour l’instant, j’ai fait un tutoriel avec utilisation d’Excel. voir le lien ci-dessous.
cdt

11 « J'aime »

Je dis Respect !!:slight_smile:

Bonjour fgtoul,
moi qui attendait le tableau pour me mettre au travail :joy:, je dis aussi respect. :grin: je me console en me disant que pendant que tu rédigeais, je nettoyais mes parterres.:wink:
Cdt.

3 « J'aime »

Si un jour, j’aurais cru que mes cours de math pouvaient servir à l’IPX…

1 « J'aime »

application à un capteur 20 à 150 cm :

@Lbveao : je pense que vous avez ce type de courbe (ci-dessous) ?

courbe du fabricant (Tension de sortie en fonction de la distance):
image
on pourrait déterminer une parabole se superposant à la courbe pour D compris dans l’intervalle [20 ; 150]
image

Relevé de 3 points sur la courbe du fabricant (comme je cherche D en fonction de T, j’inverse abcisse et ordonnée. Je note les points sous la forme Q(Tension ; Distance) :
M ( 2.5 ; 20)
N ( 1.5 ; 40)
P ( 0.5 ; 140)

L’outil de détermination d’équation renvoie
D = 40 T ² -180 T + 220

Il ne reste plus qu’à écrire le javascript d’un Widget qui va appliquer cette formule à une entrée analogique de type « Volt » sur laquelle sera connecté le détecteur IR.
Vu qu’on ne dépasse pas 3.3V dans notre exemple, pas besoin de pont diviseur.

Il est à noter que si l'objet se rapproche à moins de 20 cm du capteur,
il y aura calcul d'une distance erronée. 
Exemple, si nous approchons l'objet à 10 cm, la formule renvoie
D=(40 * 2.3²) - (180 * 2.3) + 220
D=17.6 cm

D’autre part, étant donné que la distance se calcule en fonction du carré de la tension, la moindre imprécision dans le relevé des 3 points prend vite des proportions conséquentes.
Je vous conseille d’agrandir les graphiques constructeurs et de travailler sur du papier millimétré. La règle de 3 sera utilisée pour déterminer des valeurs entre 2 graduations d’axe.

cdt

4 « J'aime »

A l’usage, il n’est pas vraiment aisé de faire superposer une parabole à une courbe quelconque.
Il faut faire plusieurs relevés de points, déterminer l’équation correspondante et tracer la fonction afin de vérifier le résultat, et recommencer avec 3 autres points si non satisfaisant. Ça reste une démarche faisable mais assez longue.
Il faudra forcément accepter des marges d’erreurs.

l’équation donnée ci-dessus donne de mauvais résultats au delà de 110 cm.

Il reste pour plus de fiabilité, la solution du tableau de valeurs, avec un script comme évoqué dans les messages plus haut

Merci a tous pour ces réponses très fournies.
Effectivement c’est le capteur en ma possession. Je voudrait l’utiliser pour mesurer le niveau d’eau dans des cuves, La précision n’est pas primordiale.
Je reviendrais vers vous pour les resultats.

Encore merci

Laurent

Bonjour,

si c’est pour une utilisation dans une cuve, je crains que les rebonds des rayons infrarouges sur les parois ne perturbent la lecture. Ces capteurs ont en général un faisceau assez large, et des contraintes de pose (hauteur, angle).
Il existe peut-être des solutions plus adaptées pour cette fonction, avez-vous parcouru ce sujet ?

les formules de votre capteur sont
image

image

j’ai fait un tuto ici.

2 « J'aime »

Bonjour,

j’ai rédigé le WIKI qui reprend ce tuto.

Ultérieurement, je le complèterai avec le paramétrage de l’IPX800 V4 pour ce capteur SHARP.

http://gce-electronics.com/wiki/index.php?title=Déterminer_l'équation_d'un_Capteur_analogique

cdt

EDIT : Nouveau lien
https://gce.ovh/wiki/index.php?title=Déterminer_l'équation_d'un_Capteur_analogique

3 « J'aime »

@Fred60 : Plus qu’à trouver à quoi pourrait bien servir … un compas !
La flûte aussi me parait bien inutile mais c’est un autre sujet :smile:

2 « J'aime »

bonjour,
J’ai ajouté l’utilisation du capteur Sharp vu plus haut dans le WIKI. Vous y trouverez également le code javascript.

http://gce-electronics.com/wiki/index.php?title=Le_capteur_de_distance_Sharp_GP2Y0A

SharpGP2Y0A

Nouveau lien suite à la panne OVH :
Le capteur de distance Sharp GP2Y0A — GCE Electronics
cdt

3 « J'aime »

Merci beaucoup pour ce travail impeccable.

Pour prolonger la durée de vie du capteur, on pourrait faire passer son fil d’alimentation par une sortie de l’IPX.
Ainsi, le capteur ne serait alimenté que sur demande, pour faire une mesure. Il est également possible d’ajouter un petit poussoir au plus près, pour une commande locale, et une EV, pour une commande distante (dashboard).

Super boulot ! Y a plus de limite avec cette machine. Hormis l’imagination et de la matière grise…

Tuto terminé avec l’ajout de la possibilité d’activation permanente/temporaire ou désactivation du capteur.

image

2 « J'aime »