Selles artiklis ehitame paar lihtsat Arduino-põhist temperatuuri reguleeritavat alalisvoolu ventilaatori ahelat, mis lülitavad ventilaatori või mis tahes muu sellega ühendatud vidina sisse, kui ümbritseva õhu temperatuur saavutab eelnevalt kindlaksmääratud lävetaseme. Selle projekti jaoks kasutame DHT11 andurit ja arduino.
Ülevaade
Mikrokontrollerite ilu on see, et saame väga täpselt juhtida sellega ühendatud välisseadmeid. Selles projektis peab kasutaja sisestama programmis vaid lävetemperatuuri, mikrokontroller hoolitseb ülejäänud funktsiooni eest.
Internetis on saadaval palju mikrokontrolleripõhiseid automaatseid temperatuuri regulaatorite projekte, näiteks komparaatori ja transistoride kasutamine.
Need on väga lihtsad ja töötavad hästi, kuid probleem tekib lävitaseme kalibreerimisel eelseadistatud takisti või potentsiomeetri abil.
Selle kalibreerimisel on meil pime idee ja kasutajal võib tekkida vajadus katse- ja eksitusmeetodi järgi.
Nendest probleemidest saavad mikrokontrollerid üle, kasutaja peab selles projektis lihtsalt sisestama temperatuuri Celsiuse järgi, seega pole vaja kalibreerimist.
Seda projekti saab kasutada siis, kui vooluahela sisetemperatuur tuleb stabiliseerida või säästa seda ülekuumenemise eest.
Joonisel 1 ühendame väljundina protsessori ventilaatori. Seda seadistust saab kasutada suletud vooluringi sisemise keskkonna temperatuuri reguleerimiseks.
Lävetemperatuuri saavutamisel lülitub ventilaator sisse. Kui temperatuur langeb alla künnise, lülitub ventilaator välja. Seega on see põhimõtteliselt automatiseeritud protsess.
Joonisel 2 ühendasime seadmete juhtimiseks relee, mis töötab võrgu pingel, näiteks lauaventilaator.
Kui toatemperatuur saavutab lävetemperatuuri, lülitub ventilaator toa jahtumisel välja ja lülitub välja.
See võib olla parim viis energia säästmiseks ja see võib olla taevas laiskadele inimestele, kes soovivad teistel sooja tunde korral ventilaatorit sisse lülitada.
Voolu skeem, millel on alalisvoolu ventilaatori juhtimine
Seda seadistust võib kasutada kasti suletud vooluringide jaoks. Valgusdiood süttib, kui etteantud künnistase on saavutatud, ja lülitab sisse ka ventilaatori.
Relee ühendamine suuremate ventilaatorite juhtimiseks
See vooluahel täidab eelmise vooluahela sarnast funktsiooni, nüüd asendatakse ventilaator releega.
Selle vooluringi abil saab juhtida laua- või laeventilaatorit või mõnda muud vidinat, mis võib ümbritsevat temperatuuri jahutada.
Ühendatud seade lülitub välja niipea, kui temperatuur saavutab etteantud lävetaseme.
Siin illustreeritud temperatuuriga reguleeritava alalisvoolu ventilaatori skeem on vaid vähesed paljudest võimalustest. Saate skeemi ja programmi oma eesmärkidel kohandada.
MÄRKUS 1: väljastatakse # tihvt 7.
MÄRKUS 2: See programm ühildub ainult DHT11 anduriga.
Programm ülaltoodud automaatse temperatuuri regulaatori vooluringi jaoks, kasutades Arduino:
Programmi kood
Märkus. Programmis int th = 30 // lävitemperatuuri seadmine Celsiuse järgi. Asendage “30” soovitud väärtusega. Teine disain Teine allpool käsitletud temperatuuriga reguleeritava alalisvoolu ventilaatori vooluahela projekt tajub automaatselt ümbritsevat temperatuuri ja reguleerib ventilaatori mootori kiirust, et ümbritsevat temperatuuri kontrolli all hoida. See automaatne töötlemine toimub Arduino ja temperatuurianduri IC LM35 kaudu. Kõrval:Ankit Negi 1). Niipea, kui ümbritseva temperatuur tõuseb üle 25 Celsiuse kraadi (saate seda väärtust programmis muuta vastavalt oma vajadusele, selgitatud tööosas), hakkab mootor tööle. 2). Iga temperatuuri tõusu korral suureneb ka mootori kiirus. 3). Mootor töötab oma maksimaalsel kiirusel kohe, kui temperatuur tõuseb 40 kraadini (seda väärtust saab programmis muuta). Eespool nimetatud ülesande saavutamiseks kasutame temp. Sensor LM35, kuna seda kasutatakse laialdaselt ja hõlpsasti kättesaadavana. LM35-l on 3 tihvti, nagu näete jooniselt. 1. Vin - see tihvt on ühendatud alalisvoolu toiteallikaga vahemikus 4 kuni 20 v. LM35, kui see on ühendatud toiteallikaga, tajub ümbritseva keskkonna temperatuur ja saadab väljundtapi kaudu ekvivalentse pinge vastavalt temperatuuri tõusu kraadile. LM35 tunneb mis tahes temperatuuri. vahemikus -50 kuni +150 kraadi Celsiuse järgi ja suurendab 1-kraadise temperatuuri tõusuga toodangut 10 millivolti võrra. Seega on maksimaalne väljundiks antav pinge 1,5 volti. Arduino on kohustatud muutma LM35 väljundnõelalt saadud analoogväärtuse digitaalseks ja saadab vastava digitaalse väljundi (PWM) mosfeti alusele. Kasutame ka arduino käsib temperatuuri printida, vastav analoogväärtus ja digitaalväljund mosfetile ARDUINO IDE seeriamonitoril. Sellest vooluringist pole kasu, kui see ei saa töötada suure vooluga mootoriga. Seetõttu kasutatakse selliseid mootoreid võimsusega mosfet. Dioodi kasutatakse mosfeti kaitsmiseks töötamise ajal mootori tekitatud tagumise E.M.F eest. 1. LM35 2. ARDUINO 3. VÕIMMOSFET (IRF1010E) 4. DIODE (1N4007) 5. VENTILAATOR (mootor) 6. Ventilaatori toide Tehke ühendused vastavalt skeemile. a) Ühendage LM358 vin-tihvt arduino 5v-ga A). MUUTUV X- See on lihtsalt analoogväärtus, mille saab pin nr. A0 LM35 väljundnõelast. B). MUUTUV JA Ainult selle muutuja tõttu töötab meie ventilaatori mootor vastavalt vastavale temperatuurile. Selle muutuja abil muudetakse analoogväärtust, st muutujat x vastavaks ümbritseva keskkonna temperatuuriks. Y = (500 * x) / 1023 C). MUUTUV Z- z = kaart (x, 0, 1023, 0,255) MÄRGE :: Me teame, et lm35 suudab anda maksimaalselt 1,5 volti ja seda ka temperatuuri korral. Kas 150 kraadi. mis pole otstarbekas. See tähendab, et 40 kraadi Celsiuse korral saame 0,40 volti ja 25 kraadi korral 0,25 volti. Kuna need väärtused on mosfeti korraliku pwm korral väga madalad, peame selle korrutama teguriga. Seega korrutame selle 10-ga ja anname selle väärtuse analoogväljundina hoopis PWM-i tihvtile 10, s.t. ** analogWrite (10, z * 10) .25 volti eest saab mosfet 0,25 * 10 = 2,5 volti 0,40 volti eest saab mosfet 0,40 * 10 = 4 volti, mille juures mootor töötab peaaegu täiskiirusel JUHTUM 1. Kui temp. On alla 25 kraadi Sellisel juhul saadab arduino 0 PWM pinge kontakti 10 nagu koodirea viimasel real ** muu Kuna mosfeti aluse pwm pinge on 0, jääb see välja ja mootor lülitatakse vooluahelast välja. Vaadake sel juhul simuleeritud vooluahelat. Nagu näete, on temperatuur seega 20 kraadi Analoogväärtus = 41 Kuna temp on alla 25 kraadi, saab mosfet seega 0 volti, nagu joonisel näidatud (tähistatud sinise punktiga). Kui temperatuur jõuab 25 kraadini, saadetakse vastavalt koodile pwm signaal mosfeti alusele ja iga kraadi temperatuuri tõusuga suureneb ka see PWM pinge s.t. Vaadake sel juhul simuleeritud vooluahelat. Nagu näete, kui temperatuur tõuseb 20 kraadilt 40 kraadini, muutuvad kõik kolm väärtust ja temperatuuril 40 kraadi Analoogväärtus = 82 Kuna temp on suurem kui 25 kraadi, saab mosfet vastava PWM pinge, nagu on näidatud joonisel (tähistatud punase punktiga). Seetõttu hakkab mootor töötama 25 kraadi juures ja vastava temperatuuri kraadi tõusu korral suureneb ka pwm pinge tihvtist 10 kuni mosfeti aluspinnani. Seega suureneb mootori kiirus temperatuuri tõusuga lineaarselt ja saab 40 kraadi juures peaaegu maksimaalse. Kui teil on täiendavaid küsimusi ülalkirjeldatud automaatse temperatuuriga reguleeritava alalisvoolu ventilaatori ahela kohta, kasutades ventilaatorit ja Arduino, võite alati kasutada allolevat kommentaarikasti ja saata oma mõtted meile. Püüame kõige varem tagasi saada.//--------------------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---------------------// MEIE EESMÄRK:
TEMPERATUURIANDUR LM35:
2. Vout - see tihvt annab väljundi pinge kujul.
3. GND - see tihvt on ühendatud vooluahela teise klemmiga. MIKS ARDUINO SELLE DC-VENTILAATORI JUHTIMISPROJEKTI KOHTA?
MIS ON VÕIMMOSFETI ROLL?
MIKS DIODI KASUTATAKSE?
PROJEKTI OSADE LOETELU:
VÖÖDIAGRAMM:
b) Ühendage LM358 kinnitusnõel arduino A0-ga
c) Ühendage LM358 maandustihvt Arduino GND-ga
d) Ühendage mosfeti alus arduino PWM-tihvtiga 10 KOOD:
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
}
} TÖÖTAMINE (koodi mõistmine):
1. Esimene analoogväärtus tuleb muuta vastavaks pingeks, s.t.
1023: 5v
Seega (5000 millivolt * x) / 1023 V
2. Nüüd teame, et iga temperatuuri tõusu korral suureneb vastav pinge väljund 10 mv, s.t.
1 Celsiuse kraad: 10 millivolti
Seega (5000 millivolt * x) / (1023 * 10) KRAAD
see muutuja muudab tihvti 10 pwm väljundi analoogväärtuse digitaalseks.
{analogWrite (10,0) // igal muul juhul peab tihvti 10 PWM olema 0
} **
Temperatuur = 20
Kaardistatud väärtus = 100
JUHTUM 2. Kui temp. On suurem kui 25 kraadiif(y>25)
{analogWrite(10,z*10)
} which is z* 10.
Temperatuur = 40
Kaardistatud väärtus = 200
Eelmine: Lihtne külmkapikaitseahel Järgmine: Kuidas kujundada katkematu toiteallika (UPS) ahelat