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

Λάβετε τον σειριακό αριθμό ενός DS18B20 με ένα Arduino: 5 βήματα
Λάβετε τον σειριακό αριθμό ενός DS18B20 με ένα Arduino: 5 βήματα

Βίντεο: Λάβετε τον σειριακό αριθμό ενός DS18B20 με ένα Arduino: 5 βήματα

Βίντεο: Λάβετε τον σειριακό αριθμό ενός DS18B20 με ένα Arduino: 5 βήματα
Βίντεο: Display input voltage as bargraph on LCD using Arduino and potentiometer 2024, Νοέμβριος
Anonim
Λάβετε τον σειριακό αριθμό ενός DS18B20 με ένα Arduino
Λάβετε τον σειριακό αριθμό ενός DS18B20 με ένα Arduino

Αυτός είναι ένας γρήγορος οδηγός για τον τρόπο λήψης των επιμέρους σειριακών αριθμών των αισθητήρων θερμοκρασίας 1-καλωδίου DS18B20.

Αυτό είναι βολικό για έργα που απαιτούν πολλαπλούς αισθητήρες.

Πράγματα που χρειάζεστε:

  • Arduino 5v (UNO, Mega, Pro Mini κ.λπ.) - Arduino UNO R3 - AliExpress - eBay
  • Temp Sensor DS18B20 - AliExpress - eBay
  • 4.7k - 1/4w Resistor THT - AliExpress - eBay
  • Breadboard - AliExpress - eBay
  • Jumper Wires - Male to Male - AliExpress - eBay
  • Ένας υπολογιστής με εγκατεστημένο το Arduino IDE

Βήμα 1: Προσθέστε την απαιτούμενη βιβλιοθήκη στο Arduino IDE

Προσθέστε την απαιτούμενη βιβλιοθήκη στο Arduino IDE
Προσθέστε την απαιτούμενη βιβλιοθήκη στο Arduino IDE
  1. Άνοιγμα Arduino IDE (χρησιμοποιώ 1.8.1)
  2. Κάντε κλικ στην επιλογή "Σκίτσο" -> "Συμπερίληψη βιβλιοθήκης" -> "Διαχείριση βιβλιοθηκών …"
  3. Επιλέξτε τη γραμμή αναζήτησης και πληκτρολογήστε "dallas"
  4. Κάντε κλικ στο "DallasTemperature" και κάντε κλικ στο "Εγκατάσταση"

Εναλλακτικά μπορείτε να κατεβάσετε τη Βιβλιοθήκη από εδώ:

Αυτή η Βιβλιοθήκη περιλαμβάνει τη Βιβλιοθήκη OnWire.

Βήμα 2: Συνδέστε το DS18B20

Συνδέστε το DS18B20
Συνδέστε το DS18B20
Συνδέστε το DS18B20
Συνδέστε το DS18B20

Χρησιμοποιώντας μια σανίδα ψωμιού συνδέστε +5V, GND και Pinηφιακή καρφίτσα 2 (η καρφίτσα 2 έχει ήδη οριστεί στο παράδειγμα σκίτσο) από το Arduino χρησιμοποιώντας μπλουζάκια από αρσενικό σε αρσενικό.

Συνδέστε το DS18B20 παράλληλα με τις τερματικές ταινίες 3x στον πίνακα ψωμιού.

  • Καρφίτσα 1 (GND) -> GND (Έδαφος 0V)
  • Pin 2 (DATA) -> Digital Pin 2
  • Καρφίτσα 3 (Vdd) -> +5V

Για κανονική λειτουργία τροφοδοσίας συνδέστε μια αντίσταση 4,7K από +5V στο καλώδιο Pinηφιακή ακίδα 2 στο ψωμί.

Ο παρακάτω σύνδεσμος είναι ένας μεγάλος πόρος για τον αισθητήρα θερμοκρασίας 1 καλωδίου DS18B20.

www.tweaking4all.com/hardware/arduino/ardu…

Βήμα 3: Φορτώστε το Παράδειγμα Σκίτσου "Single"

Φορτώστε το Παράδειγμα Σκίτσο
Φορτώστε το Παράδειγμα Σκίτσο
Φορτώστε το Παράδειγμα Σκίτσο
Φορτώστε το Παράδειγμα Σκίτσο

Μόλις το συνδέσετε, είστε έτοιμοι να φορτώσετε το Σχέδιο θερμοκρασίας Ντάλας "Single" σε καθυστέρηση (5000)? στη γραμμή 103 για να μου δοθεί χρόνος για να αντιγράψω τον σειριακό αριθμόΕπιλέξτε την κατάλληλη φόρμα του πίνακα "Εργαλεία" -> "Πίνακας" Επιλέξτε την κατάλληλη θύρα "Εργαλεία" -> "Θύρα" Τώρα "Μεταφόρτωση" του Σκίτσου "Σκίτσο" -> "Μεταφόρτωση" Κάντε κλικ στην επιλογή "Εργαλεία" -> "Σειριακή οθόνη", βεβαιωθείτε ότι τα ποσοστά baud ταιριάζουν με τα δικά μου είναι 9600Αν σκίτσο δεν μεταφορτώσατε, ελέγξτε τα προγράμματα οδήγησης Board, Port, USB κ.λπ.

Βήμα 4: Αντιγράψτε τον σειριακό αριθμό

Αντιγράψτε τον σειριακό αριθμό
Αντιγράψτε τον σειριακό αριθμό
Αντιγράψτε τον σειριακό αριθμό
Αντιγράψτε τον σειριακό αριθμό

Από το "Serial Monitor" θα δείτε την 4η γραμμή είναι "Device 0 Address: xxxxxxxxxxxxxxx"

Αυτός είναι ο σειριακός αριθμός του DS18B20

Εάν είναι "000000000000000000" τότε υπάρχει πρόβλημα με την ανάγνωση του DS18B20.

Επισημάνετε το με το ποντίκι σας και πατήστε CTRL+C στο πληκτρολόγιό σας και μετά προσπεράστε το στο Σημειωματάριο

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

DeviceAddress tempSensorSerial [9] = {

{0x28, 0xFF, 0x07, 0xA6, 0x70, 0x17, 0x04, 0xB5}, {0x28, 0xFF, 0xB2, 0xA6, 0x70, 0x17, 0x04, 0x28}, {0x28, 0xFF, 0x42, 0x98, 0x94, 0x94, 0x94, 0x94, 0x04, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x04, 0xD3}, {0x28, 0xFF, 0x86, 0xA8, 0x70, 0x17, 0x04, 0xA6}, {0x28, 0xFF, 0x2B, 0x65, 0x71, 0x17, 0x04, 0x76}, {0x28, 0xFF, 0x70, 0x17, 0x04, 0xF5}, {0x28, 0xFF, 0xD9, 0x9B, 0x70, 0x17, 0x04, 0x9C}, {0x28, 0xFF, 0x98, 0x6A, 0x71, 0x17, 0x04, 0xED, 0xED}, {0xED,, 0x42, 0x71, 0x17, 0x04, 0x4C}};

Βήμα 5: Ολοκληρώθηκε

Πεπερασμένος
Πεπερασμένος

Τώρα μπορείτε να προσδιορίσετε κάθε μεμονωμένο αισθητήρα θερμοκρασίας 1-καλωδίου DS18B20 στον κωδικό σας και να χρησιμοποιήσετε μια λειτουργία όπως αυτή:

float getTemperature (byte j) {

sensors.requestTemperaturesByAddress (tempSensorSerial [j]);

float tempC = sensors.getTempC (tempSensorSerial [j]);

επιστροφή tempC;

}

Συνιστάται: