Il valore letto in byte (0 – 1023) può essere trasformato in qualunque valore decimale.
Supponiamo ora che il nostro potenziometro sia un sensore di temperatura con un range che va da 0°C a 100 °C, ovvero che ha in uscita un valore di 0V quando la temperatura è di 0°C e di 5V quando la temperatura è di 100°C. Essendo un dispositvo lineare quando la temperatura sarà di 50°C avrà in uscita una tensione di 2.5V e se di 25 °C una tensione di 1.25V.
Possiamo di già prepare una tabella ad hoc:
Il rapporto fra la temperatuira in gradi Celsius ed il valore di OUT è di 0.097752 .
long ValTemp = 0 ‘ valore da 0 a 1023
long ValTempC = ValTemp * 0.097752 gradi Celsius
e con le apposite formule ottenere altre scale di temperatura.
ValTemp * 0.097752 + 273.15 gradi Kelvin
ValTemp * 0.097752 * 1,8 + 32 gradi Fahrenait
ValTemp * 0.097752 * 0.8 gradi Reamur
Lo sketch.
#define SensoreTemp A0 long ValTemp = 0; void setup() { pinMode(SensoreTemp, INPUT); Serial.begin(9600); } void loop() { ValTemp=analogRead(SensoreTemp); Serial.print("Gradi Celsius "); Serial.println(ValTemp * 0.09752); delay(2000); Serial.print("Gradi Kelvin "); Serial.println(ValTemp * 0.09752 + 273.15); delay(2000); Serial.print("Gradi Fahrenait "); Serial.println(ValTemp * 0.09752 *1.8 + 32); delay(2000); Serial.print("Gradi Reamur "); Serial.println(ValTemp * 0.09752 * 0.8); delay(2000); Serial.print("Gradi Rankine "); Serial.println(ValTemp * 0.09752 * 1.8 + 491.67); delay(2000); Serial.print("Gradi Newton "); Serial.println(ValTemp * 0.09752 * 0.33); delay(2000); }
Conclusioni :
Il valore analogico letto va opportunatamente elaborato.
Nessun commento:
Posta un commento