Arduino temperatūras kontrolētas līdzstrāvas ventilatoru shēmas

Izmēģiniet Mūsu Instrumentu Problēmu Novēršanai





Šajā rakstā mēs izveidosim dažas vienkāršas Arduino bāzes automātiskas temperatūras kontrolētas līdzstrāvas ventilatoru shēmas, kas ieslēdz ventilatoru vai citus tam pievienotus sīkrīkus, kad apkārtējā temperatūra sasniegs iepriekš noteiktu sliekšņa līmeni. Šajā projektā mēs izmantosim DHT11 sensoru un arduino.

Pārskats

Mikrokontrolleru skaistums ir tāds, ka mēs iegūstam ļoti precīzu kontroli pār tiem pievienotajām perifērijas ierīcēm. Šajā projektā lietotājam vienkārši jāievada sliekšņa temperatūra programmā, mikrokontrolleris rūpēsies par pārējo funkciju.



Internetā ir pieejami daudzi tādi automātisko temperatūras regulatoru projekti, kuru pamatā nav mikrokontrolleri, piemēram, izmantojot salīdzinātāju un tranzistorus.

Tie ir ļoti vienkārši, un tie darbojas labi, bet problēma rodas, kalibrējot sliekšņa līmeni, izmantojot iepriekš iestatītu rezistoru vai potenciometru.



Mums ir akla ideja, kalibrējot to, un lietotājam, iespējams, būs jāizdara izmēģinājumu un kļūdu metode, lai atrastu saldo vietu.

Šīs problēmas pārvar mikrokontrolleri, lietotājam šajā projektā vienkārši jāievada temperatūra pēc Celsija, tāpēc nav nepieciešama kalibrēšana.

Šo projektu var izmantot, ja ķēdes iekšējā temperatūra ir jāstabilizē vai jāglābj tā no pārkaršanas.

1. diagrammā mēs pievienojam CPU ventilatoru kā izvadi. Šo iestatījumu var izmantot, lai kontrolētu slēgtas ķēdes iekšējo apkārtējās vides temperatūru.

Kad ir sasniegta sliekšņa temperatūra, ventilators ieslēdzas. Kad temperatūra nokrītas zem sliekšņa, ventilators izslēdzas. Tātad tas būtībā ir automatizēts process.

2. diagrammā mēs pievienojām releju ierīču kontrolei, kas darbojas no tīkla sprieguma, piemēram, galda ventilatora.

Kad telpas temperatūra sasniedz sliekšņa temperatūru, ventilators ieslēdzas un izslēdzas, kad istaba atdziest.

Tas var būt labākais enerģijas taupīšanas veids, un tas var būt debess slinkiem cilvēkiem, kuri vēlas citiem ieslēgt ventilatoru, kad viņiem ir silts.

Shēmas shēma, kurā parādīta līdzstrāvas ventilatora vadība

DC ventilatora vadība temperatūras regulēšanai automātiski

Šo iestatījumu var izvietot ķēdēm, kas ir ievietotas kastē. Gaismas diode ieslēdzas, kad sasniegts iepriekš iestatītais sliekšņa līmenis, un ieslēdz arī ventilatoru.

Releja pievienošana lielāku ventilatoru kontrolei

Releja slēdža ventilatora vadība, izmantojot Arduino temperatūras sensoru

Šī shēma veic līdzīgu iepriekšējās ķēdes funkciju, tagad ventilators tiek aizstāts ar releju.

Šī shēma var kontrolēt galda vai griestu ventilatoru vai jebkuru citu sīkrīku, kas var atdzist apkārtējās vides temperatūru.

Pievienotā ierīce izslēdzas, tiklīdz temperatūra ir sasniegusi iepriekš iestatīto sliekšņa līmeni.

Šeit ilustrētā līdzstrāvas ventilatora ķēdes shēma ar ierobežotu temperatūru ir tikai dažas no daudzajām iespējām. Jūs varat pielāgot shēmu un programmu saviem mērķiem.

1. PIEZĪME. Tiek izvadīta # piespraude 7.

2. PIEZĪME: Šī programma ir saderīga tikai ar DHT11 sensoru.

Programma iepriekš izskaidrotajai automātiskās temperatūras regulatora ķēdei, izmantojot Arduino:

Programmas kods

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

Piezīme: Programmā

int th = 30 // iestatiet sliekšņa temperatūru pēc Celsija.

Nomainiet “30” ar vēlamo vērtību.

Otrais dizains

Otrais zemāk aplūkotais līdzstrāvas ar regulējamu līdzstrāvas ventilatora ķēdes projekts automātiski nosaka apkārtējās vides temperatūru un pielāgo ventilatora motora ātrumu, lai apkārtējā temperatūra tiktu kontrolēta. Šī automātiskā apstrāde tiek veikta, izmantojot Arduino un temperatūras sensoru IC LM35.

Autors:Ankits Negi

MŪSU MĒRĶIS:

1). Tiklīdz apkārtējās vides temperatūra paaugstinās virs 25 grādiem pēc Celsija (šo vērtību programmā varat mainīt atbilstoši savām vajadzībām, kas paskaidrots darba sadaļā), motors sāk darboties.

2). Ar katru temperatūras paaugstināšanās pakāpi palielinās arī motora ātrums.

3). Motors darbojas ar maksimālo ātrumu, tiklīdz temperatūra paaugstinās līdz 40 grādiem pēc Celsija (šo vērtību var mainīt programmā).

TEMPERATŪRAS SENSORS LM35:

Lai sasniegtu iepriekš minēto uzdevumu, mēs izmantosim temp. Sensors LM35, jo tas tiek izmantots plaši un viegli pieejams.

LM35 ir 3 tapas, kā redzams attēlā.

LM35 IC pinout

1. Vin - šī tapa ir pievienota līdzstrāvas avotam no 4 līdz 20 v.
2. Vout - šī tapa dod izeju sprieguma formā.
3. GND - šī tapa ir savienota ar ķēdes otro spaili.

LM35, kad tas ir pievienots barošanas avotam, uztver apkārtējās vides temperatūra un caur izejas tapu nosūta līdzvērtīgu spriegumu atbilstoši temperatūras paaugstināšanās pakāpei.

LM35 var sajust jebkuru temp. no -50 grādiem līdz +150 grādiem pēc Celsija un palielina jaudu par 10 milivoltiem ar temperatūras paaugstināšanos par 1 grādu. Tādējādi maksimālais spriegums, ko tas var dot kā izeja, ir 1,5 volti.

KĀPĒC ARDUINO ŠAM DC FAN CONTROLLER PROJEKTAM?

Arduino ir jāmaina analogā vērtība, kas saņemta no LM35 izejas tapas, uz digitālo vērtību un nosūta atbilstošo digitālo izvadi (PWM) uz mosfet bāzi.

Mēs arī izmantosim arduino komandas drukāt temperatūru, atbilstoša analogā vērtība un digitālā izeja uz mosfet ARDUINO IDE sērijveida monitorā.

KĀDA IR POWER MOSFET LOMA?

Šī ķēde nebūs noderīga, ja tā nevar darbināt lielu strāvas motoru. Tāpēc, lai palaistu šādus motorus, tiek izmantots jauda MOSFET.

KĀPĒC DIODE LIETO?

Diodi izmanto, lai aizsargātu mosfetu no aizmugures E.M.F, ko rada motors, darbojoties.

PROJEKTA DAĻAS:

1. LM35

2. ARDUINO

3. POWER MOSFET (IRF1010E)

ko dara mux
POWER MOSFET (IRF1010E)

4. DIODE (1N4007)

DIODE (1N4007)

5. FAN (motors)

6. Ventilatora strāvas padeve

APKURES DIAGRAMMA:

Arduino temperatūras atkarīga līdzstrāvas ventilatora vadība

Veiciet savienojumus, kā parādīts shēmā.

a) Pievienojiet lm358 vin tapu ar 5du arduino
b) Pievienojiet lm358 vout tapu ar Arduino A0
c) Pievienojiet lm358 zemes tapu ar Arduino GND
d) Pievienojiet MOSFET pamatni PWM 10. tapai no Arduino

KODS:

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

DARBS (izpratnes kods):

A). Mainīgais X-

Tā ir vienkārši analogā vērtība, kuru saņem pin nr. A0 no LM35 izejas tapas.

B). MAINĪGS UN

Tikai šī mainīgā lieluma dēļ mūsu ventilatora motors darbojas atbilstoši attiecīgajai temperatūrai. Tas, ko šis mainīgais dara, ir tas, ka tas maina analogo vērtību, t.i., mainīgo x uz atbilstošo apkārtējās vides temperatūru.

Y = (500 * x) / 1023
1. Pirmā analogā vērtība jāmaina uz atbilstošo spriegumu, t.i.
1023: 5v
Tādējādi (5000 milivolti * x) / 1023 V
2. Tagad mēs zinām, ka katrai temperatūras paaugstināšanās pakāpei atbilstošā sprieguma izeja palielinās par 10 mv, t.i.
1 grāds pēc Celsija: 10 milivolti
Tādējādi (5000 milivoltu * x) / (1023 * 10) GRĀDA

C). Mainīgais Z-

z = karte (x, 0, 1023, 0,255)
šis mainīgais maina pwm izejas analogo vērtību uz digitālo vērtību 10. tapā.

PIEZĪME :: Mēs zinām, ka lm35 var nodrošināt ne vairāk kā 1,5 voltus un arī tad, ja temp. Ir 150 grādi. kas nav praktiski.

Tas nozīmē, ka 40 grādiem pēc Celsija mēs iegūstam 0,40 voltus un par 25 grādiem 0,25 voltiem. Tā kā pareizai pwm uz mosfet šīs vērtības ir ļoti zemas, mums tas ir jāreizina ar koeficientu.

Tādējādi mēs to reizinām ar 10 un tā vietā piešķiram šo vērtību kā analogo izeju PWM tapai 10, t.i.

** analogWrite (10, z * 10)

Tagad par 0,25 voltiem MOSFET saņem 0,25 * 10 = 2,5 volti

Par 0,40 voltu mosfet saņem 0,40 * 10 = 4 volti, pie kuriem motors gandrīz darbojas ar pilnu ātrumu

LIETA 1. Kad temp. Ir mazāks par 25 grādiem

Šajā gadījumā arduino nosūta 0 PWM spriegumu kontaktligzdai 10 tāpat kā pēdējā koda rindā

** cits
{analogWrite (10,0) // jebkurā citā gadījumā PWM uz 10. tapas jābūt 0
} **

Tā kā pwm spriegums uz mosfet bāzes ir 0, tas paliek izslēgts un motors tiek atvienots no ķēdes.

Šajā gadījumā skatiet simulēto shēmu.

Arduino ventilatora vadības simulācija

Kā redzat, temperatūra ir 20 grādi

Analogā vērtība = 41
Temperatūra = 20
Kartētā vērtība = 100

Bet, tā kā temperatūra ir mazāka par 25 grādiem, mosfet iegūst 0 voltu, kā parādīts attēlā (norādīts ar zilu punktu).
LIETA 2. Kad temp. Ir lielāks par 25 grādiem

Kad temperatūra sasniedz 25 grādus, tad, kā norādīts kodā, pwm signāls tiek nosūtīts uz mosfeta pamatni, un ar katru temperatūras pakāpes pakāpi palielinās arī šis PWM spriegums, t.i.

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

Šajā gadījumā skatiet simulēto shēmu.

Kā redzat, temperatūrai paaugstinoties no 20 grādiem līdz 40 grādiem, visas trīs vērtības mainās un pie 40 grādiem pēc Celsija

Analogā vērtība = 82
Temperatūra = 40 ° C
Kartētā vērtība = 200

Tā kā temperatūra ir lielāka par 25 grādiem, mosfet iegūst atbilstošu PWM spriegumu, kā parādīts attēlā (norādīts ar sarkanu punktu).

Tādējādi motors sāk darboties 25 grādos, un ar atbilstošu temperatūras grādu pieaugumu palielinās arī pwm spriegums no 10. kontakta līdz musfeta pamatnei. Tādējādi motora ātrums palielinās lineāri ar temperatūras paaugstināšanos un kļūst gandrīz maksimāls 40 grādiem pēc Celsija.

Ja jums ir kādi jautājumi par iepriekš izskaidroto automātiskās temperatūras kontrolētas līdzstrāvas ventilatora ķēdi, izmantojot ventilatoru un Arduino, jūs vienmēr varat izmantot zemāk esošo komentāru lodziņu un nosūtīt savas domas mums. Mēs centīsimies atgriezties ātrāk.




Pāri: Vienkārša ledusskapja aizsargu ķēde Nākamais: Kā izveidot nepārtrauktas barošanas avota (UPS) ķēdi