Litar Kipas DC Terkawal Suhu Arduino

Cuba Instrumen Kami Untuk Menghapuskan Masalah





Dalam artikel ini kita akan membina beberapa litar kipas dc suhu automatik berasaskan Arduino sederhana yang akan menghidupkan kipas atau alat lain yang disambungkan padanya, apabila suhu persekitaran mencapai tahap ambang yang telah ditentukan. Kami akan menggunakan sensor DHT11 dan arduino untuk projek ini.

Gambaran keseluruhan

Keindahan mikrokontroler adalah, kita mendapat kawalan yang tepat terhadap periferal yang bersambung dengannya. Dalam projek ini pengguna hanya perlu memasukkan suhu ambang dalam program, mikrokontroler akan menguruskan fungsi yang selebihnya.



Terdapat banyak projek pengawal suhu automatik berasaskan bukan mikrokontroler yang terdapat di internet, seperti menggunakan pembanding dan transistor.

Mereka sangat sederhana dan mereka berfungsi dengan baik tetapi, masalah timbul semasa menentukur tahap ambang menggunakan perintang pratetap atau potensiometer.



Kami mempunyai idea buta semasa menentukurkannya dan pengguna mungkin perlu melakukan kaedah percubaan dan kesilapan untuk mencari titik manis.

Masalah-masalah ini diatasi oleh pengawal mikro, pengguna hanya perlu memasukkan suhu dalam Celsius dalam projek ini, jadi tidak perlu penentukuran.

Projek ini boleh digunakan di mana suhu dalaman litar perlu distabilkan atau menyelamatkannya dari terlalu panas.

Dalam rajah 1, kami menghubungkan kipas CPU sebagai output. Penyediaan ini dapat digunakan untuk mengawal suhu persekitaran dalaman litar tertutup.

Apabila suhu ambang dicapai kipas menyala. Apabila suhu turun di bawah ambang suhu kipas mati. Oleh itu, ini adalah proses automatik.

Dalam rajah 2, kami menyambungkan geganti untuk mengawal peranti yang berjalan pada voltan utama seperti kipas meja.

Apabila suhu bilik mencapai suhu ambang kipas menyala dan mati ketika bilik menyejuk.

Ini mungkin kaedah terbaik untuk menjimatkan kuasa dan ini boleh menjadi surga bagi orang yang malas yang ingin orang lain menghidupkan kipas ketika mereka merasa panas.

Litar Diagram Menunjukkan Kawalan Kipas DC

Kawalan kipas DC untuk menyesuaikan suhu secara automatik

Penyediaan ini mungkin digunakan untuk litar yang tertutup dalam kotak. LED menyala apabila tahap ambang yang telah ditetapkan dan juga menghidupkan kipas.

Menyambungkan Relay untuk Mengawal Peminat Lebih Besar

Relay beralih kawalan kipas menggunakan sensor suhu Arduino

Litar ini melakukan fungsi yang serupa dengan litar sebelumnya, kini kipas diganti dengan relay.

Litar ini dapat mengawal kipas meja atau kipas siling atau alat lain yang dapat menyejukkan suhu persekitaran.

Peranti yang disambungkan mati sebaik sahaja suhu mencapai di bawah tahap ambang yang telah ditetapkan.

Gambarajah litar kipas dc kawalan suhu yang digambarkan di sini hanyalah beberapa kemungkinan. Anda boleh menyesuaikan litar dan program untuk tujuan anda sendiri.

CATATAN 1: #Pin 7 adalah output.

CATATAN 2: Program ini hanya serasi dengan sensor DHT11 sahaja.

Program untuk rangkaian pengatur suhu automatik yang dijelaskan di atas menggunakan Arduino:

Kod Program

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

Catatan: Dalam program

int th = 30 // tetapkan suhu ambang dalam Celsius.

Ganti '30' dengan nilai yang diinginkan.

Reka Bentuk Kedua

Projek litar kipas dc terkawal suhu kedua yang dibincangkan di bawah secara automatik merasakan suhu persekitaran dan menyesuaikan kelajuan motor kipas untuk memastikan suhu di sekitarnya terkawal. Pemprosesan automatik ini dilakukan melalui Arduino dan sensor suhu IC LM35.

Oleh:Ankit Negi

OBJEKTIF KAMI:

1). Sebaik sahaja suhu di sekitarnya meningkat melebihi 25 darjah Celsius (anda boleh mengubah nilai ini dalam program mengikut keperluan anda, dijelaskan di bahagian kerja) motor mula berjalan.

2). Dan dengan setiap kenaikan suhu, kelajuan motor juga meningkat.

3). Motor berjalan dengan kelajuan tertinggi sebaik sahaja suhu meningkat hingga 40 darjah Celsius (nilai ini dapat diubah dalam program).

SENSOR SUHU LM35:

Untuk mencapai tugas yang disebutkan di atas, kita akan menggunakan temp. Sensor LM35 kerana ia digunakan secara meluas dan mudah didapati.

LM35 mempunyai 3 pin seperti yang anda lihat dalam gambar.

Lout IC IC LM35

1. Vin - pin ini disambungkan ke bekalan kuasa dc antara 4 hingga 20 v.
2. Vout - pin ini memberikan output dalam bentuk voltan.
3. GND - pin ini disambungkan ke terminal litar gnd.

LM35, apabila disambungkan ke bekalan kuasa merasakan suhu persekitaran dan menghantar voltan setara sesuai dengan kenaikan suhu setiap darjah melalui pin outputnya.

LM35 dapat merasakan sebarang temp. antara -50 darjah hingga +150 darjah Celsius dan meningkatkan output sebanyak 10 milivolt dengan kenaikan suhu 1 darjah. Oleh itu voltan maksimum yang dapat diberikan kerana output adalah 1.5 volt.

MENGAPA ARDUINO UNTUK PROJEK PENGAWAL PEMINAT DC INI?

Arduino diperlukan untuk mengubah nilai analog yang diterima dari pin output LM35 ke nilai digital dan mengirimkan output digital yang sesuai (PWM) ke dasar mosfet.

Kami juga akan menggunakan Arduino memerintahkan untuk mencetak suhu, nilai analog dan output digital yang sesuai untuk mosfet pada monitor bersiri ARDUINO IDE.

APA PERANAN MOSFET KUASA?

Litar ini tidak akan berguna sekiranya tidak dapat menjalankan motor arus tinggi. Oleh itu untuk menjalankan motor seperti itu digunakan mosfet.

MENGAPA DIODE DIGUNAKAN?

Diod digunakan untuk melindungi mosfet dari E.M.F belakang yang dihasilkan oleh motor semasa berjalan.

SENARAI BAHAGIAN UNTUK PROJEK:

1. LM35

2. ARDUINO

3. MOSFET KUASA (IRF1010E)

MOSFET KUASA (IRF1010E)

4. DIODE (1N4007)

DIODE (1N4007)

5. PEMINAT (motor)

6. BEKALAN KUASA PEMINAT

RAJAH LITAR:

Kawalan kipas DC bergantung pada suhu Arduino

Buat sambungan seperti yang ditunjukkan dalam rajah litar.

a) Sambungkan pin vin lm358 hingga 5v arduino
b) Sambungkan pin vout lm358 ke A0 arduino
c) Sambungkan pin tanah lm358 ke GND arduino
d) Sambungkan asas mosfet ke pin PWM 10 dari arduino

KOD:

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

KERJA (memahami kod):

A). PELBAGAI X-

Ini hanyalah nilai analog yang diterima oleh pin no. A0 dari pin output LM35.

B). BERBAGAI DAN-

Kerana pemboleh ubah ini sahaja, motor kipas kami berjalan sesuai dengan suhu yang sesuai. Apa yang dilakukan pemboleh ubah ini ialah mengubah nilai analog iaitu pemboleh ubah x kepada suhu persekitaran yang sepadan.

Y = (500 * x) / 1023
1. Nilai analog pertama mesti ditukar kepada voltan sepadan iaitu
1023: 5v
Oleh itu, (5000 milivolt * x) / 1023 V
2. Sekarang kita tahu bahawa untuk setiap darjah kenaikan suhu output voltan yang sepadan meningkat sebanyak 10 mv iaitu.
1 darjah Celsius: 10 milivolt
Oleh itu, (5000 milivolt * x) / (1023 * 10) IJAZAH

C). PELBAGAI Z-

z = peta (x, 0, 1023, 0,255)
pemboleh ubah ini mengubah nilai analog menjadi nilai digital untuk output pwm pada pin 10.

CATATAN :: Kami tahu bahawa lm35 dapat memberikan maksimum 1.5 volt dan itu juga ketika suhu. Adakah 150 deg. yang tidak praktikal.

Ini bermaksud untuk 40 darjah Celsius kita mendapat 0.40 volt dan untuk 25 darjah kita mendapat 0.25 volt. Oleh kerana nilai-nilai ini sangat rendah untuk pwm yang betul di mosfet, kita perlu mengalikannya dengan faktor.

Oleh itu, kita mengalikannya dengan 10 dan sebaliknya memberikan nilai ini sebagai output analog ke pin PWM 10 iaitu.

** analogWrite (10, z * 10)

Sekarang, untuk 0,25 volt mosfet mendapat 0,25 * 10 = 2,5 volt

Untuk .40 volt mosfet mendapat 0.40 * 10 = 4 volt di mana motor hampir berjalan pada kelajuan penuhnya

KES 1. Semasa temp. Adalah kurang daripada 25 darjah

Dalam kes ini arduino menghantar 0 voltan PWM ke pin 10 seperti pada baris terakhir kod

** lain
{analogWrite (10,0) // dalam kes lain PWM pada pin 10 mestilah 0
} **

Oleh kerana voltan pwm pada dasar mosfet 0, ia tetap mati dan motor terputus dari litar.

Lihat litar simulasi dalam kes ini.

Simulasi kawalan kipas Arduino

Seperti yang anda lihat, suhu adalah 20 darjah

Nilai analog = 41
Suhu = 20
Nilai yang dipetakan = 100

Tetapi kerana suhu kurang dari 25 darjah maka mosfet mendapat 0 volt seperti yang ditunjukkan dalam rajah (ditunjukkan dengan titik biru).
KES 2. Semasa temp. Lebih besar daripada 25 darjah

Apabila suhu mencapai 25 darjah, maka seperti yang dinyatakan dalam kod pwm isyarat dihantar ke dasar mosfet dan dengan setiap darjah kenaikan suhu voltan PWM ini juga meningkat i.e.

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

Lihat litar simulasi dalam kes ini.

Seperti yang anda lihat ketika suhu meningkat dari 20 darjah hingga 40 darjah, ketiga-tiga nilai berubah dan pada 40 darjah Celsius

Nilai analog = 82
Suhu = 40
Nilai dipetakan = 200

Oleh kerana suhu lebih besar daripada 25 darjah maka mosfet mendapat voltan PWM yang sepadan seperti yang ditunjukkan pada rajah (ditunjukkan dengan titik merah).

Oleh itu motor mula berjalan pada 25 darjah dan dengan kenaikan yang sesuai dalam suhu setiap darjah voltan pwm dari pin 10 ke dasar mosfet juga meningkat. Oleh itu kelajuan motor meningkat secara linear dengan peningkatan suhu dan menjadi hampir maksimum bagi 40 darjah Celsius.

Sekiranya anda mempunyai pertanyaan lebih lanjut mengenai litar kipas dc suhu automatik yang dijelaskan di atas menggunakan kipas dan Arduino, anda sentiasa boleh menggunakan kotak komen di bawah dan menghantar pendapat anda kepada kami. Kami akan berusaha kembali secepat mungkin.




Sebelumnya: Litar Pelindung Peti Sejuk Mudah Seterusnya: Cara Merangka Litar Bekalan Kuasa Tidak Terputus (UPS)