explication programme

Alors voilà tout d'abord je precise que je débute totalement en programmation arduino.

Je demande votre aide pour mon projet que j'ai a réaliser pour le BAC

je vous explique mon probleme je doit faire un relèvé de temperature puis l'envoyer sur un site web jusque la tout va bien j'ai mi du temps a trouvé le bout de code pour le relevé de temperature mais maintenant que j'en est un qui marche j'aimerais le comprendre c'est pour sa que je vous demande de l'aide pour m'aidé a comprendre ce programme qui pour moi est du chinois

Merci d'avance

PS; j'ai essayer de lire les commentaires mais je n'ai pas compris plus !

//------- Fonction d'initialisation du capteur de temperature (eau) --------------

void capteurInit(void)
// fonction qui ne reçoit rien et ne renvoie rien
{
// XXXXXXXXXXXXXXXXXXXXXX Détection du capteur présent sur la broche XXXXXXXXXXXXXXXXXXXXXXX
Serial.println("**** Detection du capteur **** ");
while (capteur.search(adresse)== false) // tant qu'aucun nouveau capteur est détecté
{
// la fonction search renvoie la valeur FAUX si aucun élément 1-wire est trouvé.
Serial.println("Aucun capteur 1-wire present sur la broche ! "); // affiche message + saut de ligne
delay (1000); // pause 1 seconde
}
//la suite est exécutée seulement si un capteur est détecté
// la fonction search renvoie la valeur VRAI si un élément 1-wire est trouvé.
// Stocke son code d'adresse 16 bits dans le tableau adresse[8]
// adresse envoyé à la fonction correspond à l'adresse de début du tableau adresse[8] déclaré ...
Serial.print ("1 capteur 1-wire present avec code adresse 64 bits : ");
//--- affichage des 64 bits d'adresse au format hexadécimal
for(int i = 0; i < 8; i++) { // l'adresse renvoyée par la fonction search est stockée sur 8 octets
if (adresse*<16) Serial.print('0'); // pour affichage des O poids fort au format hexadécimal*
_ Serial.print(adresse*, HEX); // affiche 1 à 1 les 8 octets du tableau adresse au format hexadécimal*_
* Serial.print(" ");*
* }*
* Serial.println();*
* //---- test du type de capteur ----*
* // le type du capteur est donné par le 1er octet du code adresse 64 bits*
* // Valeur 0x28 pour capteur type DS18B20, 0x10 pour type DS18S20, 0x22 pour type DS1820*
* if (adresse[0]==0x28)*
* {*
* Serial.println ("Type du capteur present : Capteur temperature DS18B20.");*
* }*
* else*
* {*
* Serial.println ("Le capteur present n'est pas un capteur de temperature DS18B20.");*
* }*
* //----- contrôle du code CRC ----*
* // le dernier octet de l'adresse 64bits est un code de contrôle CRC*
* // à l'aide de la fonction crc8 on peut vérifier si ce code est valide*
* if (capteur.crc8( adresse, 7) == adresse[7]) // vérification validité code CRC de l'adresse 64 bits*
* // le code CRC de l'adresse 64 bits est le 8ème octet de l'adresse (index 7 du tableau)*
* {*
* Serial.println ("Verification du code CRC de l'adresse 64 bits de ce capteur : VALIDE !");*
* }*
* else*
* {*
* Serial.println ("Verification du code CRC de l'adresse 64 bits de ce capteur : NON VALIDE !"); *
* }*
* //------- message final détection ----*
* Serial.println("----- fin de la recherche du capteur ----");*
* Serial.println(""); *
}
//----------- fin de la fonction d'initialisation du capteur ----------
float capteurMesureTemp(void)
{ //fonction qui renvoie résultat float et ne reçoit rien
* //-------- variable locale de la fonction ----------*
* int tempet=0; // variable pour resultat brute de la mesure*
* float tempetf=0.0; // variable pour resultat à virgule de la mesure*
// XXXXXXXXXXXXXXXXXXXXXX Lancement d'une mesure et lecture du résultat XXXXXXXXXXXXXXXXXXXXXXX
// Serial.println("**** Acquisition d'une mesure de la temperature **** ");
* // avant chaque nouvelle instruction, il faut :*
_ // * initialiser le bus 1-wire_
_ // * sélectionner le capteur détecté_
_ // * envoyer l'instruction_
//--------- lancer une mesure --------
* capteur.reset(); // initialise le bus 1-wire avant la communication avec un capteur donné*
* capteur.select(adresse); // sélectionne le capteur ayant l'adresse 64 bits contenue dans le tableau envoyé à la fonction*
* capteur.write(lancerMesure,1); // lance la mesure et alimente le capteur par la broche de donnée*
//-------- pause d'une seconde -----
delay(1000); // au moins 750 ms
* // il faudrait mettre une instruction capteur.depower ici, mais le reset va le faire*
//---------- passer en mode LECTURE -------------
* capteur.reset(); // initialise le bus 1-wire avant la communication avec un capteur donné*
* capteur.select(adresse); // sélectionne le capteur ayant l'adresse 64 bits contenue dans le tableau envoyé à la fonction*
* capteur.write(modeLecture,1); // passe en mode lecture de la RAM du capteur*
// ----------- lire les 9 octets de la RAM (appelé Scratchpad) ----
for ( int i = 0; i < 9; i++) { // 9 octets de RAM stockés dans 9 octets
_ data = capteur.read(); // lecture de l'octet de rang i stocké dans tableau data
* }
//----- caclul de la température mesurée (enfin!) ---------
data[1]=data[1] & B10000111; // met à 0 les bits de signes inutiles
tempet=data[1]; // bits de poids fort
tempet=tempet<<8;
tempet=tempet+data[0]; // bits de poids faible
// --- en mode 12 bits, la résolution est de 0.0625°C - cf datasheet DS18B20*
tempetf=float(tempet)*6.25;
tempetf=tempetf/100.0;
return (tempetf);
}_

Salut,

Bon déjà si je peux te donner un conseil, bosse le bac de français aussi ... Sans être un "défenseur addict" de la langue française, quand on arrive au bac et qu'on ne sait toujours pas quand utiliser les participes passés et les infinitifs, ça a de quoi rendre légitimement tous les profs un peu dingues ...

Ensuite : quand tu postes du code utilise les balises code (# dans la barre d'outil de post). C'est plus lisible et ça évite que d'autres balises soient interprétées (du coup là tu as la moitié qui est passé en italique).

Pour ton problème : c'est quoi que tu comprends pas ? C'est bien beau de nous poster une page de code en nous disant je comprends pas mais va falloir y mettre du tien. Y'a un commentaire quasiment à chaque ligne de code, donc je vois pas ce qu'on pourrait faire de plus. De plus les deux programme/fonction n'ont aucune interaction ...

Alors voilà tout d'abord je precise que je débute totalement en programmation arduino

Non ton premier post date du 25 septembre 2013 donc à moins que tu n'ai strictement rien fait, 6 mois après tu n'es pas encore un confirmé mais tu ne débutes plus.

D'autre part on a déjà du te dire que le code en vrac comme tu le mets est illisible et que c'est pour cette raison que les balises code existent (-> icone avec un # dessus ). Donc tu édites ton message précédent pour mettre les bonnes balises.

Ensuite manifestement le code que tu nous mets provient d'une librairie, la moindre des choses serait d'indiquer qu'elle est la librairie et de donner un lien vers sa documentation.

Pour finir on devine que tu veux utiliser un capteur sous protocole OneWire, et relisant tes posts précédents on se rend compte qu'on ne se trompe pas. Ne crois tu pas que c'est à toi de faire un rappel ?