Explication de code Arduino

Fermé
DJBRAV Messages postés 73 Date d'inscription mardi 8 mai 2012 Statut Membre Dernière intervention 26 mars 2014 - 13 févr. 2014 à 16:50
DJBRAV Messages postés 73 Date d'inscription mardi 8 mai 2012 Statut Membre Dernière intervention 26 mars 2014 - 26 mars 2014 à 14:58
Bonjour, j'ai un capteur de température i2c, le tmp102. Je l'ai branché sur mon arduino. J'ai besoin de ce code

#include <Wire.h>

int adressetmp102 = 0x48;

void setup(){
Serial.begin(9600);
Wire.begin();
}



float recuptemp(){
Wire.requestFrom(adressetmp102,2);

byte MSB = Wire.read();
byte LSB = Wire.read();

int tempdecal = ((MSB << 8) | LSB) >> 4;

float tempcelsius = tempdecal*0.0625;
return tempcelsius;
}

void loop(){

float tempcelsius = recuptemp();
Serial.print("La temperature actuelle est de :");
Serial.println(tempcelsius);
delay(200);
}

Quelqu'un pourrait m'expliquer le fonctionnement de ce programme, ou du moins une partie. Je lui en serai très reconnaissant.
Merci de vos réponses.
A voir également:

2 réponses

XDamienX007 Messages postés 3607 Date d'inscription jeudi 3 décembre 2009 Statut Membre Dernière intervention 28 mars 2018 418
6 mars 2014 à 01:18
http://pastebin.com/2TUpyaTr

Voilà, un bon codeur idente son code, et l'upload sur pastebin si il est trop gros (en général, supérieur à 20 lignes)
0
Utilisateur anonyme
6 mars 2014 à 01:26
Salut,

Ce n'est pas compliqué mais ... Arduino, c'est pas du Java ?

Bref.

La fonction recuptemp() récupère la valeur de la broche sur laquelle est branché le capteur.
tempdecal correspond à une valeur entière quantitative de la température, et ensuite on la multiplie par 0.0625 (ça doit être spécifique au capteur).
recuptemp() est donc une fonction de CAN (Conversion Analogique-Numérique).

La fonction loop() est exécutée en boucle et permet d'afficher toutes les 200 millisecondes la température actuelle du capteur dans la liaison série (Réglée à 9600 bauds dans Setup)
0
XDamienX007 Messages postés 3607 Date d'inscription jeudi 3 décembre 2009 Statut Membre Dernière intervention 28 mars 2018 418
6 mars 2014 à 01:27
J'ai vu sur internet que c'est un langage proche du C
0
J'ai passé un exm au BAC SIN avec un projet fait sur Arduino, au début je pensais c'était du C aussi puis finalement, je sais pu où, j'ai appris que c'était du Java, mais les deux sont très proches c'est vrai (Si on oublie le multi-plateformes).
Mais ce n'est sûrement pas du C++ (C'est trop gros pour de l'embarqué), ou alors on peut choisir ... je me suis quand même permis de déplacer le sujet dans Java.

En tous cas, la documentation est très bien fournie (Si on a des bases en Anglais).
https://www.arduino.cc/reference/en/#.UxfCxYXivDc
0
XDamienX007 Messages postés 3607 Date d'inscription jeudi 3 décembre 2009 Statut Membre Dernière intervention 28 mars 2018 418
6 mars 2014 à 01:37
Depuis le temps que je le cherchais ce lien >.< Merci :D

(Moi j'suis en bac SEN :p)
0
XDamienX007 Messages postés 3607 Date d'inscription jeudi 3 décembre 2009 Statut Membre Dernière intervention 28 mars 2018 418
6 mars 2014 à 01:53
C'était le mot "référence" que j'avais pas ;)
0