Arduino Lämpötilaohjatut tasavirtapuhaltimen piirit

Kokeile Instrumenttia Ongelmien Poistamiseksi





Tässä artikkelissa aiomme rakentaa pari yksinkertaista Arduino-pohjaista automaattista lämpötilaa ohjattua tasavirtapuhaltimen piiriä, jotka käynnistävät tuulettimen tai minkä tahansa muun siihen kytketyn laitteen, kun ympäristön lämpötila saavuttaa ennalta määrätyn kynnystason. Aiomme käyttää DHT11-anturia ja arduinoa tähän projektiin.

Yleiskatsaus

Mikrokontrollerien kauneus on, että saamme erittäin tarkan hallinnan siihen kytketyistä oheislaitteista. Tässä projektissa käyttäjän on vain syötettävä kynnyslämpötila ohjelmassa, mikro-ohjain huolehtii lopputoiminnosta.



Internetissä on tonnia ei-mikrokontrolleripohjaisia ​​automaattisia lämpötilansäätöprojekteja, kuten komparaattorin ja transistoreiden käyttö.

Ne ovat hyvin yksinkertaisia ​​ja toimivat hyvin, mutta ongelma syntyy kalibroimalla kynnystaso käyttämällä esiasetettua vastusta tai potentiometriä.



Meillä on sokea idea kalibroimalla sitä, ja käyttäjän on ehkä tehtävä kokeiluversiomenetelmä löytääkseen makean paikan.

Mikrokontrollerit voittavat nämä ongelmat, käyttäjän on vain syötettävä lämpötila Celsius-arvoon tässä projektissa, joten kalibrointia ei tarvita.

Tätä projektia voidaan käyttää, kun piirin sisäinen lämpötila on vakautettava tai säästettävä sitä ylikuumenemiselta.

Kaaviossa 1 yhdistämme CPU-tuulettimen lähtöön. Tätä asetusta voidaan käyttää suljetun piirin sisäisen ympäristön lämpötilan säätämiseen.

Kun kynnyslämpötila on saavutettu, tuuletin käynnistyy. Kun lämpötila laskee alle kynnysarvon, tuuletin sammuu. Joten se on pohjimmiltaan automatisoitu prosessi.

Kaaviossa 2 kytkimme laitteiden ohjaukseen tarkoitetun releen, joka toimii verkkojännitteellä, kuten pöydän tuulettimella.

Kun huonelämpötila saavuttaa kynnyslämpötilan, tuuletin käynnistyy ja sammuu, kun huone jäähtyy.

Tämä voi olla paras tapa säästää virtaa, ja tämä voi olla taivas laiskille ihmisille, jotka haluavat muiden kytkemään tuulettimen PÄÄLLE, kun he tuntevat lämpimän.

Piirikaavio, jossa on DC-puhaltimen ohjaus

DC-tuulettimen ohjaus lämpötilan säätöön automaattinen

Tämä asetus voidaan ottaa käyttöön piireille, jotka on suljettu laatikkoon. LED syttyy, kun asetettu kynnysarvo on saavutettu, ja käynnistää myös tuulettimen.

Releen liittäminen isompien tuulettimien hallintaan

Relekytkimen tuulettimen ohjaus Arduino-lämpötila-anturilla

Tämä piiri suorittaa samanlaisen toiminnan kuin edellinen piiri, nyt puhallin on korvattu releellä.

Tämä piiri voi ohjata pöytä- tai kattotuuletin tai mitä tahansa muuta laitetta, joka voi jäähdyttää ympäristön lämpötilaa.

Yhdistetty laite sammuu heti, kun lämpötila saavuttaa asetetun kynnysarvon.

Tässä esitetty lämpötilaohjattu tasavirtapuhaltimen piirikaavio on vain muutama monista mahdollisuuksista. Voit mukauttaa piirin ja ohjelman omaan käyttötarkoitukseesi.

HUOMAUTUS 1: Tulostetaan # nasta 7.

HUOMAUTUS 2: Tämä ohjelma on yhteensopiva vain DHT11-anturin kanssa.

Ohjelma edellä selitetylle automaattiselle lämpötilan säätöpiirille Arduinoa käyttäen:

Ohjelmakoodi

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

Huomaa: Ohjelmassa

int th = 30 // aseta kynnyslämpötila celsiusasteina.

Korvaa “30” halutulla arvolla.

Toinen malli

Toinen alla käsitelty lämpötilaohjattu tasavirtapuhaltimen piirihanke tunnistaa automaattisesti ympäristön lämpötilan ja säätää tuulettimen moottorin nopeuden pitää ympäröivä lämpötila hallinnassa. Tämä automaattinen käsittely tapahtuu Arduinon ja lämpötila-anturin IC LM35 kautta.

Kirjoittaja:Ankit Negi

TAVOITE:

1). Heti kun ympäröivän lämpötila nousee yli 25 celsiusasteen (voit muuttaa tätä arvoa ohjelmassa tarpeidesi mukaan, selitetty työosassa), moottori alkaa käydä.

2). Jokaisen lämpötilan nousun myötä myös moottorin nopeus kasvaa.

3). Moottori käy huippunopeudella heti, kun lämpötila nousee 40 celsiusasteeseen (tätä arvoa voidaan muuttaa ohjelmassa).

LÄMPÖTILA-ANTURI LM35:

Edellä mainitun tehtävän saavuttamiseksi aiomme käyttää lämpötilaa. Sensori LM35, koska sitä käytetään laajasti ja helposti saatavilla.

LM35: llä on 3 nastaa, kuten näet kuvasta.

LM35 IC -piiri

1. Vin - tämä tappi on kytketty tasavirtalähteeseen välillä 4 - 20 V.
2. Vout - tämä tappi antaa lähdön jännitteen muodossa.
3. GND - tämä tappi on kytketty piirin gnd-liittimeen.

LM35, kun se on kytketty virtalähteeseen, tunnistaa ympäristön lämpötila ja lähettää vastaavan jännitteen lämpötilaa kohti nousun mukaan ulostulotapinsa kautta.

LM35 tunnistaa minkä tahansa lämpötilan. välillä -50 - +150 celsiusastetta ja lisää tuotantoa 10 millivolttia 1 asteen lämpötilan noustessa. Siten suurin jännite, jonka se voi antaa lähtöön, on 1,5 volttia.

MIKSI ARDUINO TÄLLE DC-TUULETTIMEN OHJAIMEN PROJEKTILLE?

Arduinon on muutettava LM35: n lähtöliittimestä vastaanotettu analoginen arvo digitaaliseksi arvoksi ja lähetettävä vastaava digitaalilähtö (PWM) mosfetin pohjaan.

Käytämme myös arduino käskee tulostuslämpötilaa, vastaava analoginen arvo ja digitaalilähtö mosfetille ARDUINO IDE -sarjan näytöllä.

MIKÄ ON VOIMAMOSFETIN Rooli?

Tästä piiristä ei ole hyötyä, jos se ei voi käyttää suurivirtaista moottoria. Siksi tällaisten moottoreiden ajamiseksi käytetään virtalähdettä.

MIKSI DIODIA KÄYTETÄÄN?

Diodia käytetään suojaamaan mosfetiä moottorin takana olevasta E.M.F: stä juoksun aikana.

PROJEKTIN OSALUETTELO:

1. LM35

2. ARDUINO

3. VIRTAMOSFET (IRF1010E)

VIRTAMOSFET (IRF1010E)

4. DIODI (1N4007)

DIODI (1N4007)

5. TUULETIN (moottori)

6. TUULETTIMEN VIRTALÄHDE

PIIRIKAAVIO:

Arduino lämpötilasta riippuva DC-tuulettimen ohjaus

Tee liitännät piirikaavion mukaisesti.

a) Liitä LM358: n vin-nasta 5 V: n arduinoon
b) Yhdistä LM358: n uuttotappi arduinon A0: een
c) Yhdistä LM358: n maadoitustappi arduinon GND: hen
d) Liitä mosfetin pohja Arduinon PWM-nastaan ​​10

KOODI:

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

TYÖ (koodin ymmärtäminen):

A). MUUTTAVA X-

Tämä on yksinkertaisesti analoginen arvo, jonka nasta nro vastaanottaa. A0 LM35: n lähtötapista.

B). MUUTTUVAT JA-

Vain tämän muuttujan takia puhaltimen moottori käy vastaavan lämpötilan mukaisesti. Mitä tämä muuttuja tekee, se muuttaa analogisen arvon eli muuttujan x vastaavaksi ympäristön lämpötilaksi.

Y = (500 * x) / 1023
1. Ensimmäinen analogiarvo on muutettava vastaavaksi jännitteeksi, ts.
1023: 5v
Näin ollen (5000 millivoltia * x) / 1023 V
2. Nyt tiedämme, että kutakin lämpötilan nousua vastaava jännitelähtö kasvaa 10 mv, ts.
1 celsiusaste: 10 millivolttia
Näin ollen (5000 millivoltti * x) / (1023 * 10) Aste

C). MUUTTUVA Z-

z = kartta (x, 0, 1023, 0,255)
tämä muuttuja muuttaa nasta 10: n analogisen arvon digitaaliseksi pwm-ulostuloksi.

HUOMAUTUS :: Tiedämme, että lm35 voi tuottaa enintään 1,5 voltin jännitteen ja myös lämpötilan ollessa. On 150 astetta. mikä ei ole käytännöllistä.

Tämä tarkoittaa, että 40 celsiusasteelle saadaan 0,40 volttia ja 25 asteelle 0,25 volttia. Koska nämä arvot ovat hyvin pieniä oikean pwm: n kohdalla mosfetissä, meidän on kerrottava se kertoimella.

Siksi kerrotaan se 10: llä ja annetaan sen sijaan tämä arvo analogisena ulostulona PWM-nastalle 10, ts.

** analoginen kirjoitus (10, z * 10)

0,25 voltin mosfet saa nyt 0,25 * 10 = 2,5 volttia

0,40 volttia kohti mosfet saa 0,40 * 10 = 4 volttia, jossa moottori käy melkein täydellä nopeudella

TAPAUS 1. Kun lämpötila On alle 25 astetta

Tässä tapauksessa arduino lähettää 0 PWM-jännitettä nastalle 10 kuten koodin viimeisellä rivillä

** muuta
{analogWrite (10,0) // kaikissa muissa tapauksissa nastan 10 PWM: n on oltava 0
} **

Koska mosfetin pohjassa oleva pwm-jännite on 0, se pysyy pois päältä ja moottori irtoaa piiristä.

Katso tässä tapauksessa simuloitu piiri.

Arduino-tuulettimen ohjaussimulaatio

Kuten näette, lämpötila on siis 20 astetta

Analoginen arvo = 41
Lämpötila = 20
Kartoitettu arvo = 100

Mutta koska lämpötila on alle 25 astetta, mosfet saa siten 0 voltin, kuten kuvassa näkyy (merkitty sinisellä pisteellä).
TAPAUS 2. Kun lämpötila On suurempi kuin 25 astetta

Kun lämpötila saavuttaa 25 asteen, koodissa määritellyllä tavalla pwm-signaali lähetetään mosfetin pohjaan ja jokaisen lämpötilan nousun myötä myös tämä PWM-jännite kasvaa, ts.

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

Katso tässä tapauksessa simuloitu piiri.

Kuten voit nähdä, kun lämpötila nousee 20 asteesta aina 40 asteeseen, kaikki kolme arvoa muuttuvat ja 40 asteessa

Analoginen arvo = 82
Lämpötila = 40
Kartoitettu arvo = 200

Koska lämpötila on yli 25 astetta, mosfet saa vastaavan PWM-jännitteen, kuten kuvassa näkyy (merkitty punaisella pisteellä).

Siksi moottori alkaa käydä 25 asteessa ja vastaavasti nousee lämpötilaa kohti pwm-jännite myös nastasta 10 mosfetin pohjaan. Siksi moottorin nopeus kasvaa lineaarisesti lämpötilan nousun myötä ja nousee melkein maksimiin 40 celsiusasteelle.

Jos sinulla on vielä kysyttävää yllä selitetystä automaattisesta lämpötilasäädetystä tasavirtapuhaltimen piiristä tuulettimen ja Arduinon avulla, voit aina käyttää alla olevaa kommenttikenttää ja lähettää ajatuksesi meille. Yritämme palata aikaisintaan.




Edellinen: Yksinkertainen jääkaapin suojapiiri Seuraava: Kuinka suunnitella keskeytymätön virtalähde (UPS)