DS18S20

Dependencies:   mbed

Committer:
aitouares
Date:
Thu Apr 26 14:18:31 2012 +0000
Revision:
0:5b6520e71eb6

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
aitouares 0:5b6520e71eb6 1
aitouares 0:5b6520e71eb6 2 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
aitouares 0:5b6520e71eb6 3 // //
aitouares 0:5b6520e71eb6 4 // Fonctionnement du programme du DS1820 //
aitouares 0:5b6520e71eb6 5 // //
aitouares 0:5b6520e71eb6 6 // //
aitouares 0:5b6520e71eb6 7 // 1) Pour commencer le MBED initial le bus 1-Wire c'est-à-dire : //
aitouares 0:5b6520e71eb6 8 // - MBED envoi une impulsion à 0 pendant 480µs minimum //
aitouares 0:5b6520e71eb6 9 // - Puis le DS1820 répond avec une impulsion à 0 de 60à 240µs. //
aitouares 0:5b6520e71eb6 10 // 2) On utilise la fonction «Search ROM [F0]» qui va permettre au MBED de récupérer tous les numéros //
aitouares 0:5b6520e71eb6 11 // de ROM des DS1820 et par la même occasion de savoir combien de DS1820 il y a sur le bus 1-Wire. //
aitouares 0:5b6520e71eb6 12 // 3) On fait un reset du bus 1-Wire on envoi le numéro de ROM « 0x10,0x65,0xF2,0x45,0x2,0x8,0x0,0xAE » //
aitouares 0:5b6520e71eb6 13 // pour communiquer avec le DS1820 désiré puis on utilise la fonction « Convert Temperature [44] », //
aitouares 0:5b6520e71eb6 14 // la valeur de la température est stocké dans le deuxième octet du scratchpad. //
aitouares 0:5b6520e71eb6 15 // 4) Puis on va lire dans le scratchpad la valeur de la température stockée dans la variable « temperature » //
aitouares 0:5b6520e71eb6 16 // prise par le DS1820. //
aitouares 0:5b6520e71eb6 17 // 5) Affichage de la variable « temperature » sur un HyperTerminal grâce à une liaison série. //
aitouares 0:5b6520e71eb6 18 // //
aitouares 0:5b6520e71eb6 19 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
aitouares 0:5b6520e71eb6 20
aitouares 0:5b6520e71eb6 21
aitouares 0:5b6520e71eb6 22
aitouares 0:5b6520e71eb6 23
aitouares 0:5b6520e71eb6 24
aitouares 0:5b6520e71eb6 25
aitouares 0:5b6520e71eb6 26 #include "mbed.h"
aitouares 0:5b6520e71eb6 27 #include "DS18S20.h"
aitouares 0:5b6520e71eb6 28
aitouares 0:5b6520e71eb6 29
aitouares 0:5b6520e71eb6 30 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
aitouares 0:5b6520e71eb6 31 // //
aitouares 0:5b6520e71eb6 32 // Affichage de la temperature //
aitouares 0:5b6520e71eb6 33 // //
aitouares 0:5b6520e71eb6 34 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
aitouares 0:5b6520e71eb6 35
aitouares 0:5b6520e71eb6 36
aitouares 0:5b6520e71eb6 37 int main() /* debut du programme principal */
aitouares 0:5b6520e71eb6 38 {
aitouares 0:5b6520e71eb6 39
aitouares 0:5b6520e71eb6 40 float temperature; /* declaration de la variabble
aitouares 0:5b6520e71eb6 41 flotante temperature */
aitouares 0:5b6520e71eb6 42 G__MOS_P =1 ; /* initialisation du P-MOS */
aitouares 0:5b6520e71eb6 43 FindDevices(); /* fonction cherchant le nombre de ds1820
aitouares 0:5b6520e71eb6 44 et leur numero de serie */
aitouares 0:5b6520e71eb6 45
aitouares 0:5b6520e71eb6 46
aitouares 0:5b6520e71eb6 47 while (true) /* boucle while infini */
aitouares 0:5b6520e71eb6 48 {
aitouares 0:5b6520e71eb6 49
aitouares 0:5b6520e71eb6 50 if ( First() ) /* fonction if */
aitouares 0:5b6520e71eb6 51 {
aitouares 0:5b6520e71eb6 52 temperature = DS1820_GetTemp(); /* affectation du resultat de la temperature
aitouares 0:5b6520e71eb6 53 a la variable temperature */
aitouares 0:5b6520e71eb6 54 pc.printf("\t temp = % +.3g""\xb0""C \r",temperature); /* affichage de la temperature */
aitouares 0:5b6520e71eb6 55 }
aitouares 0:5b6520e71eb6 56 }
aitouares 0:5b6520e71eb6 57 }