This is an old revision of the document!
Table of Contents
Αισθητήρας Θερμοκρασίας TMP36
Σκοπός της ενότητας:
- Κατανόηση:
- Λειτουργία αισθητήρα θερμοκρασίας TMP36
- Εξάσκηση :
- Βασική ανάγνωση δεδομένων του TMP36 με τη βοήθεια της πλακέτας Arduino.
Προαπαιτούμενες γνώσεις:
- Βασική δομή πλακέτας δοκιμών
- Δημιουργία Sketch στο Arduino IDE
- Φόρτωση Sketch από το IDE στην πλακέτα Arduino.
Σύνδεση στην πλακέτα δοκιμών και στο arduino
- Ο ακροδέκτης Vs (κόκκινο καλώδιο) είναι η τάση τροφοδοσίας του TMP36 και δεν πρέπει να ξεπερνά τα 5V.
- Ο μεσαίος ακροδέκτης Vout (κίτρινο καλώδιο στο σχεδιάγραμμα) στέλνει σήμα με τάση ανάλογη της θερμοκρασίας στο άμμεσο περιβάλλον του αισθητήρα.
- Ο ακροδέκτης GND (μαύρο καλώδιο) είναι η γείωση ή η επιστροφή που κλείνει το κύκλωμα
Πηγές
Οδηγός λειτουργίας του TMP36@
Προδιογραφές TMP36
- Εύρος θερμοκρασιων: -40°C to 125°C
- Ακρίβεια: ±2°C
- Παράγοντας κλίμακας εξόδου: 10mV/°C (δηλαδή αλλαγή 10mV αντιστοιχεί σε αλλαγή 1C.
- Εύρος εξόδου:0.1V (-40°C) to 1.75V (125°C)
Το παρακάτω διάγραμμα προέρχεται από έγγραφο προδιαγραφων (dataspec) αισθητήρων tmp35-tmp36-tmp37. Εμάς μας ενδιαφέρει ο TMP36.
Βλέπουμε ότι ο TMP36 έχει εύρος τιμών εξόδου:0.1V (-40°C) to 1.75V (125°C).
Ο αναλογικός ακροδέκτης Α0 στον οποίο συνδέσαμε τον κεντρικό ακροδέκτη μπορεί να δημιουργήσει ένα εύρος τιμών ανάμεσα από το 0 εώς το 1024 . Αλλά αφού θα δεχτεί τιμες 0.1v - 1.75v θα παράγει τιμές περίπου από το 10 εώς το 400.
Ο κώδικας μας πρέπει αυτές τις τιμές να τις μετατρέψει σε μια τιμή θερμοκρασίας κελσίου.
Πρόσβαση από το Sketch
Σκοπός : Να εμφανίσουμε στην σειριακή κονσόλο του ArduinoIDE την θερμοκρασία κάθε στιγμή του αισθητήρα μας.
Τα αναλογικά pins του Arduino UNO R4 WiFi (A0–A5) παράγουν τιμές από το 0 εως 1023 που αντιστοιχούν σε τάσεις από το 0 εως το 5v . Το αναλογικό pin (στο οποίο καταλήγει το pin εξόδου του TMP36) αντιστοιχεί την τάση που δέχεται σε μια τιμή από το 1-1024. Το πρόγραμμα μας πρέπει να αντιστοιχήσει αυτή την τιμή σε μια τιμή θερμοκρασίας.
// Ορίζουμε τον αναλογικό ακροδέκτη της πλακέτας arduino στην οποία συνδέσαμε τον ακροδέκτη εξόδου του TMP36's #define sensorPin A0 void setup() { // Ξεκινάμε επικοινωνία με την κονσόλα του IDE. Serial.begin(9600); } void loop() { // Λήψη της τιμής του ακροδέκτη εξόδου του TMP36 int reading = analogRead(sensorPin); // Μετατροπή της τιμής σε τάση. float voltage = reading * (5.0 / 1024.0); // Μετατροπή της τάσης σε θερμοκρασία Κελσίου float temperatureC = (voltage - 0.5) * 100; // Εμφάνιση της θερμοκρασίας σε Κελσίου Serial.print("θερμοκρασία: "); Serial.print(temperatureC); Serial.print("\xC2\xB0"); // σύμβολο θερμοκρασίας Serial.print("C | "); delay(1000); // αναμονή ενός δευτερολέπτου πριν νέα ανάγνωση τιμής } }





