Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. //programma interamente creato e commentato da Alessandro Riva per Arduino
  2. // www.alessandro-riva-elettronica.blogspot.com
  3. int temperaturaMassima = 27;
  4. const int NRLETTURE = 12; // numero letture
  5. const int SensorPin = A0; //variabile lettura sensore
  6. float valori[NRLETTURE]; //array con i valori
  7. int T_campionamento = 80; // tempo campionamento
  8. float sommaGradi; //variabile somma
  9. float mediaGradi; //variabile media
  10. #include <LiquidCrystal.h> // includo la libreria del display lcd
  11.  
  12. LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //pin display LCD
  13.  
  14. void setup() {
  15.   // set up the LCD's number of columns and rows:
  16.   lcd.begin(16, 2);
  17.   Serial.begin(9600); //inizializzo la seriale
  18.   lcd.print("Creato da:");
  19.   lcd.setCursor(0,2);
  20.   lcd.print("Alessandro Riva");
  21.   delay(3000);
  22.   pinMode(13,OUTPUT);
  23.   digitalWrite(13,LOW);
  24.  
  25.  
  26. }
  27.  
  28. void loop() {
  29.  
  30.   for ( int i = 0; i<=NRLETTURE;i++)
  31.   {
  32.     int sensorVal = analogRead(SensorPin);
  33.  
  34.   float voltage = (sensorVal /1024.0) * 5.0;
  35.   float temperature = (voltage - .5) * 100;
  36.     valori[i] = temperature;
  37.     delay(T_campionamento);
  38.   }
  39.    sommaGradi = 0; // devi essere sicuro che il primo valore sia zero, altrimenti poi sballa tutto
  40.   for(int i=0; i<NRLETTURE; i++) { //ciclo che somma i valori dell'array
  41.     sommaGradi = sommaGradi + valori[i];
  42.   }
  43.      mediaGradi = sommaGradi / NRLETTURE; //divido la somma dei valori per il loro numero (media)
  44.       lcd.clear(); //pulisco lo schermo
  45.   Serial.print ("Gradi: "); //scrivo sul display la parola "gradi"
  46.   Serial.println(mediaGradi); //scrivo la temperatura sulla seriale
  47.   lcd.print("Temperatura:"); //scrivo sul display la parola "temperatura"
  48.   lcd.setCursor(0,2); //sposto il cursore sulla seconda linea
  49.   lcd.print(mediaGradi); //scrivo la temperatura
  50.   lcd.print(" Gradi"); // scrivo sul display la parola "gradi"
  51. if (mediaGradi >temperaturaMassima)
  52. {
  53.   digitalWrite(13,HIGH);
  54.   Serial.println("Temperatura raggiunta!!!!");
  55. }
  56.   else {
  57.    digitalWrite(13,LOW);
  58. }
  59.  
  60.   delay(500);
  61. }