Arduino temperaturstyrede DC blæser kredsløb

Prøv Vores Instrument Til At Fjerne Problemer





I denne artikel skal vi konstruere et par enkle Arduino-baserede automatiske temperaturstyrede jævnstrømsventilatorkredsløb, der tænder for en ventilator eller andre gadgets, der er forbundet til den, når den omgivende temperatur når et forudbestemt tærskelniveau. Vi skal bruge DHT11-sensor og arduino til dette projekt.

Oversigt

Skønheden ved mikrokontrollere er, at vi får meget præcis kontrol over de perifere enheder, der er forbundet til den. I dette projekt skal brugeren bare indtaste tærskeltemperaturen i programmet, mikrocontrolleren tager sig af resten af ​​funktionen.



Der er masser af ikke-mikrocontroller-baserede automatiske temperaturregulatorprojekter tilgængelige over internettet, såsom brug af komparator og transistorer.

De er meget enkle, og de fungerer godt, men problemet opstår under kalibrering af tærskelniveauet ved hjælp af forudindstillet modstand eller potentiometer.



Vi har en blind idé, mens vi kalibrerer den, og brugeren skal muligvis udføre prøve- og fejlmetode for at finde den søde plet.

Disse problemer overvindes af mikrokontroller, brugeren skal bare indtaste temperaturen i Celsius i dette projekt, så der er ikke behov for kalibrering.

Dette projekt kan bruges, hvor den interne temperatur i kredsløbet skal stabiliseres eller redde den fra overophedning.

I diagram 1 forbinder vi en CPU-blæser som output. Denne opsætning kan bruges til at kontrollere den interne omgivelsestemperatur i et lukket kredsløb.

Når tærskelstemperaturen er nået, tænder blæseren. Når temperaturen går under tærskelværdien, slukkes ventilatoren. Så det er dybest set en automatiseret proces.

I diagram 2 tilsluttede vi et relæ til styring af enheder, der kører på netspænding såsom bordvifte.

Når stuetemperaturen når tærskelværdien, tænder ventilatoren og slukker, når rummet køler af.

Dette kan være den bedste måde at spare strøm på, og dette kan være himlen for dovne mennesker, der ønsker andre at tænde for blæseren, når de føler sig varme.

Kredsløbsdiagram, der viser en DC-ventilatorstyring

DC blæserregulering til automatisk temperaturjustering

Denne opsætning kan implementeres til kredsløb, der er lukket i en kasse. LED'en tændes, når det forudindstillede tærskelniveau er nået, og tænder også for blæseren.

Tilslutning af et relæ til styring af større ventilatorer

Relækontakt blæserstyring ved hjælp af Arduino temperaturføler

Dette kredsløb har den samme funktion som det tidligere kredsløb, nu udskiftes blæseren med relæ.

Dette kredsløb kan styre en bordventilator eller loftsventilator eller enhver anden gadget, der kan afkøle den omgivende temperatur.

Den tilsluttede enhed slukkes, så snart temperaturen er nået under det forudindstillede tærskelniveau.

Det temperaturstyrede DC-blæserkredsløbsdiagram, der er illustreret her, er kun få af mange muligheder. Du kan tilpasse kredsløbet og programmet til dit eget formål.

BEMÆRK 1: #Pin 7 er output.

BEMÆRK 2: Dette program er kun kompatibelt med DHT11-sensoren.

Program til ovenstående forklarede automatiske temperaturregulator kredsløb ved hjælp af Arduino:

Programkode

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

Bemærk: I programmet

int th = 30 // indstil tærskeltemperaturen i Celsius.

Udskift “30” med den ønskede værdi.

Andet design

Det andet temperaturstyrede jævnstrømsventilator kredsløbsprojekt beskrevet nedenfor registrerer automatisk omgivelsestemperaturen og justerer blæsermotorens hastighed for at holde den omgivende temperatur under kontrol. Denne automatiske behandling sker gennem en Arduino og en temperaturføler IC LM35.

Ved:Ankit Negi

VORES MÅL:

1). Så snart temperaturen i omgivelserne stiger ud over 25 grader Celsius (du kan ændre denne værdi i programmet efter dit behov, forklaret i arbejdssektionen), starter motoren.

2). Og med hver grad af temperaturstigning øges motorens hastighed også.

3). Motoren kører med sin maksimale hastighed, så snart temperaturen stiger til 40 grader Celsius (denne værdi kan ændres i programmet).

TEMPERATURSENSOR LM35:

For at opnå den ovennævnte opgave skal vi bruge temp. Sensor LM35, da den bruges bredt og let tilgængelig.

LM35 har 3 ben som du kan se på figuren.

LM35 IC pinout

1. Vin - denne pin er tilsluttet jævnstrømforsyning mellem 4 og 20 v.
2. Vout - denne pin giver output i form af spænding.
3. GND - denne pin er forbundet til GND terminal på kredsløbet.

LM35, når den er tilsluttet strømforsyningen, registrerer omgivelsernes temperatur og sender ækvivalent spænding i overensstemmelse med temperaturstigningen pr. grad gennem sin udgangsstift.

LM35 kan mærke ethvert temp. mellem -50 grader til +150 grader Celsius og øger produktionen med 10 millivolt med 1 grad temperaturstigning. Den maksimale spænding, den kan give, da output er 1,5 volt.

HVORFOR ARDUINO TIL DETTE DC-VENTILATORPROJEKT?

Arduino er påkrævet for at ændre den analoge værdi, der modtages fra output pin på LM35 til digital værdi og sender den tilsvarende digitale output (PWM) til basen af ​​mosfet.

Vi vil også bruge arduino kommandoer til udskrivningstemperatur, tilsvarende analog værdi og digital output til mosfet på seriel skærm af ARDUINO IDE.

HVAD ER ROLEN FOR STRØMMOSFET?

Dette kredsløb er til ingen nytte, hvis det ikke kan køre motor med høj strøm. Derfor bruges strøm til mosfet til at køre sådanne motorer.

HVORFOR ANVENDES DIODE?

Diode bruges til at beskytte mosfet mod den bageste E.M.F genereret af motoren under kørsel.

DELELISTE TIL PROJEKTET:

1. LM35

2. ARDUINO

3. POWER MOSFET (IRF1010E)

POWER MOSFET (IRF1010E)

4. DIODE (1N4007)

DIODE (1N4007)

5. FAN (motor)

6. FORSYNING MED VENTILATORER

KREDSLØBSDIAGRAM:

Arduino temperaturafhængig DC blæserstyring

Foretag forbindelser som vist i kredsløbsdiagrammet.

a) Tilslut vin-stift af lm358 til 5v af arduino
b) Tilslut vout-stift på lm358 til A0 i arduino
c) Tilslut jordstiften på lm358 til GND på arduino
d) Forbind mosfets bund til PWM-pin 10 i arduino

KODE:

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

ARBEJDE (forståelse af kode):

EN). VARIABEL X-

Dette er simpelthen den analoge værdi, der modtages med pin nr. A0 fra udgangsstiften på LM35.

B). VARIABEL OG-

Kun på grund af denne variabel kører vores blæsermotor i overensstemmelse med den tilsvarende temperatur. Hvad denne variabel gør, er at den ændrer den analoge værdi, dvs. variabel x til den tilsvarende temperatur i omgivelserne.

Y = (500 * x) / 1023
1. Første analoge værdi skal ændres til tilsvarende spænding, dvs.
1023: 5v
Derfor (5000 millivolt * x) / 1023 V.
2. Nu ved vi, at for hver grad stigning i temperatur stiger den tilsvarende spændingsoutput med 10 mv, dvs.
1 grad Celsius: 10 millivolt
Derfor (5000 millivolt * x) / (1023 * 10) GRAD

C). VARIABEL Z-

z = kort (x, 0, 1023, 0,255)
denne variabel ændrer den analoge værdi til digital værdi for pwm-output på pin 10.

BEMÆRK :: Vi ved, at lm35 kan levere maksimalt 1,5 volt, og det også når temp. Er 150 grader. hvilket ikke er praktisk.

Dette betyder, at for 40 grader Celsius får vi 0,40 volt og for 25 grader får vi 0,25 volt. Da disse værdier er meget lave for korrekt pwm på mosfet, er vi nødt til at gange det med en faktor.

Derfor multiplicerer vi det med 10 og giver i stedet denne værdi som analog udgang til PWM pin 10, dvs.

** analogWrite (10, z * 10)

Nu, for .25 volt får mosfet 0,25 * 10 = 2,5 volt

For .40 volt får mosfet 0,40 * 10 = 4 volt, hvor motoren næsten kører med sin fulde hastighed

SAG 1. Når temp. Er mindre end 25 grader

I dette tilfælde sender arduino 0 PWM spænding til pin 10 som i den sidste linje kode

** ellers
{analogWrite (10,0) // i ethvert andet tilfælde skal PWM på pin 10 være 0
} **

Da pwm-spænding på bunden af ​​mosfet er 0, forbliver den slukket, og motoren kobles fra kredsløbet.

Se simuleret kredsløb i dette tilfælde.

Arduino fan kontrol simulation

Som du kan se, er temperaturen 20 grader

Analog værdi = 41
Temperatur = 20
Kortlagt værdi = 100

Men da temp er mindre end 25 grader, får mosfet 0 volt som vist i fig (angivet med blå prik).
SAG 2. Når temp. Er større end 25 grader

Når temperaturen når 25 grader, sendes som specificeret i koden pwm-signal til basen af ​​mosfet, og med hver grad stigning i temperatur stiger også denne PWM-spænding, dvs.

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

Se simuleret kredsløb i dette tilfælde.

Som du kan se, når temperaturen stiger fra 20 grader til hele 40 grader, ændres alle tre værdier og ved 40 grader Celsius

Analog værdi = 82
Temperatur = 40
Kortlagt værdi = 200

Da temp er større end 25 grader, får mosfet tilsvarende PWM-spænding som vist i fig (angivet med rød prik).

Derfor begynder motoren at køre ved 25 grader, og med tilsvarende stigning i temperaturen pr. Grad øges pwm spænding fra ben 10 til bunden af ​​mosfet også. Derfor øges motorhastigheden lineært med temperaturstigningen og bliver næsten maksimal i 40 grader Celsius.

Hvis du har yderligere spørgsmål vedrørende ovennævnte forklarede automatiske temperaturstyrede jævnstrømsventilator kredsløb ved hjælp af blæser og Arduino, kan du altid bruge kommentarfeltet nedenfor og sende dine tanker til os. Vi vil tidligst prøve at komme tilbage.




Forrige: Enkel køleskabsbeskyttelseskreds Næste: Sådan designer du et UPS-kredsløb uden afbrydelig strømforsyning