Τα αναλογικά pins του Arduino UNO R4 WiFi (A0–A5) παράγουν τιμές από το 0 εως 1023 που αντιστοιχούν σε τάσεις από το 0 εως το 5 .
Οδηγός λειτουργίας του 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.
Ο κώδικας μας πρέπει αυτές τις τιμές να τις μετατρέψει σε μια τιμή θερμοκρασίας κελσίου.
Σκοπός : Να εμφανίσουμε στην σειριακή κονσόλο του ArduinoIDE την θερμοκρασία κάθε στιγμή του αισθητήρα μας.
Το αναλογικό 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); // αναμονή ενός δευτερολέπτου πριν νέα ανάγνωση τιμής } }