Mise en oeuvre : Chapitre 5 - Thermomètre

Le forum du Snootlab Starter Kit

Mise en oeuvre : Chapitre 5 - Thermomètre

Message non lude Stéphane » Ven 1 Juil 2011 16:43

[Presentation du montage]

Montage N°5 : Thermomètre numérique.


Dans le chapitre précédent, nous avons vu comment asservir un moteur en fonction des niveaux lumineux détectés. Dans ce chapitre nous allons voir comment utiliser le capteur de température LM35DZ du starter kit, pour réaliser un thermomètre avec un affichage à leds.
Le but sera de signaler quand la température est comprise entre 19°C et 22°C, quand elle est en dessous, ou au dessus.
Notre montage sera composé du capteur de température, de 3 leds 10mm et de résistances d'appel.



[Présentation des composants]

Les composants utilisés sont :

Résistance de 150Ohms (x3)
Leds de 10mm (x3)
Capteur de température LM35DZ (x1)
Arduino Uno (x1)
Fils
Breadboard (x1)


Maintenant que nous avons toutes les billes, assemblons les !

[Le Montage]

Voici comment relier les composants entre eux. Le logiciel utilisé ici est Fritzing, il permet de donner une vue claire à vos montages, à mi-chemin entre la photo et le schéma électronique, et nous, à Snootlab, on aime ça !


Donc, notre montage se présente ainsi :

Sketch_STK_basic_5_bb.png
Sketch_STK_basic_5_bb.png (35.92 Kio) Vu 4777 fois


Les couleurs ont été choisies de cette manière :
Les fils rouges représentent le Vcc(+5V)
Les fils noirs représentent le GND(0V)


Pour un montage aussi simple, nous nous passerons de schémas électroniques, vous avez progressé depuis le Chapitre 0 !

[Explications sur le montage]


Le LM35DZ sort une tension, image linéaire de la température. Ces capteurs s'alimentent entre +4V et +20V. Calibré à 0°C, la tension de sortie est proportionnelle à la température via ce rapport : 10mV/°C.
Cela signifie que pour chaque degré supplémentaire, la tension s’élèvera de 10mV, par rapport à votre masse électrique. Ex : 24°C = 240mV

Interpréter la tension de sortie d'un capteur :


Pour interfacer un capteur dont l'information est codée sous forme de tension, en général il est préférable de passer par un montage suiveur, comme vu dans le Chapitre 0. Dans notre cas, ce n'était pas nécessaire, au vu des paramètres de sortie du capteur et de ses éléments internes.

Pour ensuite interpréter les données il est nécessaire de connaître l'échelle maximale et la résolution du système qui reçoit l'information. Dans notre cas, l'échelle maximale est 5V, et la résolution 1024 (10bits).

A partir de là, il faut connaître le pas du capteur, ici 10mV/°C. Cela va nous permettre de mettre en forme l'équation de l'information.
En effet, information = ((((valeur_reçue)*pleine_échelle)/résolution)/pas_capteur)

Dans notre cas, cela donne température = ((((valeur_reçue)*5)/1024)/0,01)



[Go for Code]

Code: Tout sélectionner
/*
    Application BASIC pour le STK Snootlab : N°6
   Thermomètre avec signalisation en fonction de seuils
    Le convertisseur Analogique/Numérique de l'Arduino à une résolution de 2^10 bits = 1024 valeurs.
*/

// Déclaration des pins utilisées
const char pin_capteur = A0;
const char pin_led_rouge=2;
const char pin_led_verte=3;
const char pin_led_jaune=4;

//Variables
char temperature_max=22;
char temperature_min=19;
char temperature=0;
float valeur_capteur;
char pleine_echelle=5;
int resolution=1024;
float pas=0.01;

void setup(void)
{
  pinMode(pin_capteur,INPUT);
  pinMode(pin_led_rouge,OUTPUT);
  pinMode(pin_led_verte,OUTPUT);
  pinMode(pin_led_jaune,OUTPUT);
  Serial.begin(57600);
}

void loop (void)
{
     // On récupère la valeur de la tension en sortie du capteur
  valeur_capteur=analogRead(pin_capteur);

     //A l'aide de l'équation, on trouve la température qui y correspond
  temperature=(((valeur_capteur*pleine_echelle)/resolution)/pas);
     //On remet à zéro les leds de 10mm
 digitalWrite(2, LOW);
 digitalWrite(3, LOW);
 digitalWrite(4, LOW);

     //On compare la température reçue aux seuils que l'on a défini lors des déclarations du programme
  if (temperature<temperature_min)digitalWrite(pin_led_jaune,HIGH);
  else if (temperature>temperature_max)digitalWrite(pin_led_rouge,HIGH);
  else digitalWrite(pin_led_verte,HIGH);

     //On envoie la valeur de la température sur le port série
  Serial.println(temperature,DEC);

     //On attends une seconde avant de recommencer
  delay(1000);
 
}



[Conclusion]

Et voici, c'est terminé pour aujourd'hui !
Désormais, vous êtes capable de réaliser un thermomètre pour la température de votre chambre, de votre terrasse ou de votre vivarium. Mixez ce montage avec le détecteur de luminosité et asservissez la chaleur et la luminosité que vous voulez donner à vos plantes, déclenchez un ventilateur passé un certain seuil, où même fermez vos volets !
Imaginez ! Explorez ! Nous vous donnons les briques et les explications, à vous de faire votre maison ! Surtout, faites partager vos expériences à notre communauté, posez des questions, échangez vos travaux, vivez open-hardware !
Fichiers joints
Sketch_STK_basic_5.fz
(110.08 Kio) Téléchargé 147 fois
Avatar de l’utilisateur
Stéphane
 
Messages: 179
Inscription: Lun 2 Mai 2011 09:40

Retourner vers Starter Kit

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité