#include <LiquidCrystal.h> // Include la libreria driver LCD
// ---------- I/O --------------
#define tempPin A0 // piedino analogico di ingresso
// -----------------------------
float tempC=0; // Variabile per memorizzare la temperatura in Celsius
float samples[100]; // Array che contiene 100 esempi di calcolo di temperatura media
int i;
float x ;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Inizializzo la libreria con i numeri dei pin dell'interfaccia
void predisponedisplay()
{ lcd.clear(); lcd.setCursor(0,0); } // Cancello LCD
void setup()
{
lcd.begin(16, 2); // Imposto il numero di colonne e righe (rispettivamente) del LCD
predisponedisplay();
lcd.print("Attendere! Sto calcolando la temperatura");
delay(600);
for (int i=0; i<23; i++)
{
delay(400);
lcd.scrollDisplayLeft();
}
}
void loop()
{
tempC=0 ;
for(i=0; i<=99; i++)
{
x= analogRead(tempPin);
samples[i]=(x-100)-((x-100)/2); // (L'equazione è: 0 Celsius=100, 100 Celsius=300)
tempC = tempC + samples[i];
lcd.setCursor(int(i/10),1);
delay(20);
}
tempC = tempC/100;
predisponedisplay(); // predispone la posizione del cursore del LCD (colonna 0, riga 0)
lcd.print("Temperatura"); // visualizza la stringa "Temperatura" sul LCD
lcd.setCursor(0,1); // vai a riga nuova: elimina gli spazi andando a capo (colonna 0, riga 1)
lcd.print("corrente: ");
// scrive la stringa "corrente " (da colonna 0, riga 1)
lcd.setCursor(10,1); // mette il cursore del LCD in posizione (colonna 10, riga 1)
lcd.print(tempC, " C"); // visualizza la temperatura corrente nel LCD
lcd.noCursor();
// tempC = 0; // imposta la temperatura a 0 per ripetere la misura
}
// ------------------------ Fine programma ---------------------------------------------------------------
>
Arduino N° 26