Toplotno krmiljena vezja ventilatorja Arduino

Preizkusite Naš Instrument Za Odpravo Težav





V tem članku bomo izdelali nekaj preprostih tokokrogov ventilatorjev enosmernega toka, ki temeljijo na Arduinu, ki bodo vklopili ventilator ali druge pripomočke, povezane z njim, ko temperatura okolice doseže vnaprej določeno mejno vrednost. Za ta projekt bomo uporabili senzor DHT11 in arduino.

Pregled

Lepota mikrokrmilnikov je v tem, da imamo zelo natančen nadzor nad zunanjimi napravami, ki so nanj povezane. Pri tem projektu mora uporabnik v program vnesti samo pražno temperaturo, mikrokontroler bo poskrbel za preostanek funkcije.



Po internetu je na voljo ogromno projektov samodejnih regulatorjev temperature, ki ne temeljijo na mikrokrmilniku, na primer z uporabo primerjalnika in tranzistorjev.

So zelo preprosti in delujejo dobro, vendar se težava pojavi med kalibriranjem ravni praga z vnaprej nastavljenim uporom ali potenciometrom.



Med umerjanjem imamo slepo idejo in uporabnik bo morda moral uporabiti metodo poskusov in napak, da bo našel sladko točko.

Te težave odpravljajo mikrokrmilniki, uporabnik mora v tem projektu samo vnesti temperaturo v Celziju, zato ni potrebe po kalibraciji.

Ta projekt se lahko uporablja tam, kjer je treba stabilizirati notranjo temperaturo vezja ali ga prihraniti pred pregrevanjem.

V diagramu 1 kot izhod priključimo ventilator CPU. Ta nastavitev se lahko uporablja za nadzor notranje temperature okolice zaprtega kroga.

Ko je mejna temperatura dosežena, se ventilator vklopi. Ko temperatura pade pod prag temperature, se ventilator izklopi. Torej gre v bistvu za avtomatiziran postopek.

V diagramu 2 smo povezali rele za krmiljenje naprav, ki deluje na omrežno napetost, kot je namizni ventilator.

Ko sobna temperatura doseže mejno temperaturo, se ventilator vklopi in izklopi, ko se prostor ohladi.

To je morda najboljši način za varčevanje z energijo in to je lahko raj za lenuhe, ki želijo, da drugi vklopijo ventilator, ko se počutijo toplo.

Shema vezja, ki prikazuje krmiljenje enosmernega ventilatorja

DC krmiljenje ventilatorja za samodejno prilagajanje temperature

Ta nastavitev se lahko uporabi za vezja, ki so zaprta v škatli. LED se vklopi, ko doseže prednastavljeni prag, in vklopi tudi ventilator.

Priključitev releja za nadzor večjih ventilatorjev

Nadzor ventilatorja relejskega stikala s pomočjo temperaturnega senzorja Arduino

To vezje deluje podobno kot prejšnje vezje, zdaj je ventilator nadomeščen z relejem.

To vezje lahko krmili namizni ventilator ali stropni ventilator ali kateri koli drug pripomoček, ki lahko ohladi temperaturo okolice.

Priključena naprava se izklopi takoj, ko temperatura doseže pod prednastavljeno mejno vrednostjo.

Shema vezja ventilatorja z enosmernim tokom, prikazana tukaj, je le nekaj številnih možnosti. Vezje in program lahko prilagodite za svoj namen.

OPOMBA 1: #Pin 7 je izhod.

OPOMBA 2: Ta program je združljiv samo s senzorjem DHT11.

Program za zgoraj razloženo vezje samodejnega regulatorja temperature z uporabo Arduina:

Programska koda

//--------------------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---------------------//

Opomba: V programu

int th = 30 // nastavimo pražno temperaturo v Celzijah.

Zamenjajte '30' z želeno vrednostjo.

Drugi dizajn

Drugi spodaj obravnavani projekt krogotočnega ventilatorja enosmernega toka samodejno zazna temperaturo okolice in prilagodi hitrost motorja ventilatorja, da ohranja temperaturo okolice pod nadzorom. Ta samodejna obdelava poteka prek Arduina in temperaturnega senzorja IC LM35.

Avtor:Ankit Negi

NAŠ CILJ:

1). Takoj, ko se temperatura okolice poveča nad 25 stopinj Celzija (to vrednost lahko v programu spremenite glede na vaše potrebe, razloženo v delovnem poglavju), motor začne delovati.

2). In z vsako stopnjo dviga temperature se poveča tudi hitrost motorja.

3). Motor zažene pri svoji najvišji hitrosti takoj, ko se temperatura dvigne na 40 stopinj Celzija (to vrednost lahko spremenite v programu).

SENZOR TEMPERATURE LM35:

Da bi dosegli zgoraj omenjeno nalogo, bomo uporabili temp. Senzor LM35, saj se uporablja široko in lahko dostopno.

LM35 ima 3 nožice, kot lahko vidite na sliki.

LM35 IC pinout

1. Vin - ta zatič je povezan z enosmernim napajanjem med 4 in 20 v.
2. Vout - ta zatič daje izhod v obliki napetosti.
3. GND - ta zatič je povezan z gnd terminalom vezja.

LM35, ko je priključen na napajanje, zazna temperatura okolice in pošlje enakovredno napetost v skladu z dvigom temperature na stopinjo skozi svoj izhodni zatič.

LM35 lahko zazna katero koli temperaturo. med -50 stopinjami do +150 stopinjami Celzija in poveča moč za 10 milivoltov z 1 stopinjo dviga temperature. Tako je največja napetost, ki jo lahko odda kot izhod, 1,5 volta.

ZAKAJ ARDUINO ZA TAJ PROJEKT KRMILNIKA VENTILATORJA DC?

Arduino mora spremeniti analogno vrednost, prejeto z izhodnega zatiča LM35, na digitalno vrednost in pošlje ustrezen digitalni izhod (PWM) na bazo MOSFET-a.

Uporabili bomo tudi ukazi arduino za tiskanje temperature, ustrezna analogna vrednost in digitalni izhod v MOSFET na serijskem monitorju ARDUINO IDE.

KAKŠNA JE VLOGA MOČNEGA MOSFETA?

To vezje ne bo koristilo, če ne bo mogel zagnati motorja z visokim tokom. Za pogon takšnih motorjev se uporablja močnostni MOSFET.

ZAKAJ SE UPORABLJA DIODA?

Dioda se uporablja za zaščito MOSFET-a pred zadnjim EMF, ki ga ustvarja motor med tekom.

SEZNAM DELOV ZA PROJEKT:

1. LM35

2. ARDUINO

3. MOČNI MOSFET (IRF1010E)

MOČNI MOSFET (IRF1010E)

4. DIODA (1N4007)

DIODE (1N4007)

5. VENTILATOR (motor)

6. NAPAJANJE VENTILATORJA

KROG DIAGRAM:

Arduino nadzor temperature ventilatorja, odvisen od temperature

Vzpostavite povezave, kot je prikazano na vezju

a) Priključite vin pin lm358 na 5v arduino
b) Priključite vout pin lm358 na A0 arduino
c) Priključite ozemljitveni zatič lm358 na GND arduina
d) Priključite osnovo MOSFET-a na PWM zatič 10 arduina

KODA:

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
}
}

DELO (razumevanje kode):

A). SPREMENLJIVO X-

To je preprosto analogna vrednost, ki jo prejme pin št. A0 z izhodnega zatiča LM35.

B). SPREMENLJIVO IN-

Samo zaradi te spremenljivke naš motor ventilatorja deluje v skladu z ustrezno temperaturo. Ta spremenljivka naredi tako, da spremeni analogno vrednost, tj. Spremenljivko x, na ustrezno temperaturo okolice.

Y = (500 * x) / 1023
1. Prvo analogno vrednost je treba spremeniti v ustrezno napetost, tj.
1023: 5v
Torej, (5000 milivolt * x) / 1023 V
2. Zdaj vemo, da se za vsako stopnjo povišanja temperature ustrezna izhodna napetost poveča za 10 mv, tj.
1 stopinja Celzija: 10 milivoltov
Torej, (5000 milivolt * x) / (1023 * 10) STOPNJA

C). SPREMENLJIVO Z-

z = zemljevid (x, 0, 1023, 0,255)
ta spremenljivka spremeni analogno vrednost v digitalno vrednost za pwm izhod na pin 10.

OPOMBA :: Vemo, da lahko lm35 zagotavlja največ 1,5 volta in to tudi pri temp. Je 150 stopinj. kar ni praktično.

To pomeni, da za 40 stopinj Celzija dobimo 0,40 volta, za 25 stopinj pa 0,25 volta. Ker so te vrednosti za pravilno pwm na mosfetu zelo nizke, jo moramo pomnožiti s faktorjem.

Zato ga pomnožimo z 10 in namesto tega damo to vrednost kot analogni izhod na PWM pin 10, tj.

** analogWrite (10, z * 10)

Zdaj za .25 voltov dobi mosfet 0,25 * 10 = 2,5 voltov

Za .40 voltov mosfet dobi 0,40 * 10 = 4 volte, pri katerih motor skoraj deluje s polno hitrostjo

ZADEVA 1. Ko je temp. Je manj kot 25 stopinj

V tem primeru arduino pošlje 0 PWM napetosti na pin 10 kot v zadnji vrstici kode

** sicer
{analogWrite (10,0) // v vsakem drugem primeru mora biti PWM na zatiču 10 0
} **

Ker je pwm napetost na dnu MOSFET 0, ostane izklopljena in motor se odklopi iz vezja.

Glej simulirano vezje v tem primeru.

Simulacija nadzora ventilatorja Arduino

Kot lahko vidite, je temperatura torej 20 stopinj

Analogna vrednost = 41
Temperatura = 20
Preslikana vrednost = 100

Ker pa je temperatura manjša od 25 stopinj, dobi mosfet 0 voltov, kot je prikazano na sliki (označena z modro piko).
ZADEVA 2. Ko je temp. Je večja od 25 stopinj

Ko temperatura doseže 25 stopinj, se potem, kot je določeno v kodi, signal pwm pošlje na dno mosfet-a in z vsakim dvigom temperature se ta napetost PWM tudi poveča, tj.

if(y>25)
{analogWrite(10,z*10)
} which is z* 10.

Glej simulirano vezje v tem primeru.

Kot lahko vidite, ko se temperatura poveča od 20 stopinj na vse do 40 stopinj, se vse tri vrednosti spremenijo in pri 40 stopinjah Celzija

Analogna vrednost = 82
Temperatura = 40
Preslikana vrednost = 200

Ker je temperatura večja od 25 stopinj, dobi mosfet ustrezno napetost PWM, kot je prikazano na sliki (označena z rdečo piko).

Zato motor začne delovati pri 25 stopinjah in z ustreznim dvigom temperature na stopinjo se poveča tudi napetost pwm od zatiča 10 do osnove MOSFET-a. Zato se hitrost motorja s povečanjem temperature linearno poveča in postane skoraj največja za 40 stopinj Celzija.

Če imate dodatna vprašanja glede zgoraj pojasnjenega avtomatskega vezja enosmernega ventilatorja z regulacijo temperature z uporabo ventilatorja in Arduina, lahko vedno uporabite spodnje polje za komentar in nam pošljete svoje misli. Poskusili se bomo vrniti čim prej.




Prejšnja: Enostavno zaščitno vezje hladilnika Naprej: Kako oblikovati vezje neprekinjenega napajanja (UPS)