Pages: [1] 2   Go Down
Author Topic: Problema LM35...  (Read 1762 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 32
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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...
Logged

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 336
Posts: 23144
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Stessa alimentazione in entrambi i casi? Stessi collegamenti?
Logged


BZ (I)
Offline Offline
Brattain Member
*****
Karma: 272
Posts: 21940
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 115
Posts: 7265
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Nella formula devi sostituire 5 con 3.3.  smiley-wink
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 272
Posts: 21940
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

3,3 o meglio 1,1?
Ciao Uwe
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 32
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
#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...
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 115
Posts: 7265
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
tempK = (tempC + 273.15);
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 272
Posts: 21940
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Nella formula devi sostituire 5 con 3.3.  smiley-wink
Paolo cosa vuol dire questo suggerimento?
Ciao Uwe
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 115
Posts: 7265
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 336
Posts: 23144
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

è 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
Logged


BZ (I)
Offline Offline
Brattain Member
*****
Karma: 272
Posts: 21940
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 32
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 574
Posts: 12681
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged


Capo d'Orlando
Offline Offline
God Member
*****
Karma: 1
Posts: 560
Electronics & Web Dev, Unix User, Ω LEO, Rock/Deep Music, Tech/Science/Finance addicted, Ski/Snowboard and much more …
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 32
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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...
Logged

Pages: [1] 2   Go Up
Jump to: