DS18S20

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 
00002 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
00003 //                                                                                                                  //
00004 //                                      Fonctionnement du programme du DS1820                                       //
00005 //                                                                                                                  //
00006 //                                                                                                                  //
00007 //  1)    Pour commencer le MBED initial le bus 1-Wire c'est-à-dire :                                               //
00008 //          -    MBED envoi une impulsion à 0 pendant 480µs minimum                                                 //
00009 //          -    Puis le DS1820 répond avec une impulsion à 0 de 60à 240µs.                                         //
00010 //  2)    On utilise la fonction «Search ROM [F0]» qui va permettre au MBED de récupérer tous les numéros           //
00011 //      de ROM des DS1820 et par la même occasion de savoir combien de DS1820 il y a sur le bus 1-Wire.             //
00012 //  3)    On fait un reset du bus 1-Wire on envoi le numéro de ROM « 0x10,0x65,0xF2,0x45,0x2,0x8,0x0,0xAE »         //
00013 //      pour communiquer avec le DS1820 désiré puis on utilise la fonction « Convert Temperature [44] »,            //
00014 //      la valeur de la température est stocké dans le deuxième octet du scratchpad.                                //
00015 //  4)    Puis on va lire dans le scratchpad la valeur de la température stockée dans la variable « temperature »   //
00016 //      prise par le DS1820.                                                                                        //
00017 //  5)    Affichage de la variable « temperature » sur un HyperTerminal grâce à une liaison série.                  //
00018 //                                                                                                                  //
00019 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
00020 
00021 
00022 
00023 
00024 
00025 
00026 #include "mbed.h"
00027 #include "DS18S20.h"
00028 
00029 
00030 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
00031 //                                                                                                               //
00032 //                                        Affichage de la temperature                                            //
00033 //                                                                                                               //  
00034 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
00035 
00036 
00037 int main()                                                         /* debut du programme principal */ 
00038 {
00039                                          
00040     float temperature;                                             /* declaration de la variabble
00041                                                                       flotante temperature */
00042     G__MOS_P =1 ;                                                   /* initialisation du P-MOS */
00043     FindDevices();                                                  /* fonction cherchant le nombre de ds1820 
00044                                                                        et leur numero de serie */
00045    
00046         
00047     while (true)                                                    /* boucle while infini */ 
00048     {
00049 
00050         if ( First() )                                              /* fonction if */
00051         {
00052          temperature =  DS1820_GetTemp();                           /* affectation du resultat de la temperature
00053                                                                        a la variable temperature */
00054          pc.printf("\t temp = % +.3g""\xb0""C   \r",temperature);   /* affichage de la temperature */                                                                    
00055         }
00056     }
00057 }