domenica 4 novembre 2012

Elaborazione di un valore analogico


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