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
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
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
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 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). 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. 1. Vin-- pin ini dihubungkan ke catu daya dc antara 4 hingga 20 v. 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. 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. Sirkuit ini tidak akan berguna jika tidak dapat menjalankan motor arus tinggi. Oleh karena itu untuk menjalankan motor tersebut digunakan MOSFET daya. Diode digunakan untuk melindungi mosfet dari bagian belakang E.M.F yang dihasilkan oleh motor saat berjalan. 1. LM35 2. ARDUINO 3. MOSFET DAYA (IRF1010E) 4. DIODE (1N4007) 5. KIPAS (motor) 6. PENYEDIAAN TENAGA KIPAS Buat koneksi seperti yang ditunjukkan pada diagram sirkuit. a) Hubungkan pin vin lm358 ke 5v arduino 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 C). VARIABEL Z- z = peta (x, 0, 1023, 0,255) 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 Karena tegangan PWM pada basis MOSFET adalah 0, ia tetap mati dan motor terputus dari rangkaian. Lihat sirkuit simulasi dalam kasus ini. Seperti yang Anda lihat, suhu 20 derajat Nilai analog = 41 Tetapi karena suhu kurang dari 25 derajat maka mosfet mendapat 0 volt seperti yang ditunjukkan pada gambar (ditunjukkan dengan titik biru). 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 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 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.//--------------------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---------------------// TUJUAN KAMI:
SENSOR SUHU LM35:
2. Vout-- pin ini memberikan keluaran dalam bentuk tegangan.
3. GND-- pin ini terhubung ke terminal gnd rangkaian. MENGAPA ARDUINO UNTUK PROYEK PENGENDALIAN KIPAS DC INI?
APA PERAN MOSFET DAYA?
MENGAPA DIODE DIGUNAKAN?
DAFTAR BAGIAN UNTUK PROYEK:
DIAGRAM SIRKUIT:
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):
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
variabel ini mengubah nilai analog menjadi nilai digital untuk keluaran PWM pada pin 10.
{analogWrite (10,0) // dalam hal lain PWM pada pin 10 harus 0
} **
Suhu = 20
Nilai yang dipetakan = 100
KASUS 2. Saat suhu. Lebih besar dari 25 derajatif(y>25)
{analogWrite(10,z*10)
} which is z* 10.
Suhu = 40
Nilai yang dipetakan = 200
Sepasang: Sirkuit Pelindung Kulkas Sederhana Berikutnya: Cara Mendesain Sirkuit Uninterruptible Power Supply (UPS)