Ο αισθητήρας LM35
Περιγραφή
Με τον αισθητήρα LM35 μπορούμε να μετρήσουμε τη θερμοκρασία. Πρόκειται για ένα ολοκληρωμένο κύκλωμα (integrated circuit - IC) της Texas Instruments LM35 που διαθέτει ακρίβεια και έχει χαμηλό κόστος. Χρησιμοποιεί ένα εύρος θερμοκρασιών από −55°C έως 150°C. Το datasheet του αισθητήρα βρίσκεται εδώ. Ο αισθητήρας είναι αναλογικός, γραμμικός και μετρά 10mV ανά βαθμό Κελσίου. Με άλλα λόγια για αύξηση της θερμοκρασίας περιβάλλοντος κατά 1 βαθμό Κελσίου, η τάση στην αναλογική είσοδο θα αυξηθεί κατά 10mV. Ο αισθητήρας LM35 δίνει στην έξοδο τάση από 0 έως 1V.
Το IC φέρει 3 ακροδέκτες (pin) και στην πλακέτα arduino συνδέουμε ως εξής:
- το αριστερό pin τροφοδοτείται με τάση 5V
- το μεσαίο pin συνδέεται στη γείωση
- το δεξί pin συνδέεται σε ένα αναλογικό κανάλι εισόδου της όπως εδώ στον ακροδέκτη A0.
Κώδικας
Στον κώδικα IDE, η είσοδος (τάση) κωδικοποιείται (από τον 10-bit μετατροπέα ADC) και αποθηκεύεται στη μεταβλητή reading. Συγκεκριμένα, η τιμή που επιστρέφει η συνάρτηση analogRead είναι μία τιμή από 0 έως 1023, η οποία χρειάζεται να μετατραπεί σε θερμοκρασία 0C. Είπαμε πριν ότι, κάθε 0,01V του αισθητήρα LM35 αντιστοιχεί σε 1 0C και πως ο αισθητήρας LM35 δίνει τάση από 0 έως 1V. Όμως, ο μετατροπέας ADC του Arduino έχει μέγιστη τιμή τάσης μέτρησης τα 5V. Αυτό σημαίνει πως δεν εκμεταλλευόμαστε το 80% του εύρους μέτρησης. Για να πετύχουμε το μέγιστο εύρος μέτρησης θα πρέπει να αλλάξουμε την τάση αναφοράς του μετατροπέα ADC σε 1.1V.
Αφού ορίσουμε την τάση αναφοράς, πολλαπλασιάσουμε την reading με 1,1/ (0,01*1024) = 1/ 9,31
Τέλος, ελέγχουμε τη θερμοκρασία περιβάλλοντος στη σειριακή οθόνη.
Κώδικας IDE
float temperature;
int reading;
int LM35Pin = 0;
void setup()
{
analogReference(INTERNAL); //Ορισμός της τάσης αναφοράς σε 1,1 V
Serial.begin(9600);
}
void loop()
{
reading = analogRead(LM35Pin);
temperature = reading / 9.31; //Υπολογισμός θερμοκρασίας
Serial.println(temperature);
delay(1000);
}
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου