Termometro a cristalli liquidi LCD, con sensore di temperatura TMP36 e display LCD 16x2 (2 righe x 16 colonne).
/* ------------------ Inizio Programma ------------------------------------------------
* Termometro a cristalli liquidi LCD.
* Elementi utilizzati:
* display LCD 16x2
* potenziometro
* Sensore TMP36
* breadboard
* Il sensore è un TMP36, incluso nello starter kit Ufficiale di Arduino,
* e va collegato al pin analogico A0.
* modificato da Achille De Santis il 04/07/2019
* V2.1
/* ------------------ Inizio Programma ------------------------------------------------
* Termometro a cristalli liquidi LCD.
* Elementi utilizzati:
* display LCD 16x2
* potenziometro
* Sensore TMP36
* breadboard
* Il sensore è un TMP36, incluso nello starter kit Ufficiale di Arduino,
* e va collegato al pin analogico A0.
* modificato da Achille De Santis il 04/07/2019
* V2.1
#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
}
// ---------- 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
> Arduino N° 26
Nessun commento:
Posta un commento