Étape 6 :
/*
12 septembre 2013
25 octobre 2012
Basé sur un projet de DJ Mentzik.
Amélioré et modifié par la CME et citin.
Des pièces justificatives peuvent être trouvé à
Utilisation et modife au besoin.
Affiche le courant, 8sec moyenne, Max et Min température.
Pour connecter votre écran LCD à votre Arduino, connecter les points suivants :
LCD 6 broche Broche numérique 12
LCD 4 broche à broche numérique 11
Écran LCD Pin 11 à la broche numérique 5
Écran LCD Pin 12 à la borne numérique 4
13 broches LCD à la broche numérique 3
14 Pin LCD à la broche numérique 2
LCD PIN 15 à POS
LCD 16 PIN à GND
*/
#include < LiquidCrystal.h > / / inclure la bibliothèque de pilote LCD
déclarer des variables
flotteur NC = 0 ; Variable pour la tenue de temp Celsius (flottant pour une précision décimale)
flotteur tempf = 0 ; variable pour la tenue de Fareghneit temp
int tempPin = 0 ; Déclarer l’entrée analogique est 0 (A0) de la carte Arduino.
échantillons de flotteur [8] ; Tableau pour contenir 8 échantillons pour le calcul de la température moyenne
maxi de flotteur = 0, mini = 100 ; Variables de température Max/Min avec des valeurs initiales. LM35 en configuration simple ne mesure que Temp supérieur à 0.
int i ;
Innovente lcd (12, 11, 5, 4, 3, 2) ; initialiser la bibliothèque avec les numéros des broches interface
void setup()
{
Serial.Begin(9600) ; Ouvre le port série, établit le taux de données à 9600 bits/s
LCD.Begin (16, 2) ; Mis en place nombre de l’écran LCD de colonnes et de lignes :
lcd.setCursor (2, 0) ; Définir la position du curseur LCD (colonne, ligne)
LCD.Print ("Waynes World") ; Imprimer un texte à l’écran LCD
lcd.setCursor (3, 1) ; Définir la position du curseur LCD (colonne, ligne)
LCD.Print("Thermometer") ; Imprimer un texte à l’écran LCD
Delay(5000) ; attendre 500ms / / retard pour lire le texte
LCD.Clear() ; Désactivez l’affichage à cristaux liquides / / efface l’écran
lcd.setCursor (2, 0) ; Définir la position du curseur LCD (colonne, ligne)
LCD.Print ("LCD affiché") ; Imprimer un texte à l’écran LCD
lcd.setCursor (1, 1) ; Définir la position du curseur LCD (colonne, ligne)
LCD.Print ("moyenne Temp") ; Imprimer un texte à l’écran LCD
Delay(5000) ; Retard pour lire le texte
LCD.Clear() ; Clear LCD
}
void loop()
{
Serial.println("") ; Ligne vide pour l’espacement dans le moniteur de la série
Serial.println ("vous regardez un projet construit par WWC.") ; Imprimez du texte Serial monitor
Serial.Print ("Feal libre d’utilisation et modife suff.") ;
Serial.println("") ; Ligne vide pour l’espacement dans le moniteur de la série
Serial.Print ("données brutes LM35:") ; Imprimez du texte Serial monitor
Serial.println(analogRead(tempPin)) ; Affiche sur le moniteur de la série la valeur échantillonnée avant la conversion à la lecture de la température réelle
Début des calculs pour la boucle.
pour (i = 0; j’ai < = 7; i ++) {/ / gets 8 échantillons de température
les échantillons [i] = (4,4 * analogRead(tempPin) * 26) / 1024.0 ; mathématiques de conversion de l’échantillon tmp36GZ résultat de température et magasins lisible au tableau des échantillons.
Serial.println(Samples[i]) ; Imprimer les échantillons [i] à sertiual monitor
(Note de LCD: la ligne 1 est la seconde ligne, puisque le décompte commence par 0) :
lcd.setCursor (0, 0) ; Définir la position du curseur LCD (colonne 0, ligne 0)
LCD.Print ("Temp actuel est:") ; Imprimer un texte à l’écran LCD
lcd.setCursor (1, 1) ; Définir la position du curseur LCD (colonne 1, ligne 1)
LCD.Print ("c") ; Imprimer un texte à l’écran LCD
lcd.setCursor (12, 1) ; Définir la position du curseur LCD (colonne 12, ligne 1)
LCD.Print(Samples[i]) ; imprimer l’échantillon actuel de Temp pour LCD
NC = NC + échantillons [i] ; faire l’addition pour la température moyenne
Delay(800) ; attendre 800ms
} // END of FOR loop
Serial.println("") ; Ligne vide pour l’espacement dans le moniteur de la série
Serial.println("") ; Ligne vide pour l’espacement dans le moniteur de la série
NC = NC/8.0 ; calculer l’averare de 8 échantillons en Celcius
tempf = (NC * 9) / 5 + 32 ; convertit en degrés fahrenheit
if(tempC > maxi) {maxi = NC;} régler la température max
if(tempC < mini) {mini = NC;} température min Set
Envoyer les résultats vers Serial Monitor
Serial.println ("nouvelle mesure:") ;
Serial.Print ("température moyenne en Celcius est") ; Imprimez du texte Serial monitor
Serial.println (NC); //send les données de l’ordinateur / / envoyer les données à l’ordinateur
Serial.Print ("température moyenne en Farenait est") ; Imprimez du texte Serial monitor
Serial.println (tempf); //send les données de l’ordinateur / / envoyer les données à l’ordinateur
Serial.Print ("MAX température en Celsius est") ; Imprimez du texte Serial monitor
Serial.println (maxi); //send les données de l’ordinateur / / envoyer les données à l’ordinateur
Serial.Print ("MIN température en Celsius est") ; Imprimez du texte Serial monitor
Serial.println (mini); //send les données de l’ordinateur / / envoyer les données à l’ordinateur
Envoyer les résultats à l’écran LCD.
lcd.setCursor (0, 1) ; Définir la position du curseur LCD (colonne 0, ligne 1)
LCD.Print (« Fahrenheit ») ; Imprimer un texte à l’écran LCD
lcd.setCursor (12, 1) ; Définir la position du curseur LCD (colonne 12, ligne 1)
LCD.Print(tempf) ; Envoyer les données à l’écran LCD
Delay(6000) ; Attendre 3 secondes pour afficher la Fahrenheit temp et 3 secondes pour afficher les résultats pour LCD écran befor à partir de la boucle encore = 6 secondes.
NC = 0 ; La valeur NC 0 alors les calculs peuvent être refaits
}