Πίνακας περιεχομένων:

Βαθμονόμηση αισθητήρα DS18B20 με Arduino UNO: 3 βήματα (με εικόνες)
Βαθμονόμηση αισθητήρα DS18B20 με Arduino UNO: 3 βήματα (με εικόνες)

Βίντεο: Βαθμονόμηση αισθητήρα DS18B20 με Arduino UNO: 3 βήματα (με εικόνες)

Βίντεο: Βαθμονόμηση αισθητήρα DS18B20 με Arduino UNO: 3 βήματα (με εικόνες)
Βίντεο: How to Interface Industrial Sensors with Arduino Nano 2024, Ιούλιος
Anonim
Βαθμονόμηση αισθητήρα DS18B20 με Arduino UNO
Βαθμονόμηση αισθητήρα DS18B20 με Arduino UNO
Βαθμονόμηση αισθητήρα DS18B20 με Arduino UNO
Βαθμονόμηση αισθητήρα DS18B20 με Arduino UNO
Βαθμονόμηση αισθητήρα DS18B20 με Arduino UNO
Βαθμονόμηση αισθητήρα DS18B20 με Arduino UNO

ΑΠΟΠΟΙΗΣΗ ΕΥΘΥΝΩΝ:

Η συσκευή που βλέπετε στις εικόνες χρησιμοποιείται σε άλλο έργο ως Θερμοστάτης για διαδικασία ανάπτυξης φιλμ. Μπορείτε να βρείτε αυτό το έργο εδώ. Για να βαθμονομήσετε έναν αισθητήρα, ή περισσότερους από έναν, θα χρειαστείτε αυτό που θα βρείτε σε αυτό το έργο, τίποτα περισσότερο, και είναι και πολύ βασικό, επίσης! Πάμε!

Βήμα 1: Προετοιμάστε τη συσκευή σας

Προετοιμάστε τη συσκευή σας
Προετοιμάστε τη συσκευή σας

Εδώ είναι μια λίστα με αυτά που χρειάζεστε:

  1. Arduino UNO (ή MEGA)
  2. Αισθητήρες DS18B20
  3. 4kOhm - 5kOhm αντίσταση (χρησιμοποίησα 5k1Ohm)
  4. Οθόνη LCD για ανάγνωση τιμών (μπορείτε επίσης να χρησιμοποιήσετε φορητό υπολογιστή και να τις διαβάσετε μόνο σε σειριακή οθόνη)
  5. Ένα σκίτσο που χρησιμοποιεί τον αισθητήρα και δείχνει με κάποιο τρόπο τις τιμές

Πρώτα απ 'όλα πρέπει να συνδέσετε τις μονάδες και τον αισθητήρα σας στον ελεγκτή σας. Θα σας αφήσω το περίπλοκο μέρος της οθόνης LCD για να κάνετε αναζήτηση στον ιστό και θα σας πω μόνο πώς να συνδέσετε τον αισθητήρα.

Συνήθως αυτοί οι αισθητήρες έρχονται με τρία χρωματιστά καλώδια: Μαύρο, Κόκκινο, Κίτρινο. Οι δύο πρώτες είναι για την ενέργεια και η τρίτη για τα δεδομένα. Συνδέστε το μαύρο στο GNN, το κόκκινο στο Vcc (5V) και το κίτρινο σε μια αναλογική είσοδο, ας πούμε A0.

Τώρα συνδέστε την αντίσταση μεταξύ του κίτρινου και του κόκκινου για να ολοκληρώσετε τις συνδέσεις.

Συνδέστε επίσης την οθόνη LCD (προτείνω μια απλή LCD 16x2 με σύνδεση i2c για να χρησιμοποιήσετε μόνο 4 σύρματα συνολικά) και τελειώσατε με καλώδια και καλώδια.

Τώρα το σκίτσο που είναι εξαιρετικά απλό:

#include "OneWire.h"

#include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); DallasTemperature sensor1 (& ourWire1); #include "LiquidCrystal_I2C.h"

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

void setup () {lcd.init (); lcd. backlight (); sensor1.begin (); sensor1.setResolution (11); } void loop () {sensor1.requestTemperatures (); float RawValue = sensor1.getTempCByIndex (0); lcd.setCursor (0, 0); lcd.print ("Sens. 1"); lcd.print (RawValue, 1); }

Όπως μπορείτε να δείτε, χρησιμοποιούμε τη βιβλιοθήκη Dallas Temperature και μια οθόνη LCD με σύνδεση i2c.

Στη ρύθμιση ενεργοποιούμε την οθόνη LCD και τον αισθητήρα και στον βρόχο απλά ζητάμε τη θερμοκρασία και αποθηκεύουμε την τιμή μέσα στη μεταβλητή RawValue για να την εμφανίσουμε στην οθόνη LCD.

Αν θέλετε να το κάνετε πιο απλό, απλώς χρησιμοποιήστε τη σειριακή οθόνη με το ακόλουθο σκίτσο

#include "Wire.h" #include "OneWire.h" #include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); DallasTemperature sensor1 (& ourWire1);

float RawValue = 0;

void setup () {

καθυστέρηση (1000)? Serial.begin (9600); sensor1.begin (); sensor1.setResolution (11);

}

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

Τώρα ακολουθήστε με στον πυρήνα του έργου για τη βαθμονόμηση του αισθητήρα.

Βήμα 2: Βαθμονόμηση δύο σημείων

Βαθμονόμηση δύο σημείων
Βαθμονόμηση δύο σημείων
Βαθμονόμηση δύο σημείων
Βαθμονόμηση δύο σημείων
Βαθμονόμηση δύο σημείων
Βαθμονόμηση δύο σημείων

Κάτι που πρέπει να γνωρίζετε πρώτα

Για να βαθμονομήσετε έναν θερμο-αισθητήρα, πρέπει να μετρήσετε κάτι από το οποίο γνωρίζετε τη θερμοκρασία. Ο απλός τρόπος για να το κάνετε στο σπίτι είναι να χρησιμοποιήσετε βραστό νερό και ένα λουτρό λιωμένου πάγου, που ονομάζεται επίσης λουτρό "τριπλού σημείου". Σε αυτές τις περιπτώσεις γνωρίζουμε ότι το νερό βράζει στους 100 ° C στο επίπεδο της θάλασσας. Λάβετε υπόψη ότι για να κάνετε μια ακριβή μέτρηση πρέπει να γνωρίζετε το υψόμετρο και να υπολογίσετε τη σωστή θερμοκρασία βρασμού εκεί.

Μπορείτε να το ελέγξετε εδώ!

Για να είμαι ειλικρινής θα πρέπει να ελέγξετε την ατμοσφαιρική πίεση και όχι το υψόμετρο. Αλλά αυτός ο τρόπος είναι αρκετά ακριβής.

Το λουτρό τριπλού σημείου, ή το λουτρό πάγου, είναι η θερμοκρασία στην οποία υπάρχει νερό στις τρεις καταστάσεις στερεό, υγρό και αέριο, η θερμοκρασία αυτή είναι 0, 01 ° C. Θα χρησιμοποιήσουμε, για απλοποίηση, 0 ° C.

Γνωρίζοντας την τιμή που διάβασε ο αισθητήρας και την τιμή που πρέπει να είναι, μπορούμε να τροποποιήσουμε την ακατέργαστη τιμή του DS18B20 σε κάτι πιο σωστό.

ΣΗΜΕΙΩΣΗ: θα μπορούσατε επίσης να χρησιμοποιήσετε περισσότερη θερμοκρασία για να βαθμονομήσετε τον αισθητήρα απλώς τοποθετώντας τον σε κάποια άλλη ουσία της οποίας γνωρίζετε το σημείο βρασμού όπως Αιθέρας (35 ° C), Πεντάνιο (36, 1 ° C), Ακετόνη (56 ° C) ή Αιθανόλη (78, 37 ° C), αλλά αυτές οι βραστικές ουσίες παράγουν υψηλά εύφλεκτα αέρια! Μην το κάνετε λοιπόν!

Βραστό νερό:

Βάζουμε λίγο νερό σε μια κατσαρόλα και το ζεσταίνουμε μέχρι να βράσει (αναπτύσσονται φυσαλίδες αερίου και το νερό αναταράσσεται μόνο του). Βυθίστε τον αισθητήρα σας εκεί που δεν αγγίζει τίποτα παρά μόνο νερό. Περιμένετε μερικά λεπτά και διαβάστε το LCD ή τη σειριακή οθόνη

Η θερμοκρασία πρέπει να παραμείνει η ίδια για τουλάχιστον ένα λεπτό. Αν ναι, γράψτε αυτήν την τιμή. Αυτή είναι η δική σας: RawHigh value.

Μπανιέρα τριών σημείων:

Τώρα πάρτε ένα μεγάλο ποτήρι (δεν χρειάζεστε τίποτα τεράστιο ούτε μια κατσαρόλα) και γεμίστε το μέχρι το περίγραμμα με παγάκια. Προσπαθήστε να χρησιμοποιήσετε παγάκια μικρού μεγέθους. Τώρα γεμίστε το 80% του ποτηριού με κρύο νερό. Ξαναγεμίστε με πάγο εάν ο μοχλός προσπαθήσει να κατέβει.

Τώρα βάλτε τον αισθητήρα σας μέσα στο αντικείμενο νερού/πάγου και περιμένετε ενάμιση λεπτό. Διαβάστε τη θερμοκρασία που πρέπει να παραμείνει η ίδια για τουλάχιστον 30 δευτερόλεπτα. Αν ναι, γράψτε το ότι είναι η τιμή σας RawLow.

Βήμα 3: Χρησιμοποιήστε τις αξίες που αποκτάτε με τον σωστό τρόπο

Λοιπόν, τώρα έχετε μερικές σημαντικές αξίες:

  • RawHigh
  • RawLow
  • ReferenceHigh
  • ReferenceLow

Η τιμή αναφοράς είναι προφανώς 99,9 ° C για το νερό που βράζει (στο υψόμετρο μου 22μ) και 0 ° C για το λιωμένο πάγο. Τώρα υπολογίστε τα εύρη για αυτές τις τιμές:

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

Τώρα είστε έτοιμοι να χρησιμοποιήσετε αυτόν τον αισθητήρα σε οποιοδήποτε άλλο έργο, είστε σίγουροι ότι θα σας δώσει τη σωστή μέτρηση. Πως? Χρησιμοποιώντας την τιμή που πήρατε εδώ στο έργο που θα δημιουργήσετε με αυτόν τον αισθητήρα.

Στο μελλοντικό σας έργο θα πρέπει να χρησιμοποιήσετε τις τιμές που διαβάζετε σε αυτό και προτείνω να το κάνετε χρησιμοποιώντας τα ίδια ονόματα που χρησιμοποίησα εδώ.

Δηλώστε τις μεταβλητές πριν από την ενότητα void setup () όπως ακριβώς:

float RawHigh = 99.6; float RawLow = 0.5; float ReferenceHigh = 99.9; float ReferenceLow = 0; float RawRange = RawHigh - RawLow; float ReferenceRange = ReferenceHigh - ReferenceLow;

Στη συνέχεια, κάθε φορά που θα χρησιμοποιείτε τον αισθητήρα, μπορείτε να χρησιμοποιήσετε τον ακόλουθο τύπο για να υπολογίσετε την CorrectedValue:

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

Το RawValue είναι προφανώς η ανάγνωση του αισθητήρα.

Αυτό είναι!

Τώρα ξέρετε πώς να βαθμονομήσετε τον αισθητήρα DS18B20 ή οποιονδήποτε άλλο αισθητήρα που θα χρησιμοποιήσετε! Καλα να περνατε!

Συνιστάται: