2020-04-09 19:21:54
Bon je me suis repenché sur le code vu que la mise en place de l'automate est pas pour tout de suite, du coup avec les dernières mesures des
capteurs de pression c'est bueno mais le problème c'est toujours le calcul de température ...
La courbe n'est pas du tout linéaire du coup ça me sort pas la bonne température, genre ça avec une courbe de tendance en mode
polynominale degré 3, qui me sort la formule y = 0,0823x3 - 1,956x2 + 19,627x - 43,101
courbe_temp_pression.PNG (Taille : 35.36 Ko / Téléchargements : 2)
Du coup j'ai adapté un code que j'ai trouvé sur le forum Arduino mais ça fait nawak ...
Ca devrait me sortir le même genre de valeurs théoriquement mais à la place j'ai :
20:19:09.440 -> -26.07 ( température mapf )
20:19:09.440 -> 101.00 ( température corrigée )
Et quand tu demande à google de calculer ... : -46400.2809057
J'ai raté un truc ou je suis juste débile ?
capteurs de pression c'est bueno mais le problème c'est toujours le calcul de température ...
La courbe n'est pas du tout linéaire du coup ça me sort pas la bonne température, genre ça avec une courbe de tendance en mode
polynominale degré 3, qui me sort la formule y = 0,0823x3 - 1,956x2 + 19,627x - 43,101
courbe_temp_pression.PNG (Taille : 35.36 Ko / Téléchargements : 2)
Du coup j'ai adapté un code que j'ai trouvé sur le forum Arduino mais ça fait nawak ...
Code :
float correction_BP(float x)
{
return (0.0823*x*x*x) - (1.956*x*x) + (19.627*x) - 43,101;
}
float correction_HP(float x)
{
return -0.2346*x*x*x*x + 4.5717*x*x*x - 33.2*x*x + 117.78*x - 114.78;
}
double mapf(double val, double in_min, double in_max, double out_min, double out_max) {
return (val - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
void loop() {
// Récupération des températures
sensors.requestTemperatures();
// Récupération pression BP + Calcul relation pression/température
//Capteur_BP = analogRead(Pin_Capteur_BP);
Capteur_BP = 105; // 380
Pression_BP = mapf(Capteur_BP, 105, 671, 0.0, 9.0); // Tension <=> KPA
Temperature_BP = mapf(Capteur_BP, 105, 671, -26.07, 39.44); // Tension <=> Température °C
Serial.println(Temperature_BP);
float Temperature_BP_cor = correction_BP(Temperature_BP);
Serial.println(Temperature_BP_cor);
Ca devrait me sortir le même genre de valeurs théoriquement mais à la place j'ai :
20:19:09.440 -> -26.07 ( température mapf )
20:19:09.440 -> 101.00 ( température corrigée )
Et quand tu demande à google de calculer ... : -46400.2809057
J'ai raté un truc ou je suis juste débile ?
T'as un problème, t'veux un ban ?