
DS18S20
Embed:
(wiki syntax)
Show/hide line numbers
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 }
Generated on Thu Jul 14 2022 11:27:35 by
