Arduino temperatuuri juhitavad alalisvoolu ventilaatorite ahelad

Proovige Meie Instrumenti Probleemide Kõrvaldamiseks





Selles artiklis ehitame paar lihtsat Arduino-põhist temperatuuri reguleeritavat alalisvoolu ventilaatori ahelat, mis lülitavad ventilaatori või mis tahes muu sellega ühendatud vidina sisse, kui ümbritseva õhu temperatuur saavutab eelnevalt kindlaksmääratud lävetaseme. Selle projekti jaoks kasutame DHT11 andurit ja arduino.

Ülevaade

Mikrokontrollerite ilu on see, et saame väga täpselt juhtida sellega ühendatud välisseadmeid. Selles projektis peab kasutaja sisestama programmis vaid lävetemperatuuri, mikrokontroller hoolitseb ülejäänud funktsiooni eest.



Internetis on saadaval palju mikrokontrolleripõhiseid automaatseid temperatuuri regulaatorite projekte, näiteks komparaatori ja transistoride kasutamine.

Need on väga lihtsad ja töötavad hästi, kuid probleem tekib lävitaseme kalibreerimisel eelseadistatud takisti või potentsiomeetri abil.



Selle kalibreerimisel on meil pime idee ja kasutajal võib tekkida vajadus katse- ja eksitusmeetodi järgi.

Nendest probleemidest saavad mikrokontrollerid üle, kasutaja peab selles projektis lihtsalt sisestama temperatuuri Celsiuse järgi, seega pole vaja kalibreerimist.

Seda projekti saab kasutada siis, kui vooluahela sisetemperatuur tuleb stabiliseerida või säästa seda ülekuumenemise eest.

Joonisel 1 ühendame väljundina protsessori ventilaatori. Seda seadistust saab kasutada suletud vooluringi sisemise keskkonna temperatuuri reguleerimiseks.

Lävetemperatuuri saavutamisel lülitub ventilaator sisse. Kui temperatuur langeb alla künnise, lülitub ventilaator välja. Seega on see põhimõtteliselt automatiseeritud protsess.

Joonisel 2 ühendasime seadmete juhtimiseks relee, mis töötab võrgu pingel, näiteks lauaventilaator.

Kui toatemperatuur saavutab lävetemperatuuri, lülitub ventilaator toa jahtumisel välja ja lülitub välja.

See võib olla parim viis energia säästmiseks ja see võib olla taevas laiskadele inimestele, kes soovivad teistel sooja tunde korral ventilaatorit sisse lülitada.

Voolu skeem, millel on alalisvoolu ventilaatori juhtimine

Alalisvoolu ventilaatori juhtimine temperatuuri reguleerimiseks automaatselt

Seda seadistust võib kasutada kasti suletud vooluringide jaoks. Valgusdiood süttib, kui etteantud künnistase on saavutatud, ja lülitab sisse ka ventilaatori.

Relee ühendamine suuremate ventilaatorite juhtimiseks

Releelüliti ventilaatori juhtimine Arduino temperatuurianduri abil

See vooluahel täidab eelmise vooluahela sarnast funktsiooni, nüüd asendatakse ventilaator releega.

Selle vooluringi abil saab juhtida laua- või laeventilaatorit või mõnda muud vidinat, mis võib ümbritsevat temperatuuri jahutada.

Ühendatud seade lülitub välja niipea, kui temperatuur saavutab etteantud lävetaseme.

Siin illustreeritud temperatuuriga reguleeritava alalisvoolu ventilaatori skeem on vaid vähesed paljudest võimalustest. Saate skeemi ja programmi oma eesmärkidel kohandada.

MÄRKUS 1: väljastatakse # tihvt 7.

MÄRKUS 2: See programm ühildub ainult DHT11 anduriga.

Programm ülaltoodud automaatse temperatuuri regulaatori vooluringi jaoks, kasutades Arduino:

Programmi kood

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

Märkus. Programmis

int th = 30 // lävitemperatuuri seadmine Celsiuse järgi.

Asendage “30” soovitud väärtusega.

Teine disain

Teine allpool käsitletud temperatuuriga reguleeritava alalisvoolu ventilaatori vooluahela projekt tajub automaatselt ümbritsevat temperatuuri ja reguleerib ventilaatori mootori kiirust, et ümbritsevat temperatuuri kontrolli all hoida. See automaatne töötlemine toimub Arduino ja temperatuurianduri IC LM35 kaudu.

Kõrval:Ankit Negi

MEIE EESMÄRK:

1). Niipea, kui ümbritseva temperatuur tõuseb üle 25 Celsiuse kraadi (saate seda väärtust programmis muuta vastavalt oma vajadusele, selgitatud tööosas), hakkab mootor tööle.

2). Iga temperatuuri tõusu korral suureneb ka mootori kiirus.

3). Mootor töötab oma maksimaalsel kiirusel kohe, kui temperatuur tõuseb 40 kraadini (seda väärtust saab programmis muuta).

TEMPERATUURIANDUR LM35:

Eespool nimetatud ülesande saavutamiseks kasutame temp. Sensor LM35, kuna seda kasutatakse laialdaselt ja hõlpsasti kättesaadavana.

LM35-l on 3 tihvti, nagu näete jooniselt.

LM35 IC tihvt

1. Vin - see tihvt on ühendatud alalisvoolu toiteallikaga vahemikus 4 kuni 20 v.
2. Vout - see tihvt annab väljundi pinge kujul.
3. GND - see tihvt on ühendatud vooluahela teise klemmiga.

LM35, kui see on ühendatud toiteallikaga, tajub ümbritseva keskkonna temperatuur ja saadab väljundtapi kaudu ekvivalentse pinge vastavalt temperatuuri tõusu kraadile.

LM35 tunneb mis tahes temperatuuri. vahemikus -50 kuni +150 kraadi Celsiuse järgi ja suurendab 1-kraadise temperatuuri tõusuga toodangut 10 millivolti võrra. Seega on maksimaalne väljundiks antav pinge 1,5 volti.

MIKS ARDUINO SELLE DC-VENTILAATORI JUHTIMISPROJEKTI KOHTA?

Arduino on kohustatud muutma LM35 väljundnõelalt saadud analoogväärtuse digitaalseks ja saadab vastava digitaalse väljundi (PWM) mosfeti alusele.

Kasutame ka arduino käsib temperatuuri printida, vastav analoogväärtus ja digitaalväljund mosfetile ARDUINO IDE seeriamonitoril.

MIS ON VÕIMMOSFETI ROLL?

Sellest vooluringist pole kasu, kui see ei saa töötada suure vooluga mootoriga. Seetõttu kasutatakse selliseid mootoreid võimsusega mosfet.

MIKS DIODI KASUTATAKSE?

Dioodi kasutatakse mosfeti kaitsmiseks töötamise ajal mootori tekitatud tagumise E.M.F eest.

PROJEKTI OSADE LOETELU:

1. LM35

2. ARDUINO

3. VÕIMMOSFET (IRF1010E)

mida mux teeb
POWER MOSFET (IRF1010E)

4. DIODE (1N4007)

DIODE (1N4007)

5. VENTILAATOR (mootor)

6. Ventilaatori toide

VÖÖDIAGRAMM:

Arduino temperatuurist sõltuv alalisvoolu ventilaatori juhtimine

Tehke ühendused vastavalt skeemile.

a) Ühendage LM358 vin-tihvt arduino 5v-ga
b) Ühendage LM358 kinnitusnõel arduino A0-ga
c) Ühendage LM358 maandustihvt Arduino GND-ga
d) Ühendage mosfeti alus arduino PWM-tihvtiga 10

KOOD:

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

TÖÖTAMINE (koodi mõistmine):

A). MUUTUV X-

See on lihtsalt analoogväärtus, mille saab pin nr. A0 LM35 väljundnõelast.

B). MUUTUV JA

Ainult selle muutuja tõttu töötab meie ventilaatori mootor vastavalt vastavale temperatuurile. Selle muutuja abil muudetakse analoogväärtust, st muutujat x vastavaks ümbritseva keskkonna temperatuuriks.

Y = (500 * x) / 1023
1. Esimene analoogväärtus tuleb muuta vastavaks pingeks, s.t.
1023: 5v
Seega (5000 millivolt * x) / 1023 V
2. Nüüd teame, et iga temperatuuri tõusu korral suureneb vastav pinge väljund 10 mv, s.t.
1 Celsiuse kraad: 10 millivolti
Seega (5000 millivolt * x) / (1023 * 10) KRAAD

C). MUUTUV Z-

z = kaart (x, 0, 1023, 0,255)
see muutuja muudab tihvti 10 pwm väljundi analoogväärtuse digitaalseks.

MÄRGE :: Me teame, et lm35 suudab anda maksimaalselt 1,5 volti ja seda ka temperatuuri korral. Kas 150 kraadi. mis pole otstarbekas.

See tähendab, et 40 kraadi Celsiuse korral saame 0,40 volti ja 25 kraadi korral 0,25 volti. Kuna need väärtused on mosfeti korraliku pwm korral väga madalad, peame selle korrutama teguriga.

Seega korrutame selle 10-ga ja anname selle väärtuse analoogväljundina hoopis PWM-i tihvtile 10, s.t.

** analogWrite (10, z * 10)

.25 volti eest saab mosfet 0,25 * 10 = 2,5 volti

0,40 volti eest saab mosfet 0,40 * 10 = 4 volti, mille juures mootor töötab peaaegu täiskiirusel

JUHTUM 1. Kui temp. On alla 25 kraadi

Sellisel juhul saadab arduino 0 PWM pinge kontakti 10 nagu koodirea viimasel real

** muu
{analogWrite (10,0) // igal muul juhul peab tihvti 10 PWM olema 0
} **

Kuna mosfeti aluse pwm pinge on 0, jääb see välja ja mootor lülitatakse vooluahelast välja.

Vaadake sel juhul simuleeritud vooluahelat.

Arduino ventilaatori juhtimissimulatsioon

Nagu näete, on temperatuur seega 20 kraadi

Analoogväärtus = 41
Temperatuur = 20
Kaardistatud väärtus = 100

Kuna temp on alla 25 kraadi, saab mosfet seega 0 volti, nagu joonisel näidatud (tähistatud sinise punktiga).
JUHTUM 2. Kui temp. On suurem kui 25 kraadi

Kui temperatuur jõuab 25 kraadini, saadetakse vastavalt koodile pwm signaal mosfeti alusele ja iga kraadi temperatuuri tõusuga suureneb ka see PWM pinge s.t.

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

Vaadake sel juhul simuleeritud vooluahelat.

Nagu näete, kui temperatuur tõuseb 20 kraadilt 40 kraadini, muutuvad kõik kolm väärtust ja temperatuuril 40 kraadi

Analoogväärtus = 82
Temperatuur = 40
Kaardistatud väärtus = 200

Kuna temp on suurem kui 25 kraadi, saab mosfet vastava PWM pinge, nagu on näidatud joonisel (tähistatud punase punktiga).

Seetõttu hakkab mootor töötama 25 kraadi juures ja vastava temperatuuri kraadi tõusu korral suureneb ka pwm pinge tihvtist 10 kuni mosfeti aluspinnani. Seega suureneb mootori kiirus temperatuuri tõusuga lineaarselt ja saab 40 kraadi juures peaaegu maksimaalse.

Kui teil on täiendavaid küsimusi ülalkirjeldatud automaatse temperatuuriga reguleeritava alalisvoolu ventilaatori ahela kohta, kasutades ventilaatorit ja Arduino, võite alati kasutada allolevat kommentaarikasti ja saata oma mõtted meile. Püüame kõige varem tagasi saada.




Eelmine: Lihtne külmkapikaitseahel Järgmine: Kuidas kujundada katkematu toiteallika (UPS) ahelat