Kinokontrol ng Temperatura ng Arduino na DC Fan Circuits

Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema





Sa artikulong ito ay magtatayo kami ng isang simpleng Arduino batay sa awtomatikong kinokontrol na temperatura ng dc fan circuit na lilipat SA isang tagahanga o anumang iba pang mga gadget na konektado dito, kapag ang temperatura sa paligid ay umabot sa paunang natukoy na antas ng threshold. Gagamitin namin ang DHT11 sensor at arduino para sa proyektong ito.

Pangkalahatang-ideya

Ang kagandahan ng mga microcontroller ay iyon, nakakakuha kami ng napaka tumpak na kontrol sa mga peripheral na konektado dito. Sa proyektong ito kailangan lamang ng user na mag-input ng temperatura ng threshold sa programa, ang microcontroller ang mag-iingat sa natitirang pagpapaandar.



Mayroong tone-toneladang mga proyekto na hindi pang-microcontroller na batay sa awtomatikong temperatura na magagamit sa paligid ng internet, tulad ng paggamit ng kumpare at transistors.

Ang mga ito ay napaka-simple at gumagana ang mga ito ng maayos ngunit, ang problema arises habang calibrating ang antas ng threshold gamit ang preset risistor o potentiometer.



Mayroon kaming isang bulag na ideya habang ini-calibrate ito at maaaring kailanganin ng gumagamit na gawin ang trial at error na pamamaraan upang makita ang matamis na lugar.

Ang mga problemang ito ay nalampasan ng mga microcontroller, kailangang ipasok lamang ng gumagamit ang temperatura sa Celsius sa proyektong ito, kaya hindi na kailangan para sa pagkakalibrate.

Ang proyektong ito ay maaaring magamit kung saan ang panloob na temperatura ng circuit ay kailangang patatagin o i-save ito mula sa sobrang pag-init.

Sa diagram 1, kumokonekta kami sa isang CPU fan bilang output. Ang setup na ito ay maaaring magamit upang makontrol ang panloob na temperatura ng paligid ng isang nakapaloob na circuit.

Kapag naabot ang temperatura ng threshold ang fan ay nakabukas. Kapag ang temperatura ay napupunta sa ibaba threshold temperatura fan ay naka-off. Kaya karaniwang ito ay isang awtomatikong proseso.

Sa diagram 2, kumonekta kami ng isang relay para sa pagkontrol ng mga aparato na tumatakbo sa boltahe ng mains tulad ng table fan.

Kapag ang temperatura ng kuwarto ay umabot sa temperatura ng threshold ang fan ay nakabukas at papatayin kapag lumamig ang silid.

Ito ay maaaring ang pinakamahusay na paraan para sa pag-save ng lakas at ito ay maaaring maging langit para sa mga tamad na tao na hinahangad na ilipat ng iba ang fan kapag naramdaman nilang mainit.

Circuit Diagram Ipinapakita ang isang DC Fan Control

Ang kontrol ng fan ng DC para sa temperatura ay awtomatikong ayusin

Ang pag-setup na ito ay maaaring i-deploy para sa mga circuit na nakapaloob sa isang kahon. NAKA-ON ang LED nang maabot ang preset level ng threshold at i-ON din ang fan.

Pagkonekta ng isang Relay para sa Pagkontrol ng Mas Malaking Mga Tagahanga

Relay switch fan control gamit ang Arduino temperatura sensor

Ginagawa ng circuit na ito ang katulad na pagpapaandar ng nakaraang circuit, ngayon ang fan ay pinalitan ng relay.

Maaaring kontrolin ng circuit na ito ang isang fan ng mesa o fan ng kisame o anumang iba pang gadget na maaaring magpalamig ng temperatura sa paligid.

Ang naka-konektang aparato ay papatay sa lalong madaling umabot ang temperatura sa ibaba ng presetang antas ng threshold.

Ang kontroladong temperatura ng dc fan circuit diagram na nakalarawan dito ay ilan lamang sa maraming mga posibilidad. Maaari mong ipasadya ang circuit at programa para sa iyong sariling layunin.

TANDAAN 1: Ang # Pin 7 ay output.

TANDAAN 2: Ang program na ito ay katugma lamang sa DHT11 sensor lamang.

Ipinaliwanag ng programa para sa nabanggit na awtomatikong temperatura regulator circuit gamit ang Arduino:

Code ng Programa

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

Tandaan: Sa programa

int th = 30 // itakda ang temperatura ng threshold sa Celsius.

Palitan ang '30' ng nais na halaga.

Pangalawang Disenyo

Ang pangalawang temperatura na kinokontrol na dc fan circuit project na tinalakay sa ibaba ay awtomatikong nararamdaman ang temperatura ng paligid at inaayos ang bilis ng fan motor upang mapanatili ang kontrol ng nakapalibot na temperatura. Ang awtomatikong pagproseso na ito ay ginagawa sa pamamagitan ng isang Arduino at isang temperatura sensor IC LM35.

Ni:Ankit Negi

ATING LAYUNIN:

1). Sa sandaling ang temperatura ng nakapaligid na pagtaas ng higit sa 25 degree Celsius (maaari mong baguhin ang halagang ito sa programa alinsunod sa iyong pangangailangan, ipinaliwanag sa seksyon ng pagtatrabaho) ang motor ay nagsisimulang tumakbo.

2). At sa bawat antas ng pagtaas ng temperatura, tumataas din ang bilis ng motor.

3). Ang motor ay tumatakbo sa pinakamataas na bilis nito sa lalong madaling pagtaas ng temperatura sa 40 degree Celsius (ang halagang ito ay maaaring mabago sa programa).

TEMPERATURE SENSOR LM35:

Upang makamit ang gawaing nabanggit sa itaas, gagamitin namin ang temp. Ang Sensor LM35 dahil ginagamit ito ng malawak at madaling magagamit.

Ang LM35 ay may 3 mga pin tulad ng nakikita mo sa figure.

LM35 IC pinout

1. Vin-- ang pin na ito ay konektado sa dc power supply sa pagitan ng 4 hanggang 20 v.
2. Vout-- ang pin na ito ay nagbibigay ng output sa anyo ng boltahe.
3. GND-- ang pin na ito ay konektado sa gnd terminal ng circuit.

LM35, kapag nakakonekta sa power supply ay nararamdaman ang temperatura ng paligid at nagpapadala ng katumbas na boltahe alinsunod sa pagtaas ng degree sa temperatura sa pamamagitan ng output pin.

Ang LM35 ay maaaring makaramdam ng anumang temp. sa pagitan ng -50 degree hanggang +150 degree Celsius at pinapataas ang output ng 10 millivolts na may 1 degree na pagtaas ng temperatura. Kaya maximum na boltahe maaari itong ibigay bilang output ay 1.5 volts.

BAKIT ARDUINO PARA SA DC FAN CONTROLLER PROJECT NA ITO?

Kinakailangan ng Arduino na baguhin ang halagang analog na natanggap mula sa output pin ng LM35 sa digital na halaga at ipinapadala ang kaukulang digital output (PWM) sa base ng mosfet.

Gagamitin din namin utos ng arduino na mag-print ng temperatura, kaukulang halaga ng analog at digital na output sa mosfet sa serial monitor ng ARDUINO IDE.

ANO ANG ROLE NG POWER MOSFET?

Ang circuit na ito ay walang silbi kung hindi ito maaaring magpatakbo ng mataas na kasalukuyang motor. Samakatuwid upang patakbuhin ang nasabing motorsiklo kapangyarihan mosfet ay ginagamit.

BAKIT DIODE GAMIT?

Ginagamit ang diode upang maprotektahan ang mosfet mula sa likod ng E.M.F na nabuo ng motor habang tumatakbo.

MGA LISTAHAN NG BAHAGI PARA SA PROYEKTO:

1. LM35

2. ARDUINO

3. POWER MOSFET (IRF1010E)

POWER MOSFET (IRF1010E)

4. DIODE (1N4007)

DIODE (1N4007)

5. Tagahanga (motor)

6. FAN POWER SUPPLY

DIIRA NG CIRCUIT:

Nakasalalay sa temperatura ng kontrol ng fan ng DC ng Arduino

Gumawa ng mga koneksyon tulad ng ipinapakita sa circuit diagram.

a) Ikonekta ang vin pin ng lm358 sa 5v ng arduino
b) Ikonekta ang vout pin ng lm358 sa A0 ng arduino
c) Ikonekta ang ground pin ng lm358 sa GND ng arduino
d) Ikonekta ang base ng mosfet sa PWM pin 10 ng arduino

CODE:

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

TRABAHO (pag-unawa sa code):

A). VARIABLE X-

Ito ay simpleng halaga ng analog na natanggap ng pin no. A0 mula sa output pin ng LM35.

B). VARIABLE AT-

Dahil lamang sa variable na ito, tumatakbo ang aming fan motor alinsunod sa katumbas na temperatura. Ang ginagawa ng variable na ito ay binabago nito ang halagang analog na ie variable x sa kaukulang temperatura ng paligid.

Y = (500 * x) / 1023
1. Ang unang halagang analog ay dapat mabago sa kaukulang boltahe ibig sabihin
1023: 5v
Samakatuwid, (5000 millivolt * x) / 1023 V
2. Ngayon alam natin na para sa bawat degree na pagtaas ng temperatura na tumutugma sa output ng boltahe ay tumataas ng 10 mv i.e.
1 degree Celsius: 10 millivolts
Samakatuwid, (5000 millivolt * x) / (1023 * 10) DEGREE

C). VARIABLE Z-

z = mapa (x, 0, 1023, 0,255)
binabago ng variable na ito ang halagang analog sa digital na halaga para pwm output sa pin 10.

TANDAAN :: Alam namin na ang lm35 ay maaaring magbigay ng maximum na 1.5 volt at iyon din kapag temp. Ay 150 deg. na hindi praktikal.

Nangangahulugan ito para sa 40 degree Celsius nakakakuha kami ng 0.40 volts at para sa 25 degree nakakakuha tayo ng 0.25 volts. Dahil ang mga halagang ito ay napakababa para sa wastong pwm sa mosfet, kailangan naming i-multiply ito sa pamamagitan ng isang kadahilanan.

Samakatuwid pinarami namin ito ng 10 at sa halip ay ibigay ang halagang ito bilang analog output sa PWM pin 10 i.e.

** analogWrite (10, z * 10)

Ngayon, para sa .25 volts mosfet ay nakakakuha ng 0.25 * 10 = 2.5 volts

Para sa .40 volts mosfet nakakakuha ng 0.40 * 10 = 4 volts kung saan ang motor ay halos tumakbo sa buong bilis

KASO 1. Kapag temp. Ay mas mababa sa 25 degree

Sa kasong ito ang arduino ay nagpapadala ng 0 PWM boltahe upang i-pin ang 10 tulad ng sa huling linya ng code

** iba pa
{analogWrite (10,0) // sa anumang iba pang kaso PWM sa pin 10 ay dapat na 0
} **

Dahil ang boltahe ng pwm sa base ng mosfet ay 0, mananatili itong off at ang motor ay nakakabit mula sa circuit.

Tingnan ang simulate circuit sa kasong ito.

Arduino fan control simulation

Tulad ng makikita mo ang temperatura ay 20 degree mula rito

Halaga ng analog = 41
Temperatura = 20
Na-map na halaga = 100

Ngunit dahil ang temp ay mas mababa sa 25 degree samakatuwid ang mosfet ay nakakakuha ng 0 volt bilang palabas sa fig (ipinahiwatig ng asul na tuldok).
KASO 2. Kapag temp. Ay higit sa 25 degree

Kapag ang temperatura ay umabot sa 25 degree, pagkatapos ay tulad ng tinukoy sa code pwm signal ay ipinapadala sa base ng mosfet at sa bawat pagtaas ng degree sa temperatura ang boltahe ng PWM na ito ay nagdaragdag din ibig sabihin

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

Tingnan ang simulate circuit sa kasong ito.

Tulad ng nakikita mo habang tumataas ang temperatura mula 20 degree hanggang sa 40 degree, lahat ng tatlong pagbabago ng halaga at sa 40 degree Celsius

Halaga ng analog = 82
Temperatura = 40
Na-map na halaga = 200

Dahil ang temp ay mas malaki sa 25 degree samakatuwid ang mosfet ay nakakakuha ng kaukulang boltahe ng PWM tulad ng ipinakita sa fig (ipinahiwatig ng pulang tuldok).

Samakatuwid ang motor ay nagsisimulang tumakbo sa 25 degree at may kaukulang pagtaas sa bawat degree temperatura ng pwm boltahe mula sa pin 10 hanggang sa base ng mosfet ay tumataas din. Samakatuwid ang bilis ng motor ay tumataas nang tuwid sa pagtaas ng temperatura at nagiging halos pinakamataas para sa 40 degree Celsius.

Kung mayroon kang anumang karagdagang mga katanungan tungkol sa nabanggit sa itaas awtomatikong temperatura kinokontrol dc fan circuit gamit ang fan at Arduino, maaari mong palaging gamitin ang kahon ng puna sa ibaba at ipadala sa amin ang iyong mga saloobin. Susubukan naming makabalik sa pinakamaaga.




Nakaraan: Simpleng Refrigerator Protector Circuit Susunod: Paano Magdisenyo ng isang Hindi maputol na Power Supply (UPS) Circuit