Arduino hőmérséklet-szabályozású egyenáramú ventilátor áramkörök

Próbálja Ki A Műszerünket A Problémák Kiküszöbölésére





Ebben a cikkben felépítünk néhány egyszerű Arduino alapú, automatikus hőmérséklet-szabályozású egyenáramú ventilátor áramkört, amelyek bekapcsolják a ventilátort vagy bármely más hozzá csatlakoztatott eszközt, amikor a környezeti hőmérséklet eléri az előre meghatározott küszöbszintet. A DHT11 érzékelőt és az arduino-t fogjuk felhasználni ehhez a projekthez.

Áttekintés

A mikrovezérlők szépsége az, hogy nagyon pontos irányítást kapunk a hozzá kapcsolódó perifériák felett. Ebben a projektben a felhasználónak csak meg kell adnia a küszöbhőmérsékletet a programban, a mikrovezérlő gondoskodik a többi funkcióról.



Rengeteg nem mikrovezérlő alapú automatikus hőmérséklet-szabályozó projekt érhető el az interneten, például komparátor és tranzisztorok használatával.

Nagyon egyszerűek és jól működnek, de a probléma felmerül a küszöbszint kalibrálása során egy előre beállított ellenállással vagy potenciométerrel.



Vak kalkulációnk van a kalibrálás során, és előfordulhat, hogy a felhasználónak próba és hiba módszerrel kell eljárnia az édes pont megtalálásához.

Ezeket a problémákat a mikrovezérlők leküzdik, a felhasználónak csak meg kell adnia a hőmérsékletet Celsius-ban ebben a projektben, így nincs szükség kalibrálásra.

Ez a projekt akkor használható, ahol az áramkör belső hőmérsékletét stabilizálni kell, vagy meg kell menteni azt a túlmelegedéstől.

Az 1. ábrán kimenetként CPU ventilátort csatlakoztatunk. Ez a beállítás használható a zárt áramkör belső környezeti hőmérsékletének szabályozására.

A küszöbérték elérésekor a ventilátor bekapcsol. Amikor a hőmérséklet a küszöbérték alá süllyed, a ventilátor kikapcsol. Tehát alapvetően automatizált folyamatról van szó.

A 2. ábrán egy olyan relét csatlakoztattunk az eszközök vezérléséhez, amelyek hálózati feszültségen működnek, például asztali ventilátorral.

Amikor a helyiség hőmérséklete eléri a küszöbértéket, a ventilátor bekapcsol és kikapcsol, amikor a helyiség lehűl.

Ez lehet a legjobb módja az energiatakarékosságnak, és mennyország lehet a lusta emberek számára, akik azt szeretnék, ha mások meleg állapotban bekapcsolnák a ventilátort.

Áramkör, amely egy egyenáramú ventilátor vezérlést mutat

DC ventilátor vezérlés automatikus hőmérséklet-beállításhoz

Ez a beállítás egy dobozba zárt áramkörök számára telepíthető. A LED bekapcsol, amikor eléri az előre beállított küszöbszintet, és bekapcsolja a ventilátort is.

Relé csatlakoztatása nagyobb ventilátorok vezérléséhez

Relé kapcsoló ventilátor vezérlés Arduino hőmérséklet-érzékelővel

Ez az áramkör az előző áramkör hasonló funkcióját látja el, most a ventilátort relé váltja fel.

Ez az áramkör vezérelheti az asztali ventilátort vagy a mennyezeti ventilátort, vagy bármilyen más eszközt, amely lehűtheti a környezeti hőmérsékletet.

A csatlakoztatott eszköz kikapcsol, amint a hőmérséklet eléri az előre beállított küszöbértéket.

Az itt bemutatott hőmérséklet-szabályozott egyenáramú ventilátor kapcsolási diagramja csak néhány a sok közül. Az áramkört és a programot saját céljaira szabhatja testre.

1. MEGJEGYZÉS: A # 7-es tű kimenet.

2. MEGJEGYZÉS: Ez a program csak a DHT11 érzékelővel kompatibilis.

Program a fent ismertetett automatikus hőmérséklet-szabályozó áramkörhöz Arduino segítségével:

Programkód

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

Megjegyzés: A programban

int th = 30 // állítsa be a küszöbértéket Celsiusban.

Cserélje ki a „30” értéket a kívánt értékre.

Második tervezés

Az alábbiakban tárgyalt második hőmérséklet-vezérelt egyenáramú ventilátor áramkör projekt automatikusan érzékeli a környezeti hőmérsékletet, és úgy állítja be a ventilátor motor fordulatszámát, hogy a környezeti hőmérsékletet szabályozni tudja. Ez az automatikus feldolgozás egy Arduino és egy IC LM35 hőmérséklet-érzékelőn keresztül történik.

Által:Ankit Negi

CÉLUNK:

1). Amint a környezet hőmérséklete meghaladja a 25 Celsius-fokot (ezt az értéket a programban megváltoztathatja az igényeinek megfelelően, a munka szakaszban kifejtve), a motor elindul.

2). A hőmérséklet emelkedésének minden fokával a motor sebessége is növekszik.

3). A motor a legnagyobb fordulatszámon jár, amint a hőmérséklet 40 Celsius-fokra emelkedik (ez az érték a programban megváltoztatható).

LM35 HŐMÉRSÉKLET-ÉRZÉKELŐ:

A fent említett feladat eléréséhez a temp. Az LM35 érzékelő, mivel széles körben és könnyen elérhető.

Az LM35-nek 3 csapja van, amint az az ábrán látható.

LM35 IC tű

1. Vin - ez a csap 4 - 20 V közötti egyenáramú tápegységhez van csatlakoztatva.
2. Vout - ez a tű feszültség formájában adja a kimenetet.
3. GND - ez a tüske csatlakozik az áramkör második kapcsaihoz.

Az LM35 tápegységhez csatlakoztatva érzékeli a a környezet hőmérséklete és a kimeneti csapon keresztül egyenértékű feszültséget küld a hőmérséklet fokának emelkedése szerint.

Az LM35 bármilyen hőmérsékletet képes érzékelni. -50 fok és +150 Celsius fok között, és 10 millivolttal növeli a kibocsátást 1 fokos hőmérséklet-emelkedéssel. Így a maximális kimeneti feszültség 1,5 volt.

MIÉRT ARDUINO EZT A FAN VENTILÁTOR VEZÉRLŐ PROJEKTJÉHEZ?

Arduino-nak meg kell változtatnia az LM35 kimeneti tűjéből kapott analóg értéket digitális értékre, és elküldi a megfelelő digitális kimenetet (PWM) a mosfet bázisára.

Mi is használni fogjuk az arduino parancsot ad a hőmérséklet nyomtatására, megfelelő analóg érték és digitális kimenet a mosfet-hez az ARDUINO IDE soros monitorán.

MI A POWER MOSFET SZEREPE?

Ez az áramkör nem lesz hasznára, ha nem képes nagy áramú motort működtetni. Ezért ilyen motorok futtatásához a mosfet áramot használják.

MIÉRT HASZNÁLJÁK A DIODÁT?

A diódát a mosfet védelmére használják a motor által futás közben keletkező hátsó E.M.F

A PROJEKT ALKALMAZÁSA:

1. LM35

2. ARDUINO

3. POWER MOSFET (IRF1010E)

POWER MOSFET (IRF1010E)

4. DIÓD (1N4007)

DIODE (1N4007)

5. VENTILÁTOR (motor)

6. VENTILÁTOR TÁPELLÁTÁSA

KÖRDIAGRAMM:

Arduino hőmérsékletfüggő egyenáramú ventilátor vezérlés

Csatlakoztassa a kapcsolási rajz szerint.

a) Csatlakoztassa az lm358 vin tűjét az 5du arduino-hoz
b) Csatlakoztassa az lm358 vout tűjét az arduino A0-jához
c) Csatlakoztassa az lm358 földelőcsapját az Arduino GND-jéhez
d) Csatlakoztassa a mosfet alapját az arduino PWM 10. tűjéhez

KÓD:

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

MUNKÁK (kód megértése):

A). VÁLTOZHATÓ X-

Ez egyszerűen az analóg érték, amelyet a pin sz. A0 az LM35 kimeneti csapjáról.

B). VÁLTOZÓ ÉS

Csak e változó miatt a ventilátor motorunk a megfelelő hőmérsékletnek megfelelően működik. Ez a változó az, hogy megváltoztatja az analóg értéket, azaz az x változót a környezet megfelelő hőmérsékletére.

Y = (500 * x) / 1023
1. Az első analóg értéket meg kell változtatni a megfelelő feszültségre, azaz
1023: 5v
Ezért (5000 millivolt * x) / 1023 V
2. Most már tudjuk, hogy a hőmérséklet minden fokának emelkedése esetén a megfelelő feszültség kimenet 10 mv-mal nő, azaz
1 Celsius-fok: 10 millivolt
Ezért (5000 millivolt * x) / (1023 * 10) FOK

C). VÁLTOZHATÓ Z-

z = térkép (x, 0, 1023, 0,255)
ez a változó a 10. érintkező pwm kimenetének analóg értékét digitális értékre változtatja.

JEGYZET :: Tudjuk, hogy az lm35 maximum 1,5 volt feszültséget képes biztosítani, és hőmérséklet esetén is. 150 fokos. ami nem praktikus.

Ez azt jelenti, hogy 40 Celsius-fok esetén 0,40 V-ot, 25 fok esetén pedig 0,25 V-ot kapunk. Mivel ezek az értékek nagyon alacsonyak a mosfet megfelelő pwm-jéhez, meg kell szorozni egy tényezővel.

Ezért megszorozzuk 10-vel, és ehelyett ezt az értéket adjuk analóg kimenetként a PWM 10-es érintkezőhöz, azaz

** analogWrite (10, z * 10)

.25 voltért a mosfet 0,25 * 10 = 2,5 voltot kap

0,40 voltért a mosfet 0,40 * 10 = 4 voltot kap, amelynél a motor szinte teljes sebességével jár

ESET 1. Amikor a hőm. Kevesebb mint 25 fok

Ebben az esetben az arduino 0 PWM feszültséget küld a 10 tűre, mint a kód utolsó sorában

** más
{analWrite (10,0) // minden más esetben a PWM-nek a 10. tűn 0-nak kell lennie
} **

Mivel a mosfet alapján a pwm feszültség 0, kikapcsolt állapotban marad, és a motor lekapcsolódik az áramkörről.

Ebben az esetben lásd a szimulált áramkört.

Arduino ventilátor vezérlés szimuláció

Mint látható, a hőmérséklet így 20 fok

Analóg érték = 41
Hőmérséklet = 20 ° C
Feltérképezett érték = 100

De mivel a hőmérséklet kevesebb, mint 25 fok, a mosfet 0 voltot kap, amint az az ábrán látható (kék ponttal jelezve).
ESET 2. Amikor a hőm. 25 foknál nagyobb

Amikor a hőmérséklet eléri a 25 fokot, akkor a kódban előírtak szerint pwm jelet küld a mosfet bázisára, és minden hőmérsékleti fok emelkedésével ez a PWM feszültség is növekszik, azaz

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

Ebben az esetben lásd a szimulált áramkört.

Amint láthatja, ahogy a hőmérséklet 20 fokról 40 fokra emelkedik, mindhárom érték megváltozik és 40 Celsius fokon

Analóg érték = 82
Hőmérséklet = 40 ° C
Feltérképezett érték = 200

Mivel a hőmérséklet meghaladja a 25 fokot, ezért a mosfet megkapja a megfelelő PWM feszültséget, amint az az ábrán látható (piros ponttal jelölve).

Ezért a motor 25 fokon kezd működni, és a hőmérsékletenkénti hőmérsékleti emelkedésnek megfelelően a pwm feszültség is nő a 10 tűtől a mosfet alapjáig. Ennélfogva a motor sebessége lineárisan növekszik a hőmérséklet növekedésével, és 40 Celsius-fokon szinte maximális lesz.

Ha bármilyen további kérdése van a fentiekben ismertetett automatikus hőmérséklet-szabályozású egyenáramú ventilátor áramkörrel a ventilátor és az Arduino használatával, akkor bármikor használhatja az alábbi megjegyzésmezőt, és elküldheti nekünk gondolatait. Legkorábban megpróbálunk visszatérni.




Előző: Egyszerű hűtőszekrény védő áramkör Következő: Hogyan tervezzünk szünetmentes tápegységet (UPS)