Wiki Info
Vuoi reagire a questo messaggio? Crea un account in pochi click o accedi per continuare.
Ricerca Avanzata
Answers
Se necessiti di aiuto, clicca il pulsante "Cerco Aiuto" (disponibile anche per i non iscritti).
Ultimi argomenti attivi
» Comunicazione termine servizio Arduino BT Control
Da Admin Mar Mag 10, 2022 12:55 pm

» Robot aspirapolvere per Alexa: Dreame D9
Da Admin Mar Feb 09, 2021 9:42 am

» Come costruire un robot smart con Arduino
Da Admin Mar Nov 17, 2020 12:15 pm

» TOPPS Trading Cards Match Attax Champsion League/Europa League 2020/21
Da Admin Mar Nov 10, 2020 3:21 pm

» Guida per utilizzare Arduino BT Control v1.2
Da Admin Gio Lug 09, 2020 12:01 pm

» Recensione Umidigi A3 Pro - Smartphone sotto i 100€
Da Admin Gio Apr 04, 2019 12:22 pm

» [Arduino] aiuto programma
Da Glak Mar Mar 12, 2019 9:30 am

» ERRORE NELLA COMPILAZIONE NEXTION
Da papat Mar Feb 26, 2019 7:11 am

» Comandare la Smart TV con Alexa senza broadlink (gratis)
Da Admin Mar Feb 19, 2019 4:31 pm

I postatori più attivi del mese
Nessun utente


Come posso fare la media della temperatura con LM35?

2 partecipanti

Andare in basso

Come posso fare la media della temperatura con LM35? Empty Come posso fare la media della temperatura con LM35?

Messaggio Da Guido Laferrari Dom Lug 10, 2016 12:01 pm

Ciao a tutti
Avendo a disposizione un  display 1602 e un sensore di temperatura LM35 ,ho provato leggere sul display la temperatura di casa confrontandola con alcuni termometri digitali in mio possesso. Tutti i termometri rilevano la stessa temperatura con uno scarto di due decimi di grado,purtroppo il mio LM35 mi fornisce una temperatura superiore di un grado e tre decimi. Dopo essermi informato mi suggeriscono di sommare la lettura del sensore per 10 volte per poi dividere per 10 e poi applicare la formula,vorrei sapere anche il vostro parere. Leggere per 10 volte e dividere per 10 penso si saperlo fare ma non riesco a sommare ogni lettura su una variabile, qualcuno mi può dare una dritta?
Vi ringrazio in anticipo.

Guido

Codice:

/*
 Questo sketch stampa sul display LCD il valore di temperatura misurata dal sensore LM35

  The circuit:
 * LCD        pin 1   GND
 * LCD        pin 2   +5v
 * LCD        pin 3   potenziometro 10k
 * LCD RS     pin 4   pin 12 arduino
 * LCD R/W    pin 5   GND
 * LCD Enable pin 6   pin 11 arduino
 * LCD D4     pin 11  pin 5  arduino
 * LCD D5     pin 12  pin 4  arduino
 * LCD D6     pin 13  pin 3  arduino
 * LCD D7     pin 14  pin 2  arduino
 * LCD        pin 15  220 homm +5v
 * LCD        pin 16  GND
 */
int sensore     = A0;                                // sensore LM35 collegato al pin analogico A0
int sensorValue = 0;                                 // variabile per lettura sensore
float celsius   = 0;                                 // temperatura variabile
float millivolt = 0;                                 // dichiarazione di variabile tensione (float è per i numeri con la virgola)                           

#include <LiquidCrystal.h>                           // Includo il codice della libreria :

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);               // Inizializzo la libreria con i numeri dei pin dell'interfaccia

void setup() {
  lcd.begin(16, 2);                                  // Imposto il numero del display LCD di colonne e righe :
  lcd.print("TEMPERATURA");                          // visualizzo il messaggio TEMPERATURA sul display
}
void loop() {
  sensorValue=analogRead(sensore);                   // lettura valore del sensore LM35 messo sull'ingresso analogico A0
  millivolt=(sensorValue/1024.0)*5000;               // formula per ottenere la tensione di uscita dell'LM35 in millivolts
  celsius = millivolt/10;                            // valore espresso in gradi Celsius (l'out del sensore è 10mv per grado)
  lcd.setCursor(0,1);                                // Imposto il cursore sulla colonna 0  , linea 1
  lcd.print("C.");                                   // stampa sul display C.
  lcd.setCursor(2,1);                                // Imposto il cursore sulla colonna 2  , linea 1
  lcd.print(celsius);                                // stampa sul display il valore di temperatura in gradi Celsius
  delay(1000);
 }




Guido Laferrari
Guido Laferrari
Livello due
Livello due

Messaggi Messaggi : 34
Crediti Crediti : 54
Reputazione Reputazione : 2
Data d'iscrizione Data d'iscrizione : 30.04.16

Torna in alto Andare in basso

Come posso fare la media della temperatura con LM35? Empty Re: Come posso fare la media della temperatura con LM35?

Messaggio Da Admin Dom Lug 10, 2016 4:25 pm

Ciao Guido,

il suggerimento che ti propongono è una buona scelta per avere una migliore precisione. Per fare questa media hai la possibilità di utilizzare gli array oppure una semplice variabile. Quest'ultima scelta a mio parere è la più semplice da comprendere.

Per fare la somma di 10 valori all'interno di una variabile, ti basta fare in questo modo. Ovviamente te lo propongo in modo generale per cercarti di far comprendere il ragionamento:
Codice:
int val=0; //variabile che legge il sensore
float tot=0; //variabile che servirà per la media

void setup() {
pinMode(A0, INPUT); //il sensore lo imposto come INPUT
}

void loop() {
for (int i=0; i<10; i++) { //ripeto x 10 volte..
val=analogRead(A0); //.. la lettura dal sensore

//qui faccio calcoli per la conversione di val in gradi

tot=tot+val; //aggiungo questa lettura al totale
}

tot=tot/10; //alla fine delle 10 letture, faccio la media
}

Facciamo un test:
Al primo ciclo del loop, si entra nel "for" e nel primo ciclo del "for" si legge dal sensore "5", quindi "val" varrà 5. Aggiungo nel totale il valore di "val", quindi tot=0+5 e "tot" varrà anche lui "5". Nel secondo ciclo del "for", viene letto "6" quindi "val" varrà 6. Ora si aggiunge questo valore in "tot" quindi tot=5+6 e "tot" varrà 11. Alla fine del ciclo for farà la media di "tot" facendo, come indicato "tot=tot/10;". Trattandosi di una variabile float, ci restituirà un valore con la virgola.

Spero di essere stato chiaro. Fammi sapere Very Happy

Saluti Ciao!
Admin
Admin
♔ Amministratore

Messaggi Messaggi : 4370
Crediti Crediti : 12173
Reputazione Reputazione : 187
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 25

https://wikiinfo.forumattivo.it

Torna in alto Andare in basso

Come posso fare la media della temperatura con LM35? Empty Re: Come posso fare la media della temperatura con LM35?

Messaggio Da Guido Laferrari Dom Lug 10, 2016 5:55 pm

Ciao , il test che hai fatto è chiarissimo e l'ho capito , ho solo una piccolo chiarimento: nel "for" ho visto che non hai dichiarato la variabile " int i " è giusto così?
Guido
Guido Laferrari
Guido Laferrari
Livello due
Livello due

Messaggi Messaggi : 34
Crediti Crediti : 54
Reputazione Reputazione : 2
Data d'iscrizione Data d'iscrizione : 30.04.16

Torna in alto Andare in basso

Come posso fare la media della temperatura con LM35? Empty Re: Come posso fare la media della temperatura con LM35?

Messaggio Da Admin Dom Lug 10, 2016 7:25 pm

Scritto in quel modo è dichiarato mentre se avessi messo semplicemente "i=0" ti avrebbe dato errore (fai un piccolo test Wink ). Mettendo invece "int i=0" o sopra o in mezzo al codice, è indifferente Ciao!
Admin
Admin
♔ Amministratore

Messaggi Messaggi : 4370
Crediti Crediti : 12173
Reputazione Reputazione : 187
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 25

https://wikiinfo.forumattivo.it

Torna in alto Andare in basso

Come posso fare la media della temperatura con LM35? Empty Re: Come posso fare la media della temperatura con LM35?

Messaggio Da Guido Laferrari Dom Lug 10, 2016 9:17 pm

Grazie mille , durante la elaborazione del codice mi sono domandato: alla fine del ciclo "for" fa la media di "tot", mà quando si resettano le variabili "tot" e "val" per ricominciare da zero il ciclo "for" ? si resettano in automatico? grazie ancora.
Guido
Guido Laferrari
Guido Laferrari
Livello due
Livello due

Messaggi Messaggi : 34
Crediti Crediti : 54
Reputazione Reputazione : 2
Data d'iscrizione Data d'iscrizione : 30.04.16

