LM35

Ο αισθητήρας LM35 είναι ένας αισθητήρας θερμοκρασίας που μπορεί να μετρήσει θερμοκρασία μεταξύ -55 C και 150 C.
Πρόκειται για μια συσκευή 3 τερματικών που παρέχει αναλογική τάση ανάλογη προς τη θερμοκρασία. Μεγαλύτερη θερμοκρασία, υψηλότερη είναι η τάση εξόδου.
Η αναλογική τάση εξόδου μπορεί να μετατραπεί σε ψηφιακή μορφή χρησιμοποιώντας ADC έτσι ώστε ένας μικροελεγκτής να μπορεί να την επεξεργαστεί.Interfacing LM35 Sensor With Arduino UNO

Τι είναι το ADC;
O Αναλογικός σε Ψηφιακό Μετατροπέας (ADC) είναι ένα πολύ χρήσιμο χαρακτηριστικό που μετατρέπει μια αναλογική τάση σε έναν ακροδέκτη σε έναν ψηφιακό αριθμό. Με τη μετατροπή από τον αναλογικό κόσμο στον ψηφιακό κόσμο, μπορούμε να αρχίσουμε να χρησιμοποιούμε ηλεκτρονικά για να διασυνδέσουμε τον αναλογικό κόσμο γύρω μας.

Όχι κάθε ακροδέκτης σε ένα μικροελεγκτή έχει τη δυνατότητα να μετατρέπει αναλογικά σήματα σε ψηφιακά. Στον πίνακα Arduino, αυτοί οι ακροδέκτες έχουν ένα Α μπροστά από την ετικέτα τους (A0 έως A5) για να δείξουν ότι μπορούν " να διαβάσουν" αναλογικές τάσεις.

Οι ADC μπορούν να διαφέρουν σημαντικά μεταξύ του μικροελεγκτή. Το ADC στο Arduino είναι ADC 10 bit που σημαίνει ότι έχει την ικανότητα να ανιχνεύει 1024 (2 ^ 10) διακριτά αναλογικά επίπεδα. Ορισμένοι μικροελεγκτές διαθέτουν ADC 8 bit (2 ^ 8 = 256 διακριτά επίπεδα) και μερικοί έχουν ADCs 16 bit (2 ^ 16 = 65536 διακριτά επίπεδα).

Ο τρόπος λειτουργίας ενός ADC είναι αρκετά περίπλοκος. Υπάρχουν μερικοί διαφορετικοί τρόποι για να έχουμε αυτό το αποτέλεσμα, αλλά μία από τις πιο συνηθισμένες τεχνικές χρησιμοποιεί την αναλογική τάση για να φορτίσει έναν εσωτερικό πυκνωτή και έπειτα να μετρήσει το χρόνο που χρειάζεται για να αποφορτιστεί σε μια εσωτερική αντίσταση. Ο μικροελεγκτής παρακολουθεί τον αριθμό των κύκλων ρολογιού που περνούν πριν αποφορτιστεί ο πυκνωτής. Αυτός ο αριθμός κύκλων είναι ο αριθμός που επιστρέφεται μόλις συμπληρωθεί το ADC.

Σχετικά με την τιμή τάσης ADC προς τάση
Η ADC αναφέρει μια λογική τιμή. Αυτό σημαίνει ότι το ADC υποθέτει 5V είναι 1023 και οτιδήποτε λιγότερο από 5V θα είναι μια αναλογία μεταξύ 5V και 1023.

Ανάλυση του ADC/τάση συστήματος


Οι αναλογικές προς ψηφιακές μετατροπές εξαρτώνται από την τάση του συστήματος. Επειδή χρησιμοποιούμε κυρίως το 10-bit ADC του Arduino σε ένα σύστημα 5V, μπορούμε να απλοποιήσουμε ελαφρά αυτή την εξίσωση:
 


Εάν το σύστημά σας είναι 3.3V, αλλάζετε απλά 5V με 3.3V στην εξίσωση. Εάν το σύστημά σας είναι 3.3V και το ADC σας αναφέρει 512, ποια είναι η τάση που μετράται; Είναι περίπου 1,65V.

Αν η αναλογική τάση είναι 2.12V, τι θα αναφέρει η ADC ως τιμή;

Επιλύοντας ως προς x :

x=434

x

Ο κώδικας

const int lm35_pin = A1; /* LM35 O/P pin */

void setup() {
Serial.begin(9600);
}

void loop() {
int temp_adc_val;
float temp_val;
temp_adc_val = analogRead(lm35_pin); /* Read Temperature */
temp_val = (temp_adc_val * 4.88); /* Convert adc value to equivalent voltage */
temp_val = (temp_val/10); /* LM35 gives output of 10mv/C */
Serial.print("Temperature = ");
Serial.print(temp_val);
Serial.print(" Degree Celsius\n");
delay(1000);
}