Table of Contents

Αισθητήρας Θερμοκρασίας TMP36

Σκοπός της ενότητας:

Προαπαιτούμενες γνώσεις:

Σύνδεση στην πλακέτα δοκιμών και στο arduino

Τοποθετήστε τον αισθητήρα TMP36 στο breadboard (πλακέτα δοκιμών) με τη στρογγυλεμένη πλευρά του στραμμένη μακριά από την πλακέτα (η σειρά των ακίδων έχει σημασία!). Συνδέστε την αριστερή ακίδα (με την επίπεδη πλευρά στραμμένη προς εσάς) στην τροφοδοσία, τη δεξιά ακίδα στη γείωση (GND) και τη μεσαία ακίδα στην αναλογική είσοδο A0 της πλακέτας σας, όπως φαίνεται στην παραπάνω εικόνα. Η ακίδα A0 είναι η αναλογική είσοδος 0.

Πηγές

Οδηγός λειτουργίας του TMP36@

Προδιογραφές TMP36

Το παρακάτω διάγραμμα προέρχεται από έγγραφο προδιαγραφων (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 temperature = (voltage - 0.5) * 100;
 
  // Εμφάνιση της θερμοκρασίας σε Κελσίου
  Serial.print("θερμοκρασία: ");
  Serial.print(temperature);
  Serial.print("\xC2\xB0"); // σύμβολο θερμοκρασίας
  Serial.println("C  |  "); // προσοχή,χρησιμοποιούμε την println για αλλαγή γραμμής
 
 
  delay(1000); // αναμονή ενός δευτερολέπτου πριν νέα ανάγνωση τιμής
}
}

Εκτέλεση του προγράμματος και έλεγχος

  1. Ανοίγουμε το Arduino IDE στον υπολογιστή.
  2. Γραμμή μενού / File / New Sketch
  3. Στο παράθυρο που θα ανοίξει εισάγουμε το πρόγραμμα της προηγούμενης ενότητας .
  4. Γραμμή μενού / Save –> διαλέξτε τοποθεσία αποθήκευσης και όνομα αρχείου πχ : basic-use-of-sensor-tmp36
  5. Κάντε κλικ στο κουμπί Verify (κάτω από τη γραμμή μενού το ποιό αριστερό που μοιάζει με τικ).Με την εντολή μας αυτή το IDE μεταγλωττίζει το πρόγραμμα μας σε γλώσσα μηχανής του μικροελεγκτή της πλακέτας μας και ταυτόχρονο ελέγχει το πρόγραμμα για λάθη)
  6. Κάντε κλικ στο κουμπί δεξιά του verify το Upload για να στειλετε το πρόγραμμα στο arduino board.