Go Down

Topic: Problema LM35... (Read 1 time) previous topic - next topic

inv3rse

Ciao a tutti, ho un problema con una sonda lm35... Se collego l'lm35 all'arduino UNO la temperatura seganatami è 18°C (ed è la temperatura giusta)... Perchè se invece l'lm35 la collego all'arduino NANO come risultato ho 29°C?...Grazie mille a tutti...

leo72

Stessa alimentazione in entrambi i casi? Stessi collegamenti?

uwefed

Se usi come riferimento dei ADC la tensione di alimentazione cambia il risultato in funzione della tensione di aliemtnatzione.
Se usi i 1,1V riferimento interno deve essere uguale.
http://arduino.cc/en/Reference/AnalogReference

Ciao Uwe

PaoloP

Nella formula devi sostituire 5 con 3.3.  ;)

uwefed

3,3 o meglio 1,1?
Ciao Uwe

inv3rse

Ciao, l'alimentazione e i collegamenti sono gli stessi in entrambi i casi... Anche mettendo 3.3 al posto di 5 ottengo sull'arduino UNO 16°C mentre sull'arduino NANO 18°C... Il codice che uso è questo:

Code: [Select]
#include <LiquidCrystal.h> //include la libreria per il funzionamento dell'lcd

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //settia le uscite di arduino per lcd
float tempC, tempK;      //dichiarazione di variabile
int tempPin = 0;  //inizializzazione del pin di Arduino

void setup() {

  lcd.begin(16, 2); // setta del numero delle colonne e delle righe
 
}

void loop() {
 
      lcd.setCursor(0, 0);
     
   tempC = analogRead(tempPin);           
   tempC = (5.0 * tempC * 100.0)/1024.0;
tempK = (tempC + 273);

  lcd.print(tempC);
  lcd.print(" C ");
    lcd.print(tempK);
  lcd.print(" K");

  delay(1000);

  lcd.clear();

}


Grazie mille...

PaoloP

Sia la UNO che la NANO usano il 328 a 5V.  :smiley-roll-blue:
Quindi con lo stesso codice non dovresti avere differenze nella lettura.

Inoltre:
Code: [Select]
tempK = (tempC + 273.15);

uwefed


Nella formula devi sostituire 5 con 3.3.  ;)

Paolo cosa vuol dire questo suggerimento?
Ciao Uwe

PaoloP

Inizialmente pensavo che il NANO fosse alimentato a 3.3V e fosse quella la tensione di riferimento dell'ADC. Poi ho visto che invece è un normale 328 a 5V. Quindi non ci dovrebbero essere differenze nel codice e nelle misure tra UNO e NANO.

leo72


è un normale 328 a 5V. Quindi non ci dovrebbero essere differenze nel codice e nelle misure tra UNO e NANO.

E' così, Difatti è strano per questo

uwefed

Visto che il LM35 da 10mV per °C basta un campo di misura fino a 1,1V.
È meglio attivare il riferimento interno da 1,1V e si é indipendente da delle instabilitá della tensione di alimentazione.

Ciao Uwe

inv3rse

Il fatto è che però il mio NANO non ha un 328 ma un atmega 128...Come posso fare?

Michele Menniti


Il fatto è che però il mio NANO non ha un 328 ma un atmega 128...Come posso fare?

un 128? non ne avevo mai sentito parlare  :smiley-roll-sweat:, allora prova a guardare il data-sheet e cerca di capire se l'ADC non ha una risoluzione diversa, nel qual caso ovviamente dovrai adeguare il firmware.
Comunque fai male ad ignorare il suggerimento che Uwe ti ha dato per ben due volte: se attivi il riferimento interno a 1,1V, che è molto preciso, le letture non saranno più influenzate dalle differenze di tensione delle alimentazioni; probabilmente (sempre che 128 e 328 operino alla stesso modo) le differenze stanno proprio nelle diverse alimentazioni che arrivano ai due micro.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

anerDev

Scusate, il Nano non lavora a 5 V ?  :smiley-roll:

Comunque ho trovato questa guida: http://www.matbra.com/en/2012/09/23/sensor-de-temperatura-com-arduino-e-lm35-arduino-lm35/

Quote
I do with Arduino UNO/Nano,


dice l'autore
Andrea
<a href="http://anerdev.net">anerDev.net</a>

inv3rse



Il fatto è che però il mio NANO non ha un 328 ma un atmega 128...Come posso fare?

un 128? non ne avevo mai sentito parlare  :smiley-roll-sweat:, allora prova a guardare il data-sheet e cerca di capire se l'ADC non ha una risoluzione diversa, nel qual caso ovviamente dovrai adeguare il firmware.
Comunque fai male ad ignorare il suggerimento che Uwe ti ha dato per ben due volte: se attivi il riferimento interno a 1,1V, che è molto preciso, le letture non saranno più influenzate dalle differenze di tensione delle alimentazioni; probabilmente (sempre che 128 e 328 operino alla stesso modo) le differenze stanno proprio nelle diverse alimentazioni che arrivano ai due micro.


Ciao, hai ragione, per togliere ogni dubbio e l'eventualità di tutti i possibili errori, seguirò il consiglio di Uwe; credo proprio sia la soluzione migliore...

Go Up