Introduction: Capteur Temperature Choix Du Type De Degres Par Infrarouge

Picture of Capteur Temperature Choix Du Type De Degres Par Infrarouge

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.

Step 4:

Picture of

Comments

Sasando_Rote (author)2014-11-20

mantap sekali (indonesia)