6 – Implementazione in Arduino: termometro
Il seguente sketch non fa altro che servirsi della funzione generata precedentemente per convertire la tensione campionata, proveniente dall’uscita del partitore di tensione, in temperatura e stamparla sul monitor seriale ogni tre secondi.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
//Dichiarazione delle variabili float val; float temp; float ntc(float x) { float y; if(x<185.0) y=(-0.317)*x + (138.645); if(x>=185.0 && x<295.0) y=(-0.091)*x + (96.845); if(x>=295.0 && x<375.0) y=(-0.125)*x + (106.875); if(x>=375.0 && x<470.0) y=(-0.105)*x + (99.35); if(x>=470.0 && x<575.0) y=(-0.095)*x + (94.625); if(x>=575.0 && x<670.0) y=(-0.105)*x + (100.35); if(x>=670.0 && x<770.0) y=(-0.1)*x + (97.0); if(x>=770.0 && x<853.0) y=(-0.12)*x + (112.36); if(x>=853.0) y=(-0.17)*x + (155.0); return y; } void setup() { Serial.begin(9600); //Inizializza comunicazione seriale } void loop() { val = analogRead(A0); //leggi e campiona la tensione in ingresso temp = ntc(val); //converti la tensione campionata in temperatura e memorizzala in "temp" Serial.print("Temperatura = "); Serial.println(temp); delay(3000); } |
17,917 total views, 1 views today