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:
#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();
}
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.
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.
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 , 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...
Scusate, l'Atmega128 è un chip abbastanza diverso rispetto alla famiglia Atmega168/328. Per certi versi è più simile agli Atmega1280/2560. Siamo sicuri che questo Meduino NANO (si può avere un link) è compatibile con il NANO/Atmega328? come fa ad essere un Atmega128?
Pure a me risulta ci sia montato un 328 e quindi compatibile con la uno, 2009, nano.
Comunque sarebbe stato meglio lo avessi detto prima, si sarebbero evitati post inutili e quindi tempo.
Scusate tutti, andavo un po' di fretta e ho fatto confusione: il mio è un Meduino NANO (arduino compatibile) che monta un ATmega 168 e non 128...Scusate ancora...