mercoledì 27 novembre 2019

Arduino N° 25 - Termometro LCD














Arduino N°  24

 Achille De Santis

Arduino N° 26




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

#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

Nessun commento:

Posta un commento