Bonjour,

j'utilise un capteur connecté à un arduino, je veux utiliser la réponse du capteur pour faire une courbe de calibrage automatique et ensuite utiliser les valeurs du capteur pour calculer mes concentrations.
Voilà comment j'a procédé :

j'ai déclaré un tableau de type float Tab [5][2] et j'ai introduit la réponse du capteur pour des solutions dont la concentration est connue. Ensuite j'ai utilisé une fonction qui lit la valeur du capteur, la compare dans mon tableau et applique une formule pour calculer la valeur rechercher ci-joint la fonction:

tableau de valeur

float Tab[5][2]= {
{
0,1078.02}
,{
1,836.81 }
, {
2,752.39 }
, {
3,683.31 }
,{
4,625.75 }

};


fonction

float calib(float pts[10][2], float input) {
int rr;
float mm;

for (int nn=0; nn < 5; nn++) {

if (input >= pts[nn][0] && input <= pts[nn+1][0]) {

mm = (log(pts[nn][1])-log(pts[nn+1][1]))/(log(pts[nn][0])-log(pts[nn+1][0]));
mm = (log((input/pts[nn][1])))/mm;
mm = mm + log(pts[nn][0]);
mm = pow(10,mm);
rr= mm;

}
}
return(rr);

}

Sachons que la droite que j'obtiens est une droite décroissante, quand je fais appelle à ma fonction elle ne fonctionne pas correctement . j'obtient des valeurs erronées.

la formule utilisée est simplement une formule qui calcule les pentes d'une droite. le log est appliqué pour rendre la réponse du capteur linéaire.
Je n'arrive à décelé le problème je soupçonne le test au début de la fonction ?

Merci de m'aider à résoudre mon problème.