Πίνακας περιεχομένων:

Αισθητήρας θερμοκρασίας DIY χρησιμοποιώντας μία δίοδο: 3 βήματα
Αισθητήρας θερμοκρασίας DIY χρησιμοποιώντας μία δίοδο: 3 βήματα

Βίντεο: Αισθητήρας θερμοκρασίας DIY χρησιμοποιώντας μία δίοδο: 3 βήματα

Βίντεο: Αισθητήρας θερμοκρασίας DIY χρησιμοποιώντας μία δίοδο: 3 βήματα
Βίντεο: Πώς να φτιάξετε ένα κύκλωμα αισθητήρα θερμοκρασίας χρησιμοποιώντας μια δίοδο 2024, Ιούλιος
Anonim
Αισθητήρας θερμοκρασίας DIY χρησιμοποιώντας μία δίοδο
Αισθητήρας θερμοκρασίας DIY χρησιμοποιώντας μία δίοδο
Αισθητήρας θερμοκρασίας DIY χρησιμοποιώντας μία δίοδο
Αισθητήρας θερμοκρασίας DIY χρησιμοποιώντας μία δίοδο

Ως εκ τούτου, ένα από τα γεγονότα σχετικά με τους κόμβους PN είναι ότι η πτώση της τάσης τους προς τα εμπρός αλλάζει ανάλογα με το ρεύμα που περνά και στη θερμοκρασία της διασταύρωσης επίσης, θα το χρησιμοποιήσουμε για να φτιάξουμε έναν απλό φθηνό αισθητήρα θερμοκρασίας.

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

Απλώς η πτώση τάσης προς τα εμπρός μιας διόδου (η οποία είναι ένας ενιαίος σύνδεσμος PN) αλλάζει καθώς αλλάζει η ποσότητα του ρεύματος που διέρχεται από αυτήν, καθώς και η θερμοκρασία της διόδου αλλάζει, η πτώση τάσης πρόκειται να αλλάξει (Καθώς η θερμοκρασία αυξάνεται, το εμπρός η πτώση μειώνεται κατά μια τιμή (1,0 milliVolts σε 2,0 milliVolts για διόδους πυριτίου και 2,5 milliVolts για διόδους γερμανίου).

Έτσι περνώντας ένα σταθερό ρεύμα μέσα από τη δίοδο, η πτώση της τάσης προς τα εμπρός θα πρέπει τώρα να ποικίλει μόνο ανάλογα με τη θερμοκρασία της διόδου. Απλώς τώρα πρέπει να μετρήσουμε την εμπρόσθια τάση της διόδου, να εφαρμόσουμε μερικές απλές εξισώσεις και voilà εδώ είναι ο αισθητήρας θερμοκρασίας σας !!!

Προμήθειες

1 - 1n4007 δίοδος #12 - 1 αντίσταση Kohm #13 - πίνακας Arduino

Βήμα 1: Διάγραμμα κυκλώματος

Διάγραμμα κυκλώματος
Διάγραμμα κυκλώματος

Όπως μπορείτε να δείτε στο σχηματικό είναι πολύ απλό. συνδέοντας τη δίοδο σε σειρά με μια αντίσταση περιορισμού ρεύματος και μια σταθερή πηγή τάσης μπορούμε να λάβουμε μια ακατέργαστη σταθερή πηγή ρεύματος, οπότε η μετρημένη τάση στη δίοδο θα ποικίλει μόνο λόγω της αλλαγής θερμοκρασίας. Βεβαιωθείτε ότι η τιμή της αντίστασης δεν είναι πολύ χαμηλό, ώστε πολύ ρεύμα να διέρχεται από τη δίοδο και να κάνει αισθητή την αυτοθέρμανση στη δίοδο, επίσης όχι πολύ υψηλή αντίσταση, οπότε η διέλευση ρεύματος δεν είναι αρκετή για να διατηρήσει μια γραμμική σχέση μεταξύ της τάσης προς τα εμπρός και της θερμοκρασίας.

μια αντίσταση 1 κιλού Ohm με τροφοδοσία 5V θα έχει ως αποτέλεσμα ένα ρεύμα διόδου 4 milliAmpre, το οποίο είναι επαρκής τιμή για το σκοπό αυτό. I (δίοδος) = VCC / (Rseries + Rdiode)

Βήμα 2: Κωδικοποίηση

Πρέπει να έχουμε κατά νου ότι υπάρχουν ορισμένες τιμές για να τροποποιήσετε τον κώδικα για να έχετε τα καλύτερα αποτελέσματα, όπως:

1 - VCC_Voltage: καθώς η τιμή analogRead () εξαρτάται από το VCC του τσιπ ATmega τότε πρέπει να το προσθέσουμε στην εξίσωση αφού το μετρήσουμε στον πίνακα arduino.

2 - V_OLD_0_C: η εμπρόσθια πτώση τάσης της χρησιμοποιούμενης δίοδος σε ρεύμα 4 mA και θερμοκρασία 0 Κελσίου

3 - Συντελεστής θερμοκρασίας: η κλίση θερμοκρασίας της δίοδος σας (καλύτερα να το πάρετε από το φύλλο δεδομένων) ή μπορείτε να το μετρήσετε χρησιμοποιώντας αυτήν την εξίσωση: Vnew - Vold = K (Tnew - Told)

όπου:

Vnew = πρόσφατα μετρημένη τάση πτώσης μετά τη θέρμανση της διόδου

Vold = μετρημένη τάση πτώσης σε κάποια θερμοκρασία δωματίου

Tnew = η θερμοκρασία όπου θερμάνθηκε η δίοδος

Told = η παλιά θερμοκρασία δωματίου στην οποία μετρήθηκε ο Vold

K = Temperature_Coefficient (αρνητική τιμή που κυμαίνεται μεταξύ -1,0 έως -2,5 milliVolts) Τέλος, μπορείτε τώρα να ανεβάσετε τον κωδικό και να λάβετε τα αποτελέσματα της θερμοκρασίας σας.

#define Sens_Pin A0 // PA0 για πίνακα STM32F103C8

διπλό V_OLD_0_C = 690,0; // 690 mV Εμπρός τάση στους 0 Κελσίου σε ρεύμα δοκιμής 4 mA

διπλό V_NEW = 0; // Νέα τάση προώθησης σε θερμοκρασία δωματίου σε 4 mA ρεύμα δοκιμής διπλή Θερμοκρασία = 0,0; // Υπολογιζόμενη θερμοκρασία δωματίου διπλή Temperature_Coefficient = -1.6; //-1,6 mV αλλαγή ανά βαθμό Κελσίου (-2,5 για διόδους γερμανίου), καλύτερα να λάβετε από το φύλλο δεδομένων της δίοδος διπλό VCC_Voltage = 5010,0; // Τάση που υπάρχει στη ράγα 5V του arduino σε milliVolts (απαιτείται για καλύτερη ακρίβεια) (3300.0 για stm32)

void setup () {

// βάλτε τον κωδικό εγκατάστασης εδώ, για να εκτελεστεί μία φορά: pinMode (Sens_Pin, INPUT); Serial.begin (9600); }

void loop () {

// βάλτε τον κύριο κωδικό σας εδώ, για να εκτελείται επανειλημμένα: V_NEW = analogRead (Sens_Pin)*VCC_Voltage/1024.0; // διαιρέστε με 4,0 αν χρησιμοποιείτε θερμοκρασία 12 bit ADC = ((V_NEW - V_OLD_0_C)/Temperature_Coefficient);

Serial.print ("Temp =");

Serial.print (Θερμοκρασία); Serial.println ("C");

καθυστέρηση (500)?

}

Βήμα 3: Αποκτήστε καλύτερες τιμές

Αποκτώντας καλύτερες αξίες
Αποκτώντας καλύτερες αξίες
Αποκτώντας καλύτερες αξίες
Αποκτώντας καλύτερες αξίες

Νομίζω ότι είναι σκόπιμο να έχετε μια αξιόπιστη συσκευή μέτρησης θερμοκρασίας δίπλα σας όταν κάνετε αυτό το έργο.

μπορείτε να δείτε ότι υπάρχει ένα αισθητό σφάλμα στις ενδείξεις που μπορεί να φτάσει στους 3 ή 4 βαθμούς Κελσίου, οπότε από πού προέρχεται αυτό το σφάλμα;

1 - ίσως χρειαστεί να τροποποιήσετε τις μεταβλητές που αναφέρονται στο προηγούμενο βήμα

2 - η ανάλυση ADC του arduino είναι χαμηλότερη από αυτή που χρειαζόμαστε για να ανιχνεύσουμε τη μικρή διαφορά τάσης

3 - η αναφορά τάσης του arduino (5V) είναι πολύ υψηλή για αυτή τη μικρή αλλαγή τάσης στην δίοδο

Έτσι, εάν πρόκειται να χρησιμοποιήσετε αυτήν τη ρύθμιση ως αισθητήρα θερμοκρασίας, θα πρέπει να γνωρίζετε ότι παρόλο που είναι φθηνό και εύχρηστο, δεν είναι ακριβές, αλλά μπορεί να σας δώσει μια πολύ καλή ιδέα για τη θερμοκρασία του συστήματός σας είτε είναι σε PCB ή τοποθετημένο σε λειτουργία μοτέρ κλπ…

Αυτό το διδακτικό πρέπει να χρησιμοποιεί τη μικρότερη δυνατή ποσότητα συστατικών, αλλά αν θέλετε να έχετε τα πιο ακριβή αποτελέσματα από αυτήν την ιδέα, μπορείτε να κάνετε μερικές αλλαγές:

1 - προσθέστε ορισμένες ενισχύσεις και στάδια φιλτραρίσματος χρησιμοποιώντας οπ -ενισχυτές όπως σε αυτόν τον σύνδεσμο2 - χρησιμοποιήστε χαμηλότερο εσωτερικό αναλογικό ελεγκτή αναφοράς ως πίνακες STM32F103C8 με αναλογική τάση αναφοράς 3,3 Volt (βλ. Σημείο 4) 3 - χρησιμοποιήστε την εσωτερική αναλογική αναφορά 1,1 V στο arduino, αλλά να γνωρίζετε ότι δεν μπορείτε να συνδέσετε περισσότερο από 1,1 Volt σε οποιαδήποτε από τις αναλογικές ακίδες arduino.

μπορείτε να προσθέσετε αυτήν τη γραμμή στη λειτουργία ρύθμισης:

analogReference (ΕΣΩΤΕΡΙΚΟ);

4 - Χρησιμοποιήστε έναν μικροελεγκτή που έχει ADC υψηλότερης ανάλυσης ως STM32F103C8 που έχει ανάλυση ADC 12 bit Έτσι, με λίγα λόγια, αυτή η ρύθμιση με βάση το arduino μπορεί να δώσει μια ωραία επισκόπηση της θερμοκρασίας του συστήματός σας αλλά όχι τόσο ακριβή αποτελέσματα (περίπου 4,88 mV/Ανάγνωση)

η ρύθμιση STM32F103C8 θα σας δώσει ένα αρκετά ακριβές αποτέλεσμα καθώς έχει υψηλότερο ADC 12-bit και χαμηλότερη αναλογική τιμή αναφοράς 3,3V (περίπου 0,8 mV/ανάγνωση)

Λοιπόν, αυτό είναι !!:ΡΕ

Συνιστάται: