microdev.gr




Περιγραφή-Σκοπός της εφαρμογής

Το LM35 είναι ο πιο φθηνός και απλός αισθητήρας θερμοκρασίας που μπορείτε να χρησιμοποιήσετε. Μετρά αρνητικές θερμοκρασίας, αλλά και θετικές μέχρι τους 150 βαθμούς κελσίου. Η έξοδος που δίνει είναι 10mV/βαθμό κελσίου. Στην εφαρμογή δοκιμάζουμε αυτό τον αισθητήρα και πολύ περισσότερο, εξοικειωνόμαστε με την έξοδο της μονάδας ADC η οποία αντιστοιχίζεται αυτόματα με τη μετρούμενη αναλογική τάση. Η τάση προέρχεται από την αναλογική έξοδο του αισθητήρα. Στους 150 βαθμούς κελσίου, θα έχει έξοδο 10mV x 150oC, δηλαδή 1500mV=1.5V. Φυσικά, μετρώντας θερμοκρασία περιβάλλοντος, δεν μπορεί να ξεπεράσει τα 500mV έξοδο. Λόγω του μικρού εύρους εξόδου, μπορούμε να ρυθμίσουμε την τάση αναφοράς για να βελτιώσουμε την αντίστοιχη ακρίβεια.

Βίντεο Εφαρμογής

Το βίντεο που ακολουθεί είναι για τον αισθητήρα LM35.

Απαραίτητα Εξαρτήματα

1. Arduino UNO

2. Καλώδιο σύνδεσης USB (type-A to type-B)

3. Breadboard

4. Τρία Καλώδια αρσενικό-αρσενικό)

5. Αισθητήρας θερμοκρασίας LM35

Κύκλωμα

Προσομοίωση χωρίς εξοπλισμό

T I N K E R C A D

Μελετήστε και δοκιμάστε το κύκλωμα στον προσομοιωτή TinkerCAD. Απαιτείται μόνο να έχετε δωρεάν λογαριασμό. Δεν χρειάζεται να έχετε εξοπλισμό, ενώ μπορείτε να κάνετε οποιαδήποτε αλλαγή στον αντίστοιχο κώδικα.
Προσοχή: Στο TinkerCAD υπάρχει ο αισθητήρας TMP36 που είναι αντίστοιχος με τον LM35 Προσομοιώστε την εφαρμογή >>

Συνδέσεις

Ακροδέκτης Arduino
Ακροδέκτης LM35
A0
μεσαίος
5V
αριστερός
GND
δεξιός

Κώδικας (χωρίς σχόλια) στο Arduino IDE

void setup()
{
Serial.begin(9600);
}
void loop()
{
int m=analogRead(0);
Serial.print(m);
float vin=m*4.88;
Serial.print("==>");
Serial.print(vin);
Serial.print("mV ==>");
float tmp=map(m,20,358,-40,125);
Serial.print(tmp);
Serial.println("oC");
delay(1000);
}

Κώδικας (με σχόλια) στο Arduino IDE

void setup()
{
Serial.begin(9600);
}
void loop()
{
int m=analogRead(0);
Serial.print(m);
float vin=m*4.88;
Serial.print("==>");
Serial.print(vin);
Serial.print("mV ==>");
float tmp=map(m,20,358,-40,125);
Serial.print(tmp);
Serial.println("oC");
delay(1000);
}