Sirkuit Kipas DC Terkendali Suhu Arduino

Coba Instrumen Kami Untuk Menghilangkan Masalah





Pada artikel ini kita akan membuat beberapa rangkaian kipas dc dikendalikan suhu otomatis berbasis Arduino sederhana yang akan menghidupkan kipas atau gadget lain yang terhubung dengannya, ketika suhu sekitar mencapai tingkat ambang yang telah ditentukan sebelumnya. Kami akan menggunakan sensor DHT11 dan arduino untuk proyek ini.

Gambaran

Keindahan mikrokontroler adalah, kami mendapatkan kontrol yang sangat tepat atas periferal yang terhubung dengannya. Dalam proyek ini pengguna hanya perlu memasukkan suhu ambang ke dalam program, mikrokontroler akan mengurus fungsi lainnya.



Ada banyak proyek pengontrol suhu otomatis berbasis non-mikrokontroler yang tersedia di internet, seperti menggunakan komparator dan transistor.

Mereka sangat sederhana dan berfungsi dengan baik tetapi, masalah muncul saat mengkalibrasi level ambang menggunakan resistor atau potensiometer preset.



Kami memiliki ide buta saat mengkalibrasi dan pengguna mungkin perlu melakukan metode trial and error untuk menemukan sweet spot.

Masalah ini diatasi oleh mikrokontroler, pengguna hanya perlu memasukkan suhu dalam Celcius di proyek ini, jadi tidak perlu kalibrasi.

Proyek ini dapat digunakan di mana suhu internal sirkuit perlu distabilkan atau menyimpannya dari panas berlebih.

Pada diagram 1, kami menghubungkan kipas CPU sebagai output. Pengaturan ini dapat digunakan untuk mengontrol suhu lingkungan internal dari sirkuit tertutup.

Ketika suhu ambang tercapai, kipas akan menyala. Ketika suhu turun di bawah ambang batas suhu kipas mati. Jadi pada dasarnya ini adalah proses otomatis.

Pada diagram 2, kami menghubungkan relai untuk mengontrol perangkat yang berjalan pada tegangan listrik seperti kipas meja.

Ketika suhu ruangan mencapai suhu ambang, kipas akan menyala dan mati saat ruangan menjadi dingin.

Ini mungkin cara terbaik untuk menghemat daya dan ini bisa menjadi surga bagi orang-orang malas yang ingin orang lain menyalakan kipas angin saat mereka merasa hangat.

Diagram Sirkuit Menampilkan Kontrol Kipas DC

Kontrol kipas DC untuk pengaturan suhu otomatis

Setup ini dapat digunakan untuk sirkuit yang tertutup dalam sebuah kotak. LED menyala ketika level ambang batas preset tercapai dan juga menyalakan kipas.

Menghubungkan Relay untuk Mengontrol Kipas yang Lebih Besar

Kontrol kipas sakelar relai menggunakan sensor suhu Arduino

Rangkaian ini melakukan fungsi yang sama dengan rangkaian sebelumnya, sekarang kipas angin diganti dengan relay.

Sirkuit ini dapat mengontrol kipas meja atau kipas angin langit-langit atau gadget lain yang dapat mendinginkan suhu sekitar.

Perangkat yang terhubung mati segera setelah suhu mencapai di bawah level ambang batas yang telah ditetapkan.

Diagram rangkaian kipas dc yang dikontrol suhu yang diilustrasikan di sini hanyalah beberapa dari banyak kemungkinan. Anda dapat menyesuaikan sirkuit dan program untuk tujuan Anda sendiri.

CATATAN 1: #Pin 7 adalah keluaran.

CATATAN 2: Program ini hanya kompatibel dengan sensor DHT11 saja.

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

Kode 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 tersebut

int th = 30 // setel suhu ambang dalam Celcius.

Ganti '30' dengan nilai yang diinginkan.

Desain Kedua

Proyek rangkaian kipas dc yang dikontrol suhu kedua yang dibahas di bawah ini secara otomatis merasakan suhu sekitar dan menyesuaikan kecepatan motor kipas untuk menjaga suhu di sekitarnya tetap terkendali. Pemrosesan otomatis ini dilakukan melalui Arduino dan sensor suhu IC LM35.

Oleh:Ankit Negi

TUJUAN KAMI:

1). Begitu suhu di sekitar meningkat melebihi 25 derajat Celcius (Anda dapat mengubah nilai ini di program sesuai kebutuhan Anda, dijelaskan di bagian kerja) motor mulai berjalan.

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

3). Motor berjalan dengan kecepatan tertinggi segera setelah suhu naik hingga 40 derajat Celcius (nilai ini dapat diubah dalam program).

SENSOR SUHU LM35:

Untuk mencapai tugas yang disebutkan di atas, kita akan menggunakan temp. Sensor LM35 seperti yang digunakan secara luas dan mudah didapat.

LM35 memiliki 3 pin seperti yang terlihat pada gambar.

Pinout IC LM35

1. Vin-- pin ini dihubungkan ke catu daya dc antara 4 hingga 20 v.
2. Vout-- pin ini memberikan keluaran dalam bentuk tegangan.
3. GND-- pin ini terhubung ke terminal gnd rangkaian.

LM35, ketika terhubung ke catu daya, indra suhu lingkungan dan mengirimkan tegangan ekivalen sesuai dengan kenaikan suhu per derajat melalui pin keluarannya.

LM35 dapat merasakan suhu apa pun. antara -50 derajat hingga +150 derajat Celcius dan meningkatkan output sebesar 10 milivolt dengan kenaikan suhu 1 derajat. Jadi tegangan maksimum yang dapat diberikan sebagai output adalah 1,5 volt.

MENGAPA ARDUINO UNTUK PROYEK PENGENDALIAN KIPAS DC INI?

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

Kami juga akan menggunakan perintah arduino untuk mencetak suhu, nilai analog yang sesuai dan keluaran digital ke mosfet pada monitor serial ARDUINO IDE.

APA PERAN MOSFET DAYA?

Sirkuit ini tidak akan berguna jika tidak dapat menjalankan motor arus tinggi. Oleh karena itu untuk menjalankan motor tersebut digunakan MOSFET daya.

MENGAPA DIODE DIGUNAKAN?

Diode digunakan untuk melindungi mosfet dari bagian belakang E.M.F yang dihasilkan oleh motor saat berjalan.

DAFTAR BAGIAN UNTUK PROYEK:

1. LM35

2. ARDUINO

3. MOSFET DAYA (IRF1010E)

MOSFET DAYA (IRF1010E)

4. DIODE (1N4007)

DIODE (1N4007)

5. KIPAS (motor)

6. PENYEDIAAN TENAGA KIPAS

DIAGRAM SIRKUIT:

Kontrol kipas DC yang bergantung pada suhu Arduino

Buat koneksi seperti yang ditunjukkan pada diagram sirkuit.

a) Hubungkan pin vin lm358 ke 5v arduino
b) Hubungkan pin vout lm358 ke A0 dari arduino
c) Hubungkan pin ground lm358 ke GND arduino
d) Hubungkan base mosfet ke PWM pin 10 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
}
}

BEKERJA (memahami kode):

SEBUAH). VARIABEL X-

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

B). VARIABEL DAN-

Karena variabel ini saja, motor kipas kami bekerja sesuai dengan suhu yang sesuai. Apa yang dilakukan variabel ini adalah mengubah nilai analog yaitu variabel x ke suhu lingkungan yang sesuai.

Y = (500 * x) / 1023
1. Nilai analog pertama harus diubah ke tegangan yang sesuai, yaitu.
1023: 5v
Karenanya, (5000 milivolt * x) / 1023 V.
2. Sekarang kita tahu bahwa untuk setiap kenaikan derajat suhu output tegangan yang sesuai meningkat 10 mv yaitu
1 derajat Celcius: 10 milivolt
Karenanya, (5000 milivolt * x) / (1023 * 10) DEGREE

C). VARIABEL Z-

z = peta (x, 0, 1023, 0,255)
variabel ini mengubah nilai analog menjadi nilai digital untuk keluaran PWM pada pin 10.

CATATAN :: Kita tahu bahwa lm35 dapat memberikan maksimum 1,5 volt dan itu juga saat suhu. Apakah 150 derajat. yang tidak praktis.

Artinya untuk 40 derajat Celcius kita mendapatkan 0,40 volt dan untuk 25 derajat kita mendapatkan 0,25 volt. Karena nilai-nilai ini sangat rendah untuk pwm yang tepat di MOSFET, kita perlu mengalikannya dengan faktor.

Oleh karena itu kami mengalikannya dengan 10 dan sebagai gantinya memberikan nilai ini sebagai output analog ke pin PWM 10 yaitu

** analogWrite (10, z * 10)

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

Untuk 0,40 volt mosfet mendapat 0,40 * 10 = 4 volt di mana motor hampir berjalan dengan kecepatan penuh

KASUS 1. Saat suhu. Kurang dari 25 derajat

Dalam hal ini arduino mengirimkan tegangan 0 PWM ke pin 10 seperti pada baris kode terakhir

** lain
{analogWrite (10,0) // dalam hal lain PWM pada pin 10 harus 0
} **

Karena tegangan PWM pada basis MOSFET adalah 0, ia tetap mati dan motor terputus dari rangkaian.

Lihat sirkuit simulasi dalam kasus ini.

Simulasi kontrol kipas Arduino

Seperti yang Anda lihat, suhu 20 derajat

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

Tetapi karena suhu kurang dari 25 derajat maka mosfet mendapat 0 volt seperti yang ditunjukkan pada gambar (ditunjukkan dengan titik biru).
KASUS 2. Saat suhu. Lebih besar dari 25 derajat

Ketika suhu mencapai 25 derajat, maka seperti yang ditentukan dalam kode sinyal PWM dikirim ke basis MOSFET dan dengan setiap kenaikan derajat suhu ini tegangan PWM juga meningkat yaitu

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

Lihat sirkuit simulasi dalam kasus ini.

Seperti yang Anda lihat saat suhu meningkat dari 20 derajat ke 40 derajat, ketiganya berubah dan pada 40 derajat Celcius

Nilai analog = 82
Suhu = 40
Nilai yang dipetakan = 200

Karena suhu lebih besar dari 25 derajat maka mosfet mendapatkan tegangan PWM yang sesuai seperti yang ditunjukkan pada gambar (ditunjukkan dengan titik merah).

Oleh karena itu motor mulai berjalan pada 25 derajat dan dengan kenaikan yang sesuai dalam suhu per derajat tegangan PWM dari pin 10 ke basis MOSFET juga meningkat. Karenanya kecepatan motor meningkat secara linier dengan kenaikan suhu dan menjadi hampir maksimum untuk 40 derajat Celcius.

Jika Anda memiliki pertanyaan lebih lanjut tentang rangkaian kipas dc kontrol suhu otomatis yang dijelaskan di atas menggunakan kipas dan Arduino, Anda selalu dapat menggunakan kotak komentar di bawah dan mengirimkan pemikiran Anda kepada kami. Kami akan mencoba untuk kembali secepatnya.




Sepasang: Sirkuit Pelindung Kulkas Sederhana Berikutnya: Cara Mendesain Sirkuit Uninterruptible Power Supply (UPS)