User Tools

Site Tools


openhw:arduino:εξαρτήματα:αισθητήρες:θερμοκρασίας:tmp36

This is an old revision of the document!


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

Τα αναλογικά pins του Arduino UNO R4 WiFi (A0–A5) παράγουν τιμές από το 0 εως 1023 που αντιστοιχούν σε τάσεις από το 0 εως το 5 .

Σύνδεση στην πλακέτα δοκιμών και στο 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 την θερμοκρασία κάθε στιγμή του αισθητήρα μας.

Το αναλογικό pin (στο οποίο καταλήγει το pin εξόδου του TMP36) αντιστοιχεί την τάση που δέχεται σε μια τιμή από το 1-1024. Το πρόγραμμα μας πρέπει να αντιστοιχήσει αυτή την τιμή σε μια τιμή θερμοκρασίας.

// Define the analog pin, the TMP36's Vout pin is connected to
#define sensorPin A0
 
void setup() {
  // Begin serial communication at 9600 baud rate
  Serial.begin(9600);
}
 
void loop() {
  // Get the voltage reading from the TMP36
  int reading = analogRead(sensorPin);
 
  // Convert that reading into voltage
  // Replace 5.0 with 3.3, if you are using a 3.3V Arduino
  float voltage = reading * (5.0 / 1024.0);
 
  // Μετατροπή της τάσης σε θερμοκρασία Κελσίου
  float temperatureC = (voltage - 0.5) * 100;
 
  // Print the temperature in Celsius
  Serial.print("Temperature: ");
  Serial.print(temperatureC);
  Serial.print("\xC2\xB0"); // shows degree symbol
  Serial.print("C  |  ");
 
  // Print the temperature in Fahrenheit
  float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;
  Serial.print(temperatureF);
  Serial.print("\xC2\xB0"); // shows degree symbol
  Serial.println("F");
 
  delay(1000); // wait a second between readings
}
}

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

  • Πιέστε ελαφρά με τα δάχτυλα σας ώστε να παρατηρήστε άνοδο της θερμοκρασίας.
  • Αγγίξτε για λίγο ένα παγάκι. Προσοχή μην πέσει νερό στις πλακέτες σας!! .

openhw/arduino/εξαρτήματα/αισθητήρες/θερμοκρασίας/tmp36.1781287072.txt.gz · Last modified: by alexandrospr

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki