Salve, mi servirebbe un aiuto in questo programma:
Sivuole linearizzare un sensore di temperatura, che fornisce un'uscita tra0 e 100 mV, mediante una spezzata. Sperimentalmente sono statitrovati
iseguenti punti di ginocchio della spezzata: (20 mV, 15 gradi),
(55mV, 27 gradi). Inoltre a 0 mV si fa corrispondere 0 gradi e a 100 mv
35gradi.
Realizzareun programma che permetta di introdurre da tastiera un valore
ditensione fornito dal sensore, calcoli e stampi il valore ditemperatura
espressoin gradi.
io ho fatto così:
codice:
#include <stdio.h>
int main()
{
float tensione, temperatura;
printf("Inserisci valore di tensione da 0 a 100 mV ");
scanf("%f", &tensione);
if (tensione <= 20){
temperatura=((15/20)*tensione);
printf("Temperatura= %f", temperatura);
}
else if (20<tensione<=55){
temperatura= ((12/35)*tensione +(289/35));
printf("temperatura= %f", temperatura);
}
else if (55<tensione<=100){
temperatura=((8/45)*tensione + (775/45));
printf("temperatura= %f", temperatura);
}
return 0;
}
Nei 3 casi ho calcolato le 3 diverse rette passanti per i due punti(che nel primo tratto sono (0,0) e (20,15), nel secondo (20,15) e (55,27) e nel terzo (55,27) e (100, 35), dove sulle ascisse vi è la tensione e sulle ordinate la temperatura.
Però non funge. qualcuno sa dirmi dove sbaglio? Grazie mille.