Σε αυτό το άρθρο πρόκειται να κατασκευάσουμε μερικά απλά κυκλώματα αυτόματου ελεγχόμενης θερμοκρασίας με βάση το Arduino που θα ενεργοποιούν έναν ανεμιστήρα ή οποιαδήποτε άλλα gadget που είναι συνδεδεμένα σε αυτόν, όταν η θερμοκρασία περιβάλλοντος φτάσει σε ένα προκαθορισμένο επίπεδο κατωφλίου. Θα χρησιμοποιήσουμε τον αισθητήρα DHT11 και το arduino για αυτό το έργο.
ΣΦΑΙΡΙΚΗ ΕΙΚΟΝΑ
Η ομορφιά των μικροελεγκτών είναι ότι, έχουμε πολύ ακριβή έλεγχο των περιφερειακών που συνδέονται με αυτό. Σε αυτό το έργο ο χρήστης πρέπει απλώς να εισαγάγει τη θερμοκρασία κατωφλίου στο πρόγραμμα, ο μικροελεγκτής θα φροντίσει για την υπόλοιπη λειτουργία.
Υπάρχουν τόνοι έργων αυτόματου ελεγκτή θερμοκρασίας που δεν βασίζονται σε μικροελεγκτή διαθέσιμα στο Διαδίκτυο, όπως η χρήση συγκριτών και τρανζίστορ.
Είναι πολύ απλοί και λειτουργούν καλά αλλά, το πρόβλημα προκύπτει κατά τη βαθμονόμηση του επιπέδου κατωφλίου χρησιμοποιώντας προκαθορισμένη αντίσταση ή ποτενσιόμετρο.
Έχουμε μια τυφλή ιδέα κατά τη βαθμονόμηση της και ο χρήστης μπορεί να χρειαστεί να κάνει μέθοδο δοκιμής και σφάλματος για να βρει το γλυκό σημείο.
Αυτά τα προβλήματα ξεπερνούνται από μικροελεγκτές, ο χρήστης πρέπει απλώς να εισαγάγει τη θερμοκρασία σε Κελσίου σε αυτό το έργο, οπότε δεν χρειάζεται βαθμονόμηση.
Αυτό το έργο μπορεί να χρησιμοποιηθεί όπου η εσωτερική θερμοκρασία του κυκλώματος πρέπει να σταθεροποιηθεί ή να το σώσει από την υπερθέρμανση.
Στο διάγραμμα 1, συνδέουμε έναν ανεμιστήρα CPU ως έξοδο. Αυτή η ρύθμιση μπορεί να χρησιμοποιηθεί για τον έλεγχο της εσωτερικής θερμοκρασίας περιβάλλοντος ενός κλειστού κυκλώματος.
Όταν επιτευχθεί η θερμοκρασία κατωφλίου, ο ανεμιστήρας ανάβει. Όταν η θερμοκρασία πέσει κάτω από το κατώφλι, ο ανεμιστήρας θερμοκρασίας σβήνει. Είναι βασικά μια αυτοματοποιημένη διαδικασία.
Στο διάγραμμα 2, συνδέσαμε ένα ρελέ για τον έλεγχο συσκευών που λειτουργούν με τάση δικτύου, όπως ανεμιστήρα πίνακα.
Όταν η θερμοκρασία του δωματίου φτάσει τη θερμοκρασία κατωφλίου, ο ανεμιστήρας ανάβει και σβήνει όταν το δωμάτιο κρυώσει.
Αυτός μπορεί να είναι ο καλύτερος τρόπος εξοικονόμησης ενέργειας και αυτός μπορεί να είναι ο παράδεισος για τους τεμπέληδες που επιθυμούν οι άλλοι να ανάψουν τον ανεμιστήρα όταν αισθάνονται ζεστά.
Διάγραμμα κυκλώματος που δείχνει ένα στοιχείο ελέγχου ανεμιστήρα DC
Αυτή η εγκατάσταση μπορεί να αναπτυχθεί για κυκλώματα που περικλείονται σε ένα κουτί. Η λυχνία LED ανάβει όταν φτάσει το προκαθορισμένο επίπεδο κατωφλίου και ενεργοποιείται επίσης ο ανεμιστήρας
Σύνδεση ρελέ για έλεγχο μεγαλύτερων ανεμιστήρων
Αυτό το κύκλωμα κάνει την ίδια λειτουργία του προηγούμενου κυκλώματος, τώρα ο ανεμιστήρας αντικαθίσταται από ρελέ.
Αυτό το κύκλωμα μπορεί να ελέγξει έναν ανεμιστήρα επιτραπέζιου ή ανεμιστήρα οροφής ή οποιοδήποτε άλλο gadget που μπορεί να κρυώσει τη θερμοκρασία περιβάλλοντος.
Η συνδεδεμένη συσκευή απενεργοποιείται μόλις η θερμοκρασία φτάσει κάτω από το προκαθορισμένο επίπεδο κατωφλίου.
Το διάγραμμα κυκλώματος ανεμιστήρα DC ελεγχόμενης θερμοκρασίας που απεικονίζεται εδώ είναι λίγες μόνο από πολλές δυνατότητες. Μπορείτε να προσαρμόσετε το κύκλωμα και το πρόγραμμα για τον δικό σας σκοπό.
ΣΗΜΕΙΩΣΗ 1: Το #Pin 7 είναι έξοδος.
ΣΗΜΕΙΩΣΗ 2: Αυτό το πρόγραμμα είναι συμβατό μόνο με αισθητήρα DHT11 μόνο.
Πρόγραμμα για το παραπάνω εξηγημένο κύκλωμα αυτόματου ρυθμιστή θερμοκρασίας χρησιμοποιώντας το Arduino:
Κωδικός προγράμματος
Σημείωση: Στο πρόγραμμα int th = 30 // ορίστε τη θερμοκρασία κατωφλίου σε Κελσίου. Αντικαταστήστε το '30' με την επιθυμητή τιμή. Δεύτερο σχέδιο Το δεύτερο έργο κυκλώματος ανεμιστήρα dc ελεγχόμενης θερμοκρασίας που περιγράφεται παρακάτω ανιχνεύει αυτόματα τη θερμοκρασία περιβάλλοντος και ρυθμίζει την ταχύτητα του κινητήρα του ανεμιστήρα για να διατηρεί τον περιβάλλοντα έλεγχο υπό έλεγχο. Αυτή η αυτόματη επεξεργασία γίνεται μέσω ενός Arduino και ενός αισθητήρα θερμοκρασίας IC LM35. Με:Ankit Negi 1). Μόλις η θερμοκρασία του περιβάλλοντος αυξηθεί πάνω από 25 βαθμούς Κελσίου (μπορείτε να αλλάξετε αυτήν την τιμή στο πρόγραμμα ανάλογα με τις ανάγκες σας, εξηγείται στην ενότητα εργασίας) ο κινητήρας αρχίζει να λειτουργεί. 2). Και με κάθε βαθμό αύξησης της θερμοκρασίας, η ταχύτητα του κινητήρα αυξάνεται επίσης. 3). Ο κινητήρας λειτουργεί με την τελική του ταχύτητα μόλις η θερμοκρασία αυξηθεί στους 40 βαθμούς Κελσίου (αυτή η τιμή μπορεί να αλλάξει στο πρόγραμμα). Για να επιτύχουμε την εργασία που αναφέρθηκε παραπάνω, θα χρησιμοποιήσουμε τη θερμοκρασία. Αισθητήρας LM35 καθώς χρησιμοποιείται ευρέως και εύκολα διαθέσιμος. Το LM35 έχει 3 ακίδες όπως μπορείτε να δείτε στο σχήμα. 1. Vin - αυτός ο πείρος συνδέεται με τροφοδοσία DC μεταξύ 4 και 20 v. Το LM35, όταν συνδέεται με τροφοδοτικό, ανιχνεύει το θερμοκρασία περιβάλλοντος και στέλνει ισοδύναμη τάση σύμφωνα με την ανά βαθμό αύξηση της θερμοκρασίας μέσω του πείρου εξόδου του. Το LM35 μπορεί να αισθανθεί οποιαδήποτε θερμοκρασία. από -50 βαθμούς έως +150 βαθμούς Κελσίου και αυξάνει την παραγωγή κατά 10 millivolts με αύξηση 1 θερμοκρασίας. Έτσι, η μέγιστη τάση που μπορεί να δώσει καθώς η έξοδος είναι 1,5 βολτ. Το Arduino απαιτείται για να αλλάξει την αναλογική τιμή που λαμβάνεται από τον πείρο εξόδου του LM35 σε ψηφιακή τιμή και στέλνει την αντίστοιχη ψηφιακή έξοδο (PWM) στη βάση του mosfet. Θα χρησιμοποιήσουμε επίσης Arduino εντολές για εκτύπωση θερμοκρασίας, αντίστοιχη αναλογική τιμή και ψηφιακή έξοδος στο mosfet σε σειριακή οθόνη του ARDUINO IDE. Αυτό το κύκλωμα δεν θα είναι χρήσιμο εάν δεν μπορεί να τρέξει κινητήρα υψηλού ρεύματος. Ως εκ τούτου για την εκτέλεση τέτοιων κινητήρων χρησιμοποιείται το mosfet. Η δίοδος χρησιμοποιείται για την προστασία του mosfet από το πίσω μέρος E.M.F που παράγεται από τον κινητήρα κατά την εκτέλεση. 1. LM35 2. ARDUINO 3. POWER MOSFET (IRF1010E) 4. ΔΙΟΔΟΣ (1N4007) 5. Ανεμιστήρας (κινητήρας) 6. ΠΡΟΜΗΘΕΙΑ ΑΥΤΟΚΙΝΗΤΟΥ Πραγματοποιήστε συνδέσεις όπως φαίνεται στο διάγραμμα κυκλώματος. a) Συνδέστε το πινέλο του lm358 σε 5v του arduino ΕΝΑ). ΔΙΑΦΟΡΑ X- Αυτή είναι απλώς η αναλογική τιμή που λαμβάνεται από τον αριθμό pin. A0 από τον πείρο εξόδου του LM35. ΣΙ). ΜΕΤΑΒΛΗΤΕΣ ΚΑΙ- Λόγω αυτής της μεταβλητής μόνο, ο κινητήρας ανεμιστήρα λειτουργεί σύμφωνα με την αντίστοιχη θερμοκρασία. Αυτό που κάνει αυτή η μεταβλητή είναι να αλλάξει την αναλογική τιμή, δηλαδή τη μεταβλητή x στην αντίστοιχη θερμοκρασία του περιβάλλοντος. Υ = (500 * x) / 1023 ΝΤΟ). ΔΙΑΦΟΡΑ Ζ- z = χάρτης (x, 0, 1023, 0,255) ΣΗΜΕΙΩΣΗ :: Γνωρίζουμε ότι το lm35 μπορεί να παρέχει μέγιστο 1,5 volt και αυτό επίσης όταν η θερμοκρασία. Είναι 150 βαθμοί. που δεν είναι πρακτικό. Αυτό σημαίνει ότι για 40 βαθμούς Κελσίου παίρνουμε 0,40 βολτ και για 25 βαθμούς παίρνουμε 0,25 βολτ. Δεδομένου ότι αυτές οι τιμές είναι πολύ χαμηλές για το σωστό pwm στο mosfet, πρέπει να τον πολλαπλασιάσουμε με έναν παράγοντα. Ως εκ τούτου το πολλαπλασιάζουμε με 10 και αντ 'αυτού δίνουμε αυτήν την τιμή ως αναλογική έξοδο στον ακροδέκτη PWM 10, δηλ. ** analogWrite (10, z * 10) Τώρα, για 0,25 βολτ το mosfet παίρνει 0,25 * 10 = 2,5 βολτ Για 0,40 βολτ το mosfet παίρνει 0,40 * 10 = 4 βολτ με τον οποίο ο κινητήρας λειτουργεί σχεδόν σε πλήρη ταχύτητα ΠΕΡΙΠΤΩΣΗ 1. Όταν η θερμοκρασία. Είναι λιγότερο από 25 βαθμούς Σε αυτήν την περίπτωση, το arduino στέλνει 0 τάση PWM στον ακροδέκτη 10 όπως στην τελευταία γραμμή κώδικα ** αλλιώς Επειδή η τάση pwm στη βάση του mosfet είναι 0, παραμένει απενεργοποιημένη και ο κινητήρας αποσυνδέεται από το κύκλωμα. Δείτε το προσομοιωμένο κύκλωμα σε αυτήν την περίπτωση. Όπως μπορείτε να δείτε, η θερμοκρασία είναι 20 βαθμός ως εκ τούτου Αναλογική τιμή = 41 Αλλά επειδή η θερμοκρασία είναι μικρότερη από 25 βαθμούς, ως εκ τούτου το mosfet παίρνει 0 volt όπως φαίνεται στο σχήμα (υποδεικνύεται με μπλε κουκκίδα). Όταν η θερμοκρασία φτάσει τους 25 βαθμούς, τότε όπως ορίζεται στον κωδικό, το σήμα pwm αποστέλλεται στη βάση του mosfet και με κάθε βαθμό αύξησης της θερμοκρασίας, αυτή η τάση PWM αυξάνεται, δηλαδή. Δείτε το προσομοιωμένο κύκλωμα σε αυτήν την περίπτωση. Όπως μπορείτε να δείτε καθώς η θερμοκρασία αυξάνεται από 20 βαθμούς έως και 40 βαθμούς, και οι τρεις τιμές αλλάζουν και στους 40 βαθμούς Κελσίου Αναλογική τιμή = 82 Δεδομένου ότι η θερμοκρασία είναι μεγαλύτερη από 25 βαθμούς, ως εκ τούτου το mosfet λαμβάνει αντίστοιχη τάση PWM όπως φαίνεται στο σχήμα (υποδεικνύεται με κόκκινη κουκκίδα). Ως εκ τούτου, ο κινητήρας αρχίζει να λειτουργεί στους 25 βαθμούς και με αντίστοιχη αύξηση της θερμοκρασίας ανά βαθμό, η τάση pwm από τον πείρο 10 στη βάση του mosfet αυξάνεται επίσης. Ως εκ τούτου, η ταχύτητα του κινητήρα αυξάνεται γραμμικά με την αύξηση της θερμοκρασίας και γίνεται σχεδόν μέγιστη για 40 βαθμούς Κελσίου. Εάν έχετε περαιτέρω απορίες σχετικά με το παραπάνω εξηγημένο κύκλωμα ανεμιστήρα συνεχούς ελέγχου ελεγχόμενης θερμοκρασίας χρησιμοποιώντας ανεμιστήρα και Arduino, μπορείτε πάντα να χρησιμοποιήσετε το παρακάτω πλαίσιο σχολίων και να μας στείλετε τις σκέψεις σας. Θα προσπαθήσουμε να επιστρέψουμε το νωρίτερο.//--------------------Program developed by R.Girish---------------------//
#include
dht DHT
#define DHTxxPIN A1
int p = A0
int n = A2
int ack
int op = 7
int th = 30 // set thershold tempertaure in Celsius
void setup(){
Serial.begin(9600) // May be removed after testing
pinMode(p,OUTPUT)
pinMode(n,OUTPUT)
pinMode(op,OUTPUT)
digitalWrite(op,LOW)
}
void loop()
{
digitalWrite(p,1)
digitalWrite(n,0)
ack=0
int chk = DHT.read11(DHTxxPIN)
switch (chk)
{
case DHTLIB_ERROR_CONNECT:
ack=1
break
}
if(ack==0)
{
// you may remove these lines after testing, from here
Serial.print('Temperature(°C) = ')
Serial.println(DHT.temperature)
Serial.print('Humidity(%) = ')
Serial.println(DHT.humidity)
Serial.print('
')
// To here
if (DHT.temperature>=th)
{
delay(3000)
if(DHT.temperature>=th) digitalWrite(op,HIGH)
}
if(DHT.temperature {
delay(3000)
if(DHT.temperature }
}
if(ack==1)
{
// may be removed after testing from here
Serial.print('NO DATA')
Serial.print('
')
// To here
digitalWrite(op,LOW)
delay(500)
}
}
//-------------------------Program developed by R.Girish---------------------// Ο ΣΤΟΧΟΣ ΜΑΣ:
ΑΙΣΘΗΤΗΡΑ ΘΕΡΜΟΚΡΑΣΙΑΣ LM35:
2. Vout - αυτός ο πείρος δίνει έξοδο με τη μορφή τάσης.
3. GND - αυτός ο πείρος συνδέεται με τον τερματικό gnd του κυκλώματος. ΓΙΑΤΙ ARDUINO ΓΙΑ ΑΥΤΟ ΤΟ ΕΡΓΟ ΕΛΕΓΧΟΥ DC FAN;
ΤΙ ΕΙΝΑΙ Ο ΡΟΛΟΣ ΤΟΥ MOSFET POWER;
ΓΙΑΤΙ ΧΡΗΣΙΜΟΠΟΙΕΙΤΑΙ Η ΔΙΩΔΗ;
ΚΑΤΑΛΟΓΟΣ ΜΕΡΩΝ ΓΙΑ ΤΟ ΕΡΓΟ:
ΔΙΑΓΡΑΜΜΑ ΚΥΚΛΩΜΑΤΟΣ:
β) Συνδέστε τον ακροδέκτη του lm358 στο A0 του arduino
γ) Συνδέστε τον πείρο γείωσης lm358 στο GND του arduino
δ) Συνδέστε τη βάση του mosfet στον ακροδέκτη PWM 10 του arduino ΚΩΔΙΚΑΣ:
float x// initialise variables
int y
int z
void setup()
{
pinMode(A0,INPUT) // initialize analog pin A0 as input pin
Serial.begin(9600) // begin serial communication
pinMode(10,OUTPUT) // initialize digital pin 10 as output pin
}
void loop()
{
x=analogRead(A0) // read analog value from sensor's output pin connected to A0 pin
y=(500*x)/1023// conversion of analog value received from sensor to corresponding degree Celsius (*formula explained in working section)
z=map(x,0,1023,0,255) // conversion of analog value to digital value
Serial.print('analog value ')
Serial.print( x) // print analog value from sensor's output pin connected to A0 pin on serial monitor( called 'analog value')
Serial.print(' temperature ')
Serial.print( y) // print the temprature on serial monitor( called 'temprature')
Serial.print(' mapped value ')
Serial.print( z*10) // multiply mapped value by 10 and print it ( called ' mapped value ' )
Serial.println()
delay(1000) // 1 sec delay between each print.
if(y>25)
{analogWrite(10,z*10) // when temp. rises above 25 deg, multiply digital value by 10 and write it on PWM pin 10 ( ** explained in working section)
}
else
{analogWrite(10,0) // in any other case PWM on pin 10 must be 0
}
} ΕΡΓΑΣΙΑ (κωδικός κατανόησης):
1. Η πρώτη αναλογική τιμή πρέπει να αλλάξει στην αντίστοιχη τάση, δηλαδή
1023: 5ν
Ως εκ τούτου, (5000 millivolt * x) / 1023 V
2. Τώρα γνωρίζουμε ότι για κάθε βαθμό αύξηση της θερμοκρασίας, η αντίστοιχη έξοδος τάσης αυξάνεται κατά 10 mv, δηλαδή.
1 βαθμός Κελσίου: 10 millivolts
Ως εκ τούτου, (5000 millivolt * x) / (1023 * 10) DEGREE
Αυτή η μεταβλητή αλλάζει την αναλογική τιμή σε ψηφιακή τιμή για έξοδο pwm στον ακροδέκτη 10.
{analogWrite (10,0) // σε κάθε άλλη περίπτωση το PWM στον ακροδέκτη 10 πρέπει να είναι 0
} **
Θερμοκρασία = 20
Αντιστοιχισμένη τιμή = 100
ΠΕΡΙΠΤΩΣΗ 2. Όταν η θερμοκρασία. Είναι μεγαλύτερη από 25 μοίρεςif(y>25)
{analogWrite(10,z*10)
} which is z* 10.
Θερμοκρασία = 40
Αντιστοιχισμένη τιμή = 200
Προηγούμενο: Απλό κύκλωμα προστασίας ψυγείου Επόμενο: Πώς να σχεδιάσετε ένα κύκλωμα αδιάλειπτης τροφοδοσίας (UPS)