Table des matières:

Étalonnage du capteur DS18B20 avec Arduino UNO : 3 étapes (avec photos)
Étalonnage du capteur DS18B20 avec Arduino UNO : 3 étapes (avec photos)

Vidéo: Étalonnage du capteur DS18B20 avec Arduino UNO : 3 étapes (avec photos)

Vidéo: Étalonnage du capteur DS18B20 avec Arduino UNO : 3 étapes (avec photos)
Vidéo: CAPTEUR DE PRESSION ET ARDUINO AVEC LA DOMOTIQUE À 2€ 2024, Juillet
Anonim
Étalonnage du capteur DS18B20 avec Arduino UNO
Étalonnage du capteur DS18B20 avec Arduino UNO
Étalonnage du capteur DS18B20 avec Arduino UNO
Étalonnage du capteur DS18B20 avec Arduino UNO
Étalonnage du capteur DS18B20 avec Arduino UNO
Étalonnage du capteur DS18B20 avec Arduino UNO

CLAUSE DE NON-RESPONSABILITÉ:

L'appareil que vous voyez sur les images est utilisé dans un autre projet en tant que thermostat pour le processus de développement de film. Vous pouvez trouver ce projet ici. Pour calibrer un capteur, ou plus d'un, vous n'aurez besoin que de ce que vous trouverez dans ce projet, rien de plus, et c'est assez basique aussi ! Allons-y!

Étape 1: préparez votre appareil

Préparez votre appareil
Préparez votre appareil

Voici une liste de ce dont vous avez besoin:

  1. Arduino UNO (ou MEGA)
  2. Capteur(s) DS18B20
  3. Résistance 4kOhm - 5kOhm (j'ai utilisé un 5k1Ohm)
  4. Écran LCD pour lire les valeurs (vous pouvez également utiliser un ordinateur portable et simplement les lire sur un moniteur série)
  5. Un croquis qui utilise le capteur et montre en quelque sorte les valeurs

Tout d'abord, vous devez connecter vos modules et votre capteur à votre contrôleur. Je vous laisse la partie compliquée de l'écran LCD pour rechercher sur le Web, et je vais juste vous dire comment connecter le capteur.

Habituellement, ces capteurs sont livrés avec trois fils de couleur: noir, rouge, jaune. Les deux premiers sont pour l'énergie et le troisième est pour les données. Connectez le noir à GNN, le rouge à Vcc (5V) et le jaune sur une entrée analogique, disons A0.

Connectez maintenant la résistance entre le jaune et le rouge pour terminer les connexions.

Branchez également l'écran LCD (je suggère un simple écran LCD 16x2 avec connexion i2c pour n'utiliser que 4 fils au total) et vous avez terminé avec les fils et les câbles.

Maintenant le croquis qui est super simple:

#include "OneWire.h"

#include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1(ONE_WIRE_BUS_1); Capteur de température Dallas1(&ourWire1); #include "LiquidCrystal_I2C.h"

LiquidCrystal_I2C lcd (0x27, 16, 2); float RawValue =0;

void setup(){ lcd.init(); LCD rétro-éclairage(); sensor1.begin(); sensor1.setResolution(11); } boucle vide(){ sensor1.requestTemperatures(); float RawValue = sensor1.getTempCByIndex(0); lcd.setCursor(0, 0); lcd.print("Sens. 1 "); lcd.print(RawValue, 1); }

Comme vous pouvez le voir, nous utilisons la bibliothèque Dallas Temperature et un écran LCD avec connexion i2c.

Dans la configuration, nous initions l'écran LCD et le capteur et dans la boucle, nous demandons simplement la température et stockons la valeur dans la variable RawValue pour l'afficher sur l'écran LCD.

Si vous voulez rester plus simple, utilisez simplement le moniteur série avec le croquis suivant

#include "Wire.h"#include "OneWire.h" #include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1(ONE_WIRE_BUS_1); Capteur de température Dallas1(&ourWire1);

float RawValue =0;

void setup(){

retard(1000); Serial.begin(9600); sensor1.begin(); sensor1.setResolution(11);

}

boucle vide(){ sensor1.requestTemperatures(); float RawValue = sensor1.getTempCByIndex(0); Serial.print("Sens. 1 "); Serial.println(RawValue, 1); }

Suivez-moi maintenant au cœur du projet pour calibrer le capteur.

Étape 2: étalonnage en deux points

Étalonnage en deux points
Étalonnage en deux points
Étalonnage en deux points
Étalonnage en deux points
Étalonnage en deux points
Étalonnage en deux points

Quelque chose à savoir d'abord

Pour calibrer un thermo-capteur, vous devez mesurer quelque chose dont vous connaissez la température. La façon simple de le faire à la maison consiste à utiliser de l'eau bouillante et un bain de glace fondante, également appelé bain « triple point ». Dans ces cas, nous savons que l'eau bout à 100°C au niveau de la mer. Gardez à l'esprit que pour faire une mesure précise, vous devez connaître votre altitude et y calculer la température d'ébullition appropriée.

Tu peux le vérifier ici!

Pour être honnête, vous devriez vérifier la pression atmosphérique et non l'altitude. Mais cette façon est assez précise.

Le bain à point triple, ou bain de glace, est la température à laquelle l'eau existe dans les trois états solide, liquide et gazeux, cette température est de 0, 01°C. Nous utiliserons, pour simplifier, 0°C.

Connaissant la valeur lue par le capteur et la valeur qui devrait être, nous pouvons modifier la valeur brute du DS18B20 en quelque chose de plus correct.

REMARQUE: vous pouvez également utiliser plus de température pour calibrer le capteur en le mettant simplement dans une autre substance dont vous connaissez le point d'ébullition comme l'éther (35°C), le pentane (36, 1°C), l'acétone (56°C) ou L'éthanol (78, 37°C), mais ces substances bouillantes produisent des gaz hautement inflammables ! Alors ne le fais pas !

Eau bouillante:

Mettez de l'eau dans une casserole et faites chauffer jusqu'à ébullition (des bulles de gaz se forment et l'eau s'agite). Immergez votre capteur là où il ne touche que de l'eau. Attendez quelques minutes et lisez l'écran LCD ou le moniteur série

La température doit rester la même pendant au moins une minute. Si oui, notez cette valeur. C'est votre: valeur RawHigh.

Baignoire triple points:

Prenez maintenant un grand verre (vous n'avez besoin de rien d'énorme ni de pot) et remplissez-le jusqu'au bord de glaçons. Essayez d'utiliser des glaçons de petite taille. Remplissez maintenant les 80% du verre avec de l'eau froide. Remplir avec de la glace si le levier essaie de descendre.

Maintenant, placez votre capteur à l'intérieur de la chose eau/glace et attendez une minute et demie. Lisez la température qui doit rester la même pendant 30 secondes au moins. Si c'est le cas, notez-le, c'est votre valeur RawLow.

Étape 3: Utilisez les valeurs que vous obtenez de la bonne manière

Donc, maintenant vous avez quelques valeurs importantes:

  • BrutÉlevé
  • BrutFaible
  • RéférenceHaut
  • RéférenceBas

Les valeurs de référence sont bien évidemment de 99,9°C pour l'eau bouillante (à mon altitude de 22m), et de 0°C pour le bain de glace fondante. Calculez maintenant les plages de ces valeurs:

  • RawRange = RawHigh - RawLow
  • ReferenceRange = ReferenceHigh - ReferenceLow

Vous êtes maintenant prêt à utiliser ce capteur dans n'importe quel autre projet en étant sûr qu'il vous donnera une bonne mesure. Comment? En utilisant la valeur que vous avez obtenue ici dans le projet, vous allez créer avec ce capteur.

Dans votre futur projet, vous devrez utiliser les valeurs que vous lisez dans celui-ci et je suggère de le faire en utilisant les mêmes noms que ceux que j'ai utilisés ici.

Déclarez les variables avant la section void setup() comme ceci:

float RawHigh = 99,6;float RawLow = 0,5;float ReferenceHigh = 99,9;float ReferenceLow = 0;float RawRange = RawHigh - RawLow;float ReferenceRange = ReferenceHigh - ReferenceLow;

Ensuite, chaque fois que vous utiliserez le capteur, vous pouvez utiliser la formule suivante pour calculer la valeur corrigée:

float CorrectedValue = (((RawValue - RawLow) * ReferenceRange) / RawRange) + ReferenceLow;

RawValue est évidemment la lecture du capteur.

C'est ça!

Vous savez maintenant comment calibrer votre capteur DS18B20 ou tout autre capteur que vous utiliserez ! S'amuser!

Conseillé: