openhw:arduino:εξαρτήματα:αισθητήρες:θερμοκρασίας:tmp36
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| openhw:arduino:εξαρτήματα:αισθητήρες:θερμοκρασίας:tmp36 [2026/06/12 17:32] – alexandrospr | openhw:arduino:εξαρτήματα:αισθητήρες:θερμοκρασίας:tmp36 [2026/06/13 14:44] (current) – [Εκτέλεση του προγράμματος και έλεγχος] alexandrospr | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Αισθητήρας Θερμοκρασίας TMP36 ====== | ====== Αισθητήρας Θερμοκρασίας TMP36 ====== | ||
| + | Σκοπός της ενότητας: | ||
| + | * Κατανόηση: | ||
| + | * Λειτουργία αισθητήρα θερμοκρασίας TMP36 | ||
| + | * Εξάσκηση : | ||
| + | * Βασική ανάγνωση δεδομένων του TMP36 με τη βοήθεια της πλακέτας Arduino. | ||
| - | Τα αναλογικά pins του Arduino UNO R4 WiFi (A0–A5) παράγουν τιμές από το 0 εως 1023 που αντιστοιχούν σε τάσεις | + | Προαπαιτούμενες |
| + | * Βασική δομή | ||
| + | * Δημιουργία Sketch | ||
| + | * Φόρτωση Sketch | ||
| ===== Σύνδεση στην πλακέτα δοκιμών και στο arduino ===== | ===== Σύνδεση στην πλακέτα δοκιμών και στο arduino ===== | ||
| Line 15: | Line 23: | ||
| {{ : | {{ : | ||
| + | |||
| + | |||
| + | Τοποθετήστε τον αισθητήρα TMP36 στο breadboard (πλακέτα δοκιμών) με τη στρογγυλεμένη πλευρά του στραμμένη μακριά από την πλακέτα (η σειρά των ακίδων έχει σημασία!). Συνδέστε την αριστερή ακίδα (με την επίπεδη πλευρά στραμμένη προς εσάς) στην τροφοδοσία, | ||
| ===== Πηγές | ===== Πηγές | ||
| Line 28: | Line 39: | ||
| * Εύρος εξόδου: | * Εύρος εξόδου: | ||
| + | Το παρακάτω διάγραμμα προέρχεται από έγγραφο προδιαγραφων (dataspec) αισθητήρων tmp35-tmp36-tmp37. Εμάς μας ενδιαφέρει ο **TMP36**. | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Βλέπουμε ότι ο TMP36 έχει εύρος τιμών εξόδου: | ||
| + | |||
| + | Ο αναλογικός ακροδέκτης **Α0** στον οποίο συνδέσαμε τον κεντρικό ακροδέκτη μπορεί να δημιουργήσει ένα εύρος τιμών ανάμεσα από το 0 εώς το 1024 . Αλλά αφού θα δεχτεί τιμες 0.1v - 1.75v θα παράγει τιμές περίπου από το 10 εώς το 400. | ||
| + | |||
| + | Ο κώδικας μας πρέπει αυτές τις τιμές να τις μετατρέψει σε μια τιμή θερμοκρασίας κελσίου. | ||
| ===== Πρόσβαση από το Sketch | ===== Πρόσβαση από το Sketch | ||
| Σκοπός : Να εμφανίσουμε στην σειριακή κονσόλο του ArduinoIDE την θερμοκρασία κάθε στιγμή του αισθητήρα μας. | Σκοπός : Να εμφανίσουμε στην σειριακή κονσόλο του ArduinoIDE την θερμοκρασία κάθε στιγμή του αισθητήρα μας. | ||
| + | Τα αναλογικά pins του Arduino UNO R4 WiFi (A0–A5) παράγουν τιμές από το 0 εως 1023 που αντιστοιχούν σε τάσεις από το 0 εως το 5v . | ||
| Το αναλογικό pin (στο οποίο καταλήγει το pin εξόδου του TMP36) αντιστοιχεί την τάση που δέχεται σε μια τιμή από το 1-1024. Το πρόγραμμα μας πρέπει να αντιστοιχήσει αυτή την τιμή σε μια τιμή θερμοκρασίας. | Το αναλογικό pin (στο οποίο καταλήγει το pin εξόδου του TMP36) αντιστοιχεί την τάση που δέχεται σε μια τιμή από το 1-1024. Το πρόγραμμα μας πρέπει να αντιστοιχήσει αυτή την τιμή σε μια τιμή θερμοκρασίας. | ||
| < | < | ||
| - | // Define the analog pin, the TMP36' | + | // Ορίζουμε τον αναλογικό ακροδέκτη της πλακέτας arduino στην οποία συνδέσαμε τον ακροδέκτη εξόδου του |
| #define sensorPin A0 | #define sensorPin A0 | ||
| void setup() { | void setup() { | ||
| - | // Begin serial communication at 9600 baud rate | + | // Ξεκινάμε επικοινωνία με την κονσόλα του IDE. |
| Serial.begin(9600); | Serial.begin(9600); | ||
| } | } | ||
| void loop() { | void loop() { | ||
| - | // Get the voltage reading from the TMP36 | + | // Λήψη της τιμής του ακροδέκτη εξόδου του |
| int reading = analogRead(sensorPin); | 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 voltage = reading * (5.0 / 1024.0); | ||
| - | // Convert the voltage into the temperature in Celsius | + | // Μετατροπή της τάσης σε θερμοκρασία Κελσίου |
| - | float temperatureC | + | float temperature |
| - | // Print the temperature in Celsius | + | // Εμφάνιση της θερμοκρασίας σε Κελσίου |
| - | Serial.print(" | + | Serial.print(" |
| - | Serial.print(temperatureC); | + | Serial.print(temperature); |
| - | Serial.print(" | + | Serial.print(" |
| - | Serial.print(" | + | Serial.println(" |
| | | ||
| - | // Print the temperature in Fahrenheit | ||
| - | float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0; | ||
| - | Serial.print(temperatureF); | ||
| - | Serial.print(" | ||
| - | Serial.println(" | ||
| - | delay(1000); | + | delay(1000); |
| } | } | ||
| } | } | ||
| Line 74: | Line 89: | ||
| ===== Εκτέλεση του προγράμματος και έλεγχος | ===== Εκτέλεση του προγράμματος και έλεγχος | ||
| + | - Ανοίγουμε το Arduino IDE στον υπολογιστή. | ||
| + | - Γραμμή μενού / File / New Sketch | ||
| + | - Στο παράθυρο που θα ανοίξει εισάγουμε το πρόγραμμα της προηγούμενης ενότητας . | ||
| + | - Γραμμή μενού / Save --> διαλέξτε τοποθεσία αποθήκευσης και όνομα αρχείου πχ : basic-use-of-sensor-tmp36 | ||
| + | - Κάντε κλικ στο κουμπί Verify (κάτω από τη γραμμή μενού το ποιό αριστερό που μοιάζει με τικ).Με την εντολή μας αυτή το IDE μεταγλωττίζει το πρόγραμμα μας σε γλώσσα μηχανής του μικροελεγκτή της πλακέτας μας και ταυτόχρονο ελέγχει το πρόγραμμα για λάθη) | ||
| + | - Κάντε κλικ στο κουμπί δεξιά του verify το Upload για να στειλετε το πρόγραμμα στο arduino board. | ||
| + | |||
| + | * Πιέστε ελαφρά με τα δάχτυλα σας ώστε να παρατηρήστε άνοδο της θερμοκρασίας. | ||
| + | * Αγγίξτε για λίγο ένα παγάκι. Προσοχή μην πέσει νερό στις πλακέτες σας!! . | ||
| {{: | {{: | ||
openhw/arduino/εξαρτήματα/αισθητήρες/θερμοκρασίας/tmp36.1781285550.txt.gz · Last modified: by alexandrospr
