loading

ENGLISH VERSION HERE

Dans ce programme nous allons voir comment capter une température et afficher sa valeur sur un lecteur LCD en choisissant si on veut l'afficher en°C ou °F grâce à une télécommande infrarouge.
Dans ce tuto j'utilise:
-Une carte SainSmart (similaire à Arduino UNO)
-Un lecteur LCD QC1602A
-Un variateur
-Un capteur de température LM35
-Un capteur infrarouge VS838
-Une résistance de 330kΩ
-Des fils de connexion
-Une grille de connexion

Step 1:

Faire les connexions suivantes:
-Le port GND de la carte Arduino se branche sur la colonne "-" de la grille
-Le port 5V de la carte Arduino se branche sur la colonne "+" de la grille
-La pin VSS du lecteur LCD se branche sur la colonne "-" de la grille (GND=Masse).
-La pin VDD du lecteur LCD se branche sur la colonne "+" de la grille (5V).
-La pin V0 du lecteur LCD se branche sur La pin centrale du variateur.
-Le port 7 de la carte est branché sur le port RS du lecteur LCD.
-Le port 8 de la carte est branché sur le port E du lecteur LCD.
-Le port 9 de la carte est branché sur le port D4 du lecteur LCD.
-Le port 10 de la carte est branché sur le port D5 du lecteur LCD.
-Le port 11 de la carte est branché sur le port D6 du lecteur LCD.
-Le port 12 de la carte est branché sur le port D7 du lecteur LCD.
-Le port A0 de la carte est branché a la pin centrale du capteur LM35.
-La branche entaillee du capteur LM35 se branche sur la colonne "+" de la grille (5V)(Pin de droite quand le capteur est face a l'utilisateur).
-La branche restante du capteur LM35 se branche sur la colonne "-" avec une résistance sur la grille (GND=Masse).
-Les 2 pins exterieur du variateur se branchent sur la colonne "-" de la grille (GND=Masse).
-La pin RW du lecteur LCD se branche sur la colonne "-" de la grille (GND=Masse).
-La pin A du lecteur LCD se branche sur la colonne "+" de la grille (5V).
-La pin K du lecteur LCD se branche sur la colonne "-" de la grille (GND=Masse).
-La pin de gauche (lorsque que le capteur est face à l'utilisateur) du capteur infrarouge se branche sur le port 2 de la carte Arduino.
-La pin centrale du capteur infrarouge se branche sur la colonne "-" de la grille (GNS = Mass).
-La pin de droite du capteur infrarouge se branche sur la colonne "+" de la grille (5V).

Step 2:

Ajoutez la bibliothèque du capteur infrarouge à Arduino.
http://www.mediafire.com/download/jd5j7911amju36g/IRremote.zip

Faites des tests pour reconnaitre vos code infrarouge avec ce programme.

#include

int IRpin = 11;
IRrecv irrecv(IRpin);
decode_results results;

void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}

void loop()
{
if (irrecv.decode(&results))
{
Serial.println(results.value, DEC); // Print the Serial 'results.value'
irrecv.resume(); // Receive the next value
}


}

source

Step 3:

Copiez et collez le programme suivant en modifiant vos "results.value"

/*
Programme permettant d'afficher la température en °C ou °F selon le
choix de l'utilisateur grâce à une télécommande infrarouge sur un lecteur LCD.
Le programme est écrit par Pierre-Olivier TILLOY et est libre de modification par qui en a envie.

Branchement à réaliser:

-Le port GND de la carte Arduino se branche sur la colonne "-" de la grille
-Le port 5V de la carte Arduino se branche sur la colonne "+" de la grille
-La pin VSS du lecteur LCD se branche sur la colonne "-" de la grille (GND=Masse).
-La pin VDD du lecteur LCD se branche sur la colonne "+" de la grille (5V).
-La pin V0 du lecteur LCD se branche sur La pin centrale du variateur.
-Le port 7 de la carte est branché sur le port RS du lecteur LCD.
-Le port 8 de la carte est branché sur le port E du lecteur LCD.
-Le port 9 de la carte est branché sur le port D4 du lecteur LCD.
-Le port 10 de la carte est branché sur le port D5 du lecteur LCD.
-Le port 11 de la carte est branché sur le port D6 du lecteur LCD.
-Le port 12 de la carte est branché sur le port D7 du lecteur LCD.
-Le port A0 de la carte est branché a la pin de gauche du capteur LM35.
-La pin de droite du capteur LM35 se branche sur la colonne "+" de la grille (5V)(Pin de droite quand le capteur est face a l'utilisateur).
-La branche restante du capteur LM35 se branche sur la colonne "-" avec une résistance ( de 330kΩ) sur la grille (GND=Masse).
-Les 2 pins exterieur du variateur se branchent sur la colonne "-" de la grille (GND=Masse).
-La pin RW du lecteur LCD se branche sur la colonne "-" de la grille (GND=Masse).
-La pin A du lecteur LCD se branche sur la colonne "+" de la grille (5V).
-La pin K du lecteur LCD se branche sur la colonne "-" de la grille (GND=Masse).
-La pin de gauche (lorsque que le capteur est face à l'utilisateur) du capteur infrarouge se branche sur le port 2 de la carte Arduino.
-La pin centrale du capteur infrarouge se branche sur la colonne "-" de la grille (GNS = Mass).
-La pin de droite du capteur infrarouge se branche sur la colonne "+" de la grille (5V).

Pour les carte SainSmart, l'interrupteur d'alimentation de la carte doit etre place sur 5V.
/!\ VERIFIER QUE LES FILS SONT BIEN BRANCHES SINON LA VALEUR INDIQUEE PAR L'ECRAN PEUT ETRE FAUSSE/!\

*/

#include //Inclue la bibilothèque infrarouge.
#include //Inclue la bibliothèque du lecteur LCD.

int tempPin = 0; //On défini la variable reçu par le capteur avec une valeur initiale de 0.
float tempC = 0; //On défini une variable de température en celcius à laquelle on prédéfini une valeur de 0.
float tempF = 0; //On défini une variable de température en fahrenheit à laquelle on prédéfini une valeur de 0.
LiquidCrystal lcd(7, 8, 9, 10, 11 , 12); //On défini quelles sont les pins de l'interface LCD.
int IRpin = 2; //On déclare que la variable qui envoie la donnée du capteur infrarouge à la carte Arduino est branchée sur la pin 2.
IRrecv irrecv(IRpin); //On déclare que la variable IRpin est la pin qui reçoit la donnée infrarouge.
decode_results results; //On décode le signal infrarouge.

void setup () {
Serial.begin(9600); //Le transfère de données se fait en 9600 bauds.
irrecv.enableIRIn(); //Active le processus de récéption.
lcd.begin(16, 2); //Indique le nombre de case par ligne puis le nombre de ligne du lecteur LCD.

lcd.setCursor(3, 0); //On indique où commence le text à afficher.
lcd.print("Capteur de"); //On indique le text à afficher.
lcd.setCursor(3, 1);
lcd.print("Temperature");
delay(2000); //On indique le temps de l'affichage (en milisecondes).
lcd.clear(); //Efface l'écran.
lcd.setCursor(3, 0);
lcd.print("Programme");
lcd.setCursor(3, 1);
lcd.print("ecrit par");
delay(2000);
lcd.clear();
lcd.setCursor(1, 0);
lcd.print("Pierre-Olivier");
lcd.setCursor(5, 1);
lcd.print("TILLOY");
delay(3500);
lcd.clear();
}

void loop () {
if (irrecv.decode(&results)) { //Tente de recevoir un code infrarouge.
Serial.println(results.value, DEC); //Imprime la valeur du code reçu dans le moniteur de série.
irrecv.resume(); //Prépare le capteur à recevoir un nouveau code.
}
Serial.println("");
Serial.println("Donnee brut recu par le capteur de temperature: "); //Imprime dans le moniteur de série le text.
Serial.println(analogRead(tempPin)); //Imprime dans le moniteur de série la valeur reçu par le capteur de température.

int rawvoltage = analogRead(tempPin); //On défini une variable égale à la valeur analogique du capteur de température.

tempC = ((rawvoltage/1024.0)*5000.0)/100; //La variable tempC prend la valeur du calcul.
Serial.println (tempC); //Om imprime la nouvelle valeur de la variable tempC dans le moniteur de série.

lcd.setCursor(1, 0);
lcd.print("La temperature");
lcd.setCursor(1, 1);
lcd.print("est de ");

if (results.value == 16724175) { //Remplacer le "16724175" par la valeur qui correspond à votre code infrarouge. //Si votre valeur choisie égale la valeur reçu executer le programme suivant.
lcd.setCursor(8, 1);
lcd.print(tempC);
lcd.setCursor(14,1);
lcd.print("C");
delay(500);
}

int tempF = (tempC * 9)/ 5 + 32; //Conversion de la température en fahrenheit.
Serial.println (tempF); //Imprimer la nouvelle valeur de tempF dans le moniteur de série.

if (results.value == 16718055) { //Remplacer le "16718055" par la valeur qui correspond à votre code infrarouge. //Si votre valeur choisie égale la valeur reçu executer le programme suivant.
lcd.setCursor(8,1);
lcd.print(tempF);
lcd.setCursor(14,1);
lcd.print("F");
delay(500);
}
} //Fin du programme, il recommence au début de void loop.

mantap sekali (indonesia)

About This Instructable

8,237views

51favorites

Bio: French, 18 years old. Started Arduino since october 2013.
More by GreyHat231:LCD display of temperature in C or F by choosing the type with an IR remote Capteur temperature choix du type de degres par infrarouge 
Add instructable to: