Yahoo refuse tous les emails du site. Si vous avez une adresse chez un autre prestataire, c'est le moment de l'utiliser ;)

En cas de soucis, n'hésitez pas à aller faire un tour sur la page de contact en bas de page.

Topic "Mesurer une température avec un capteur LM35 et une carte Arduino / Genuino"

Flux RSS des posts récents dans ce topic ( Flux Atom)


Photo de profil de skywodd

skywodd

Membre

Membre du staff

#90 | Signaler ce message


Dans ce tutoriel, nous allons apprendre ensemble à mesurer des températures au moyen d'un capteur LM35 et d'une carte Arduino / Genuino. Nous verrons d'abord comment fonctionne ce capteur, puis comment l'utiliser. En bonus, nous verrons comment améliorer la précision de la mesure de température. Pour finir, nous verrons comment mesurer des températures négatives sans se prendre la tête.

Lire la suite de l'article sur le site

Derniére modification le par skywodd


Photo de profil de MrFreez

MrFreez

Membre

#97 | Signaler ce message


Merci pour le tutoriel.

Comment as tu choisi la valeur de la résistance de 18KOhms dans le deuxième montage (températures négatives) ?

Derniére modification le par MrFreez


Photo de profil de skywodd

skywodd

Membre

Membre du staff

#98 | Signaler ce message


Comment as tu choisi la valeur de la résistance de 18KOhms dans le deuxième montage (températures négatives) ?

par MrFreez

Le datasheet constructeur du LM35 donne la formule suivante : R1 = –VS / 50 µA.

Avec VS = 1.2 (deux fois la tension de diode), on obtient R1 = 24K ohms. Cependant, pour la configuration en alimentation simple, le constructeur recommande l'utilisation d'une résistance de 18K ohms.

Cela donne un courant de charge de 70µA sur la sortie du capteur. Si le constructeur dit de faire comme ça, c'est surement qu'il y a une bonne raison.


Photo de profil de MrFreez

MrFreez

Membre

#101 | Signaler ce message


RTFM …. j'aurais du penser a la datasheet…


Pas de photo de profil

ChristianM

Membre

#341 | Signaler ce message


Bonjour, En utilisant le 1er montage j'obtiens des réponses totalement farfelues (tout comme d'ailleurs avec les autres montages et tutos testés). Auriez-vous un début de solution. LM35DZ ! 0.00

0.00

16.13

37.63

41.06

39.59

35.68

34.70

21.99

45.94

0.00

0.00

0.00

Derniére modification le par ChristianM


Photo de profil de skywodd

skywodd

Membre

Membre du staff

#342 | Signaler ce message


En utilisant le 1er montage j'obtiens des réponses totalement farfelues (tout comme d'ailleurs avec les autres montages et tutos testés).

par ChristianM

Capteur HS ou mauvais câblage.

Il faudrait faire un test avec un autre capteur pour voir si c'est le capteur ou le câblage qui pose probléme.


Pas de photo de profil

ChristianM

Membre

#343 | Signaler ce message


Capteur HS ou mauvais câblage.

Il faudrait faire un test avec un autre capteur pour voir si c'est le capteur ou le câblage qui pose probléme.

par skywodd

Merci pour la réponse. J'opterai pour le capteur HS


Pas de photo de profil

valentin1828

Membre

#460 | Signaler ce message


Salut, je suis en terminale et je travail sur un capteur LM35DZ, que dois-je changer par rapport a ce tutoriel pour que mon dossier soit complet et que mon capteur soit opérationnel ? Merci


Photo de profil de skywodd

skywodd

Membre

Membre du staff

#469 | Signaler ce message


que dois-je changer par rapport a ce tutoriel pour que mon dossier soit complet et que mon capteur soit opérationnel ?

par valentin1828

Il n'y a besoin d'aucune modification. L'encadré en rouge indique simplement la gamme de température mesurable pour chaque version.


Pas de photo de profil

abtt

Membre

#757 | Signaler ce message


Bonjour,

en testant le code, je me retrouve avec ça dans le moniteur serie :

bon la copie de l'image a pas l'air de passer, en gros, ça donne des nombres dans une fourchette de 122 à 131.

Si je touche le transistor ça monte bien en m'affichant dans les 500.

Si je fais, dans le code ça :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
// Mesure la tension sur la broche A0
  int valeur_brute = analogRead(A0);
  
  // Transforme la mesure (nombre entier) en température via un produit en croix
  float temperature_celcius = valeur_brute * (5.0 / 1023.0 * 100.0);
  
  // Envoi la mesure au PC pour affichage et attends 250ms
  Serial.println(valeur_brute);
  delay(250);
}

Pour voir la tension de sortie sur la broche A0, ça m'affiche des valeurs comprises entre 260 et 300 mv?

le LM35 a l'air de fonctionner, mais l'opération pour convertir volt vers degré n'a pas l'air de fonctionner?

Je n'ai malheureusement pas d'autre LM35 pour tester.

Edit Skywodd: Balises code et image

Derniére modification le par skywodd


Photo de profil de skywodd

skywodd

Membre

Membre du staff

#764 | Signaler ce message


Le calcul est juste (voir démonstration ci après).

Quelle tension y a t-il en sorti du capteur ?

Alimentation et câblage correct (pas d'inversion 3.3 / 5 volts par exemple)?

Récap :

- analogRead() retourne une valeur entre 0 et 1023 : 0 = 0 volt, 1023 = VCC (5 volts, en théorie).

- le capteur LM35 génère une tension de 10mV par °C

- 1000mV = 1 volt = 100 x 10mV, donc 100°C = 1 volt

Soit :

- VCC = 5.0 volts

- Vbrute = valeur retournée par analogRead()

- Ucapteur = tension en volts en sortie du LM35

- Tcelsius = la température en celsius

A partir de là :

- Ucapteur (volts) = Vbrute * (VCC / 1023) = Vbrute * (5.0 / 1023) => Produit en croix basique

- Tcelsius = Ucapteur * 100 = Vbrute * (5.0 / 1023) * 100

On pourrait s’arrêter là, cela serait tout à fait normal.

En faisant : Vbrute * (5.0 / 1023 * 100), le résultat est le même mais il y a une subtilité : la partie de droite est une constante.

Lors de la compilation, le programme exécutera : Vbrute* 0,48875855327468230694037145650049 au lieu de Vbrute : * 0,004887585532746823069403714565 * 100.0

Une multiplication au lieu de deux, c'est une micro-optimisation mais ça ne coûte rien ;)