Arduino teplotně řízené obvody stejnosměrného ventilátoru

Vyzkoušejte Náš Nástroj Pro Odstranění Problémů





V tomto článku zkonstruujeme několik jednoduchých automatických obvodů stejnosměrného ventilátoru založených na Arduinu, které zapnou ventilátor nebo jiné k němu připojené gadgety, když okolní teplota dosáhne předem určené prahové úrovně. Pro tento projekt použijeme senzor DHT11 a arduino.

Přehled

Krása mikrokontrolérů spočívá v tom, že získáváme velmi přesnou kontrolu nad periferiemi, které jsou k němu připojeny. V tomto projektu musí uživatel pouze zadat prahovou teplotu do programu, mikrokontrolér se postará o zbytek funkce.



Na internetu existuje spousta projektů automatických regulátorů teploty bez mikrokontrolérů, jako je použití komparátoru a tranzistorů.

Jsou velmi jednoduché a fungují dobře, ale problém nastává při kalibraci prahové úrovně pomocí přednastaveného rezistoru nebo potenciometru.



Při kalibraci máme slepý nápad a uživatel možná bude muset provést pokus a omyl, aby našel sladké místo.

Tyto problémy překonávají mikrokontroléry, uživatel v tomto projektu stačí zadat teplotu ve stupních Celsia, není tedy potřeba kalibrace.

Tento projekt lze použít tam, kde je třeba stabilizovat vnitřní teplotu okruhu nebo jej chránit před přehřátím.

V diagramu 1 připojujeme ventilátor CPU jako výstup. Toto nastavení lze použít k řízení vnitřní teploty okolí uzavřeného obvodu.

Po dosažení prahové teploty se ventilátor zapne. Když teplota klesne pod prahovou teplotu, ventilátor se vypne. V podstatě se jedná o automatizovaný proces.

V diagramu 2 jsme připojili relé pro ovládání zařízení, která běží na síťové napětí, jako je stolní ventilátor.

Když teplota v místnosti dosáhne prahové teploty, ventilátor se zapne a vypne, když se místnost ochladí.

To může být nejlepší způsob úspory energie a to může být nebe pro líné lidi, kteří chtějí, aby ostatní zapnuli ventilátor, když se cítí v teple.

Schéma zapojení ovládání DC ventilátoru

DC ovládání ventilátoru pro automatické nastavení teploty

Toto nastavení lze nasadit pro obvody, které jsou uzavřeny v krabici. LED dioda se rozsvítí, když dosáhne přednastavené prahové úrovně, a rozsvítí také ventilátor.

Připojení relé pro ovládání větších fanoušků

Ovládání ventilátoru relé pomocí teplotního čidla Arduino

Tento obvod plní obdobnou funkci jako předchozí okruh, nyní je ventilátor nahrazen relé.

Tento obvod může ovládat stolní ventilátor nebo stropní ventilátor nebo jakýkoli jiný přístroj, který může ochladit okolní teplotu.

Připojené zařízení se vypne, jakmile teplota dosáhne pod nastavenou prahovou úroveň.

Zde ilustrované schéma zapojení stejnosměrného ventilátoru s teplotou je jen několik z mnoha možností. Okruh a program můžete přizpůsobit pro svůj vlastní účel.

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

POZNÁMKA 2: Tento program je kompatibilní pouze se snímačem DHT11.

Program pro výše vysvětlený obvod automatického regulátoru teploty pomocí 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 programu

int th = 30 // nastaví prahovou teplotu ve stupních Celsia.

Nahraďte „30“ požadovanou hodnotou.

Druhý design

Druhý níže popsaný projekt obvodu stejnosměrného ventilátoru s regulovanou teplotou automaticky snímá teplotu okolí a upravuje otáčky motoru ventilátoru tak, aby udržoval okolní teplotu pod kontrolou. Toto automatické zpracování se provádí přes Arduino a teplotní senzor IC LM35.

Podle:Ankit Negi

NÁŠ CÍL:

1). Jakmile teplota okolí vzroste nad 25 stupňů Celsia (tuto hodnotu můžete změnit v programu podle své potřeby, vysvětleno v pracovní části), motor se rozběhne.

2). A s každým stupněm zvýšení teploty se také zvyšuje rychlost motoru.

3). Jakmile teplota stoupne na 40 stupňů Celsia, motor běží na nejvyšší otáčky (tuto hodnotu lze v programu změnit).

TEPLOTNÍ SENZOR LM35:

K dosažení výše uvedeného úkolu použijeme temp. Senzor LM35 je široce a snadno dostupný.

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

LM35 IC pinout

1. Vin - tento pin je připojen ke stejnosměrnému napájení mezi 4 až 20 v.
2. Vout - tento pin poskytuje výstup ve formě napětí.
3. GND - tento pin je připojen ke svorce gnd obvodu.

LM35 při připojení k napájecímu zdroji snímá teplota okolí a prostřednictvím svého výstupního pinu vysílá ekvivalentní napětí v souladu s nárůstem teploty o jeden stupeň.

LM35 dokáže snímat jakoukoli teplotu. mezi -50 až +150 stupňů Celsia a zvyšuje výkon o 10 milivoltů s nárůstem teploty o 1 stupeň. Maximální napětí, které může poskytnout jako výstup, je tedy 1,5 voltu.

PROČ ARDUINO PRO TENTO PROJEKT ŘÍDÍCÍHO VENTILÁTORU DC?

Arduino je povinno změnit analogovou hodnotu přijímanou z výstupního pinu LM35 na digitální hodnotu a odesílá odpovídající digitální výstup (PWM) na základnu mosfetu.

Budeme také používat arduino příkazy pro tisk teploty, odpovídající analogová hodnota a digitální výstup do mosfetu na sériovém monitoru ARDUINO IDE.

CO JE ÚLOHA MOSFETU SÍLY?

Tento obvod nebude k ničemu, pokud nemůže běžet silnoproudý motor. Proto je pro provoz těchto motorů využíván výkonový mosfet.

PROČ JE DIODE POUŽÍVÁN?

Dioda se používá k ochraně mosfetu před zadním EMF generovaným motorem za chodu.

SEZNAM DÍLŮ PROJEKTU:

1. LM35

2. ARDUINO

3. MOSFET NAPÁJENÍ (IRF1010E)

MOSFET NAPÁJENÍ (IRF1010E)

4. DIODE (1N4007)

DIODE (1N4007)

5. VENTILÁTOR (motor)

6. NAPÁJENÍ VENTILÁTORU

KRUHOVÝ DIAGRAM:

Řízení stejnosměrného ventilátoru závislé na teplotě Arduino

Proveďte připojení podle schématu zapojení.

a) Připojte vin pin z lm358 k 5v arduina
b) Připojte voutový kolík lm358 k A0 arduina
c) Připojte zemnící kolík lm358 ke GND arduina
d) Připojte základnu MOSFET k PWM pinu 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
}
}

PRACOVNÍ (porozumění kódu):

A). VARIABILNÍ X

Jedná se jednoduše o analogovou hodnotu, kterou přijímá pin č. A0 z výstupního pinu LM35.

B). VARIABILNÍ A-

Pouze kvůli této proměnné běží náš motor ventilátoru v souladu s odpovídající teplotou. To, co tato proměnná dělá, je změna analogové hodnoty, tj. Proměnné x, na odpovídající teplotu okolí.

Y = (500 * x) / 1023
1. První analogová hodnota musí být změněna na odpovídající napětí, tj.
1023: 5v
Proto (5 000 milivoltů * x) / 1023 V.
2. Nyní víme, že pro každý stupeň zvýšení teploty se odpovídající výstup napětí zvyšuje o 10 mv, tj.
1 stupeň Celsia: 10 milivoltů
Proto (5 000 milivoltů * x) / (1023 * 10) DEGREE

C). VARIABILNÍ Z-

z = mapa (x, 0, 1023, 0,255)
tato proměnná mění analogovou hodnotu na digitální pro výstup pwm na pinu 10.

POZNÁMKA :: Víme, že lm35 může poskytnout maximálně 1,5 voltu a to také při teplotě. Je 150 stupňů. což není praktické.

To znamená, že pro 40 stupňů Celsia dostaneme 0,40 voltu a pro 25 stupňů dostaneme 0,25 voltu. Vzhledem k tomu, že tyto hodnoty jsou velmi nízké pro správnou hodnotu pwm na mosfetu, musíme ji vynásobit faktorem.

Z tohoto důvodu jej vynásobíme 10 a místo toho dáme tuto hodnotu jako analogový výstup na PWM pin 10, tj.

** analogWrite (10, z * 10)

Nyní pro 0,25 voltů mosfet získá 0,25 * 10 = 2,5 voltu

Pro 0,40 V mosfet dostane 0,40 * 10 = 4 V, při kterých motor téměř běží na plnou rychlost

PŘÍPAD 1. Když tepl. Je menší než 25 stupňů

V tomto případě arduino pošle 0 PWM napětí na pin 10 jako v posledním řádku kódu

** jinak
{analogWrite (10,0) // v každém jiném případě PWM na kolíku 10 musí být 0
} **

Protože pwm napětí na základně mosfetu je 0, zůstává vypnuté a motor se odpojí od obvodu.

V tomto případě viz simulovaný obvod.

Simulace ovládání ventilátoru Arduino

Jak vidíte, teplota je tedy 20 stupňů

Analogová hodnota = 41
Teplota = 20
Namapovaná hodnota = 100

Ale protože teplota je nižší než 25 stupňů, mosfet dostane 0 voltů, jak je znázorněno na obr. (Označeno modrou tečkou).
PŘÍPAD 2. Když tepl. Je větší než 25 stupňů

Když teplota dosáhne 25 stupňů, pak je, jak je uvedeno v kódu, odeslán signál pwm na základnu mosfetu a s každým zvýšením teploty se toto napětí PWM také zvyšuje, tj.

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

V tomto případě viz simulovaný obvod.

Jak vidíte, jak se teplota zvyšuje z 20 stupňů až na 40 stupňů, všechny tři hodnoty se mění a na 40 stupňů Celsia

Analogová hodnota = 82
Teplota = 40
Namapovaná hodnota = 200

Protože teplota je vyšší než 25 stupňů, mosfet dostane odpovídající napětí PWM, jak je znázorněno na obr. (Označeno červenou tečkou).

Proto motor začíná pracovat při 25 stupních a s odpovídajícím nárůstem teploty o jeden stupeň se zvyšuje také pwm napětí z kolíku 10 na základnu mosfetu. Proto se rychlost motoru zvyšuje lineárně s nárůstem teploty a stává se téměř maximem pro 40 stupňů Celsia.

Pokud máte další dotazy týkající se výše vysvětleného automatického teplotně řízeného stejnosměrného ventilátoru pomocí ventilátoru a Arduina, můžete vždy použít pole pro komentář níže a poslat nám své myšlenky. Pokusíme se o návrat co nejdříve.




Předchozí: Jednoduchý obvod ochrany chladničky Další: Jak navrhnout obvod zdroje nepřerušitelného napájení (UPS)