Torna in alto Andare in basso

Come posso fare la media della temperatura con LM35? Empty Re: Come posso fare la media della temperatura con LM35?

Messaggio Da Admin Lun Lug 11, 2016 12:04 am

No, non si resettano da soli. In realtà ti interessa solo che "tot" si resetti dopo la media. Razz
Penso ti basti impostare "tot=0;" dopo che hai stampato sul display LCD (o Serial Monitor) il valore della temperatura Very Happy.

Admin
Admin
♔ Amministratore

Messaggi Messaggi : 4370
Crediti Crediti : 12173
Reputazione Reputazione : 187
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 25

https://wikiinfo.forumattivo.it

Torna in alto Andare in basso

Come posso fare la media della temperatura con LM35? Empty Re: Come posso fare la media della temperatura con LM35?

Messaggio Da Guido Laferrari Lun Lug 11, 2016 4:58 pm

OK questo è il mio codice definitivo, dimmi cosa ne pensi. grazie ancora.

Codice:

/*
 Questo sketch stampa sul display LCD il valore di temperatura misurata dal sensore LM35

  The circuit:
 * LCD        pin 1   GND
 * LCD        pin 2   +5v
 * LCD        pin 3   potenziometro 10k
 * LCD RS     pin 4   pin 12 arduino
 * LCD R/W    pin 5   GND
 * LCD Enable pin 6   pin 11 arduino
 * LCD D4     pin 11  pin 5  arduino
 * LCD D5     pin 12  pin 4  arduino
 * LCD D6     pin 13  pin 3  arduino
 * LCD D7     pin 14  pin 2  arduino
 * LCD        pin 15  220 homm +5v
 * LCD        pin 16  GND
 */
int sensore       = A0;                              // sensore LM35 collegato al pin analogico A0
int sensorValue   = 0;                               // variabile per lettura sensore
float totalValue  = 0;                               // totale di 10 letture del sensore
float celsius     = 0;                               // temperatura celsius
float millivolt   = 0;                               // dichiarazione di variabile tensione (float è per i numeri con la virgola)                           

#include <LiquidCrystal.h>                           // Includo il codice della libreria :

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);               // Inizializzo la libreria con i numeri dei pin dell'interfaccia

void setup() {
  lcd.begin(16, 2);                                  // Imposto il numero del display LCD di colonne e righe :
  lcd.print("TEMPERATURA");                          // visualizzo il messaggio TEMPERATURA sul display
}
void loop() {
  for (int i = 0;i < 10 ; i ++){
  sensorValue=analogRead(sensore);                   // lettura valore del sensore LM35 messo sull'ingresso analogico A0 
  totalValue = totalValue + sensorValue;             // sommo per 10 volte la letura del sensore
  }
  totalValue = totalValue / 10;                      // divido per 10 
  millivolt=(totalValue/1024.0)*5000;                // formula per ottenere la tensione di uscita dell'LM35 in millivolts
  celsius = millivolt/10;                            // valore espresso in gradi Celsius (l'out del sensore è 10mv per grado)
  lcd.setCursor(0,1);                                // Imposto il cursore sulla colonna 0  , linea 1
  lcd.print("C.");                                   // stampa sul display C.
  lcd.setCursor(2,1);                                // Imposto il cursore sulla colonna 2  , linea 1
  lcd.print(celsius);                                // stampa sul display il valore di temperatura in gradi Celsius
  delay(100);                                        // tempo ciclo
  totalValue = 0;                                    // resetto la variabile
  }



Guido Laferrari
Guido Laferrari
Livello due
Livello due

Messaggi Messaggi : 34
Crediti Crediti : 54
Reputazione Reputazione : 2
Data d'iscrizione Data d'iscrizione : 30.04.16

Torna in alto Andare in basso

Come posso fare la media della temperatura con LM35? Empty Re: Come posso fare la media della temperatura con LM35?

Messaggio Da Admin Lun Lug 11, 2016 7:35 pm

Eccellente cheers
Admin
Admin
♔ Amministratore

Messaggi Messaggi : 4370
Crediti Crediti : 12173
Reputazione Reputazione : 187
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 25

https://wikiinfo.forumattivo.it

Torna in alto Andare in basso

Come posso fare la media della temperatura con LM35? Empty Re: Come posso fare la media della temperatura con LM35?

Messaggio Da Contenuto sponsorizzato


Contenuto sponsorizzato


Torna in alto Andare in basso

Torna in alto

- Argomenti simili

 
Permessi in questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum.