Arduino teplotne riadené obvody jednosmerného ventilátora

Vyskúšajte Náš Nástroj Na Odstránenie Problémov





V tomto článku skonštruujeme niekoľko jednoduchých obvodov jednosmerného ventilátora s automatickou reguláciou teploty založených na Arduine, ktoré zapnú ventilátor alebo akékoľvek k nemu pripojené ďalšie pomôcky, keď okolitá teplota dosiahne vopred stanovenú prahovú úroveň. Pre tento projekt použijeme senzor DHT11 a arduino.

Prehľad

Krása mikrokontrolérov spočíva v tom, že získame veľmi presnú kontrolu nad perifériami, ktoré sú k nim pripojené. V tomto projekte stačí, aby užívateľ zadal prahovú teplotu do programu, o zvyšok funkcie sa postará mikrokontrolér.



Na internete existuje veľa projektov automatických regulátorov teploty, ktoré nie sú založené na mikrokontroléroch, napríklad použitie komparátorov a tranzistorov.

Sú veľmi jednoduché a dobre fungujú, problém však nastáva pri kalibrácii prahovej úrovne pomocou prednastaveného odporu alebo potenciometra.



Pri jeho kalibrácii máme slepý nápad a používateľ bude možno musieť nájsť pokusné miesto a nájsť chybné miesto.

Tieto problémy prekonávajú mikrokontroléry, používateľovi stačí v tomto projekte zadať teplotu v stupňoch Celzia, nie je teda potrebná kalibrácia.

Tento projekt je možné použiť tam, kde je potrebné stabilizovať vnútornú teplotu okruhu alebo zabezpečiť jeho prehriatie.

Na diagrame 1 pripájame ventilátor CPU ako výstup. Toto nastavenie možno použiť na riadenie vnútornej teploty okolia uzavretého obvodu.

Po dosiahnutí prahovej teploty sa ventilátor zapne. Keď teplota klesne pod prahovú hodnotu, ventilátor sa vypne. Ide teda v podstate o automatizovaný proces.

Na diagrame 2 sme pripojili relé na riadenie zariadení, ktoré bežia na sieťové napätie, ako napríklad stolný ventilátor.

Keď teplota v miestnosti dosiahne prahovú teplotu, ventilátor sa zapne a po ochladení sa vypne.

Toto môže byť najlepší spôsob úspory energie a môže to byť raj pre lenivých ľudí, ktorí si prajú, aby ostatní zapínali ventilátor, keď je im teplo.

Schéma zapojenia, ktorá zobrazuje ovládanie ventilátora na jednosmerný prúd

DC riadenie ventilátora pre automatické nastavenie teploty

Toto nastavenie je možné nasadiť pre obvody, ktoré sú uzavreté v krabici. LED dióda sa rozsvieti po dosiahnutí nastavenej prahovej úrovne a ZAPNE aj ventilátor.

Pripojenie relé na ovládanie väčších fanúšikov

Ovládanie ventilátora relé pomocou teplotného senzora Arduino

Tento obvod plní podobnú funkciu ako predchádzajúci okruh, teraz je ventilátor nahradený relé.

Tento obvod môže ovládať stolný ventilátor alebo stropný ventilátor alebo akýkoľvek iný prístroj, ktorý dokáže ochladiť okolitú teplotu.

Pripojené zariadenie sa vypne, akonáhle teplota klesne pod nastavenú prahovú úroveň.

Tu znázornená schéma zapojenia teplotne riadeného jednosmerného ventilátora je len niekoľko z mnohých možností. Obvod a program si môžete prispôsobiť pre svoj vlastný účel.

POZNÁMKA 1: Výstupom je #Pin 7.

POZNÁMKA 2: Tento program je kompatibilný iba so snímačom DHT11.

Program pre vyššie vysvetlený obvod automatického regulátora teploty pomocou Arduina:

Programový kó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---------------------//

Poznámka: V programe

int th = 30 // nastavenie prahovej teploty v stupňoch Celzia.

Nahraďte „30“ požadovanou hodnotou.

Druhý dizajn

Druhý nižšie popísaný projekt obvodu s jednosmerným prúdom ventilátora, o ktorom sa diskutuje nižšie, automaticky sníma teplotu okolia a upravuje rýchlosť motora ventilátora tak, aby udržiaval okolitú teplotu pod kontrolou. Toto automatické spracovanie sa vykonáva pomocou Arduina a teplotného snímača IC LM35.

Autor:Ankit Negi

NÁŠ CIEĽ:

1). Akonáhle teplota okolia stúpne nad 25 stupňov Celzia (túto hodnotu môžete zmeniť v programe podľa svojej potreby, vysvetlené v pracovnej časti), motor sa rozbehne.

2). A s každým stupňom nárastu teploty sa zvyšuje aj rýchlosť motora.

3). Motor beží na najvyššiu rýchlosť, akonáhle teplota stúpne na 40 stupňov Celzia (túto hodnotu je možné zmeniť v programe).

TEPLOTNÝ SENZOR LM35:

Na dosiahnutie vyššie uvedenej úlohy použijeme temp. Senzor LM35 sa bežne používa a je ľahko dostupný.

LM35 má 3 piny, ako vidíte na obrázku.

LM35 IC pinout

1. Vin - tento pin je pripojený k zdroju jednosmerného prúdu medzi 4 až 20 v.
2. Vout - tento pin poskytuje výstup vo forme napätia.
3. GND - tento pin je pripojený k GND svorke obvodu.

LM35, keď je pripojený k zdroju napájania, sníma teplota okolia a vysiela ekvivalentné napätie v súlade s nárastom teploty o jeden stupeň cez výstupný kolík.

LM35 dokáže snímať každú teplotu. medzi -50 stupňov a +150 stupňov Celzia a zvyšuje výkon o 10 milivoltov s nárastom teploty o 1 stupeň. Maximálne napätie, ktoré môže dať ako výstup, je teda 1,5 voltu.

PREČO ARDUINO PRE TENTO PROJEKT REGULÁTORA DC VENTILÁTORA?

Arduino je povinné zmeniť analógovú hodnotu prijatú z výstupného kolíka LM35 na digitálnu hodnotu a odošle zodpovedajúci digitálny výstup (PWM) na základňu mosfet.

Budeme tiež používať arduino príkazy na tlač teploty, zodpovedajúca analógová hodnota a digitálny výstup do mosfetu na sériovom monitore ARDUINO IDE.

AKÁ JE ÚLOHA MOSFETU SÍLY?

Tento obvod nebude k dispozícii, ak nemôže pracovať s vysokoprúdovým motorom. Preto sa na prevádzku týchto motorov používa výkonový mosfet.

PREČO sa dióda používa?

Dióda sa používa na ochranu mosfetu pred zadným EMF generovaným motorom počas chodu.

ZOZNAM DIELOV PROJEKTU:

1. LM35

2. ARDUINO

3. MOSFET S VÝKONOM (IRF1010E)

MOSFET NAPÁJANIA (IRF1010E)

4. DIODE (1N4007)

DIODE (1N4007)

5. VENTILÁTOR (motor)

6. NAPÁJANIE VENTILÁTORA

SCHÉMA OKRUHU:

Arduino teplotne závislé DC riadenie ventilátora

Pripojte káble podľa schémy zapojenia.

a) Pripojte vin pin z lm358 na 5v arduina
b) Pripojte voutový kolík lm358 k A0 arduina
c) Pripojte uzemňovací kolík lm358 k GND arduina
d) Pripojte základňu mosfetu k PWM kolíku 10 arduina

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

PRÁCA (porozumenie kódu):

A). PREMENNÁ X

Toto je jednoducho analógová hodnota, ktorú prijíma pin č. A0 z výstupného kolíka LM35.

B). VARIABILNÉ A-

Len kvôli tejto premennej beží náš motor ventilátora v súlade so zodpovedajúcou teplotou. Táto premenná robí to, že mení analógovú hodnotu, tj. Premennú x na zodpovedajúcu teplotu okolia.

Y = (500 * x) / 1023
1. Prvá analógová hodnota musí byť zmenená na zodpovedajúce napätie, t.j.
1023: 5v
Preto (5 000 milivoltov * x) / 1023 V
2. Teraz vieme, že pre každý stupeň nárastu teploty sa zodpovedajúci výstup napätia zvyšuje o 10 mv, t.
1 stupeň Celzia: 10 milivoltov
Preto (5 000 milivoltov * x) / (1023 * 10) STUPEŇ

C). PREMENNÁ Z-

z = mapa (x, 0, 1023, 0,255)
táto premenná mení analógovú hodnotu na digitálnu pre výstup pwm na kolíku 10.

POZNÁMKA :: Vieme, že lm35 môže poskytnúť maximálne 1,5 voltu a to tiež pri teplote. Je 150 stupňov. čo nie je praktické.

To znamená, že pri 40 stupňoch Celzia dostaneme 0,40 voltu a pri 25 stupňoch dostaneme 0,25 voltu. Pretože tieto hodnoty sú veľmi nízke pre správne pwm na mosfete, musíme ich vynásobiť koeficientom.

Preto ho vynásobíme 10 a namiesto toho dáme túto hodnotu ako analógový výstup na PWM pin 10, t.j.

** analogWrite (10, z * 10)

Teraz pre 0,25 voltov mosfet dostane 0,25 * 10 = 2,5 voltov

Pre 0,40 V mosfet dostane 0,40 * 10 = 4 V, pri ktorých motor takmer beží na svoje plné otáčky

PRÍPAD 1. Keď tepl. Je menej ako 25 stupňov

V tomto prípade arduino pošle na pin 10 napätie 0 PWM, ako v poslednom riadku kódu

** inak
{analogWrite (10,0) // v každom inom prípade PWM na kolíku 10 musí byť 0
} **

Pretože pwm napätie na báze mosfetu je 0, zostáva vypnuté a motor sa odpojí od obvodu.

V tomto prípade pozri simulovaný obvod.

Simulácia ovládania ventilátora Arduino

Ako vidíte, teplota je preto 20 stupňov

Analógová hodnota = 41
Teplota = 20
Namapovaná hodnota = 100

Ale pretože teplota je menej ako 25 stupňov, mosfet dostane 0 V, ako je znázornené na obr. (Označené modrou bodkou).
PRÍPAD 2. Keď tepl. Je väčší ako 25 stupňov

Keď teplota dosiahne 25 stupňov, potom sa ako je uvedené v kóde, signál pwm pošle na základňu mosfetu a s každým stupňom nárastu teploty sa toto PWM napätie tiež zvyšuje, t.j.

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

V tomto prípade pozri simulovaný obvod.

Ako vidíte, ako sa teplota zvyšuje od 20 stupňov až po 40 stupňov, všetky tri hodnoty sa menia a pri 40 stupňoch Celzia

Analógová hodnota = 82
Teplota = 40
Namapovaná hodnota = 200

Pretože teplota je vyššia ako 25 stupňov, mosfet dostane zodpovedajúce napätie PWM, ako je znázornené na obr. (Označené červenou bodkou).

Preto motor začne pracovať pri 25 stupňoch a s príslušným zvýšením teploty o jeden stupeň stúpa aj pwm napätie z kolíka 10 na základňu mosfetu. Preto sa rýchlosť motora zvyšuje lineárne s nárastom teploty a stáva sa takmer maximálnou pre 40 stupňov Celzia.

Ak máte ďalšie otázky týkajúce sa vyššie vysvetleného automatického teplotne regulovaného obvodu jednosmerného ventilátora pomocou ventilátora a Arduina, môžete kedykoľvek použiť pole pre komentár nižšie a poslať nám svoje pripomienky. Pokúsime sa o návrat najskôr.




Dvojica: Jednoduchý ochranný obvod chladničky Ďalej: Ako navrhnúť obvod zdroja nepretržitého napájania (UPS)