Kali ini saya akan menjelaskan mengenai bagaimana cara membuat alat kendali suhu ruangan menggunakan kipas DC brushless dan sensor suhu LM35, prinsip kerjanya yaitu jika terdeteksi ada manusia didalam ruangan / ada gerakan didalam ruangan maka kipas akan aktif, kecepatan kipas jika suhu yang terdeteksi kurang dari 27 maka kipas akan berputar lambat namun jika yang terdeteksi suhunya diatas 27 maka kipas akan berputar kencang, ada 2 cara untuk kendali dc brushless yaitu pertama dengan menggunakan variabel tegangan / supply motor yang berbeda misal kipas dc 12 v, maka untuk kecepatan lambat berikan tegangan 5v, untuk kecepatan penuh beri tegangan 12v, untuk cara kedua yaitu dengan sistem on / off, jadi kipas akan di on kan beberapa milidetik kemudian dimatikan beberapa milidetik sehingga terlihat kipas berputar lambat, untuk lebih jelasnya berikut penjelasan program dan skemanya.
a. Minimum System
b. Kipas DC Brushless
c. Sensor LM35 dan PIR
d. Transistor 2N3055
e. Program BAscom AVR
$regfile = "m16def.dat"
$crystal = 12000000
Config Lcdpin = Pin , Rs = Portc.0 , E = Portc.1 , Db4 = Portc.2
Config Lcdpin = Pin , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5
Config Lcd = 16 * 2
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Ddrd.7 = 1
Ddrd.6 = 1
Dim Adclm35 As Word
Dim Adcpir As Word
Dim Suhu As Single
Dim Datsuhu As String * 5
Cls
Cursor Off
Start Adc
Portd.7 = 0
Main:
Do
Adclm35 = Getadc(7)
Adcpir = Getadc(6)
Suhu = Adclm35 * 5
Suhu = Suhu / 1023
Suhu = Suhu * 100
Datsuhu = Fusing(suhu , "#.##")
Upperline
Lcd "Suhu = " ; Datsuhu
If Adcpir > 100 Then
Lowerline
Lcd "Pir = ON"
Else
Lowerline
Lcd "Pir = OFF"
End If
If Adcpir > 100 And Suhu > 27 Then
'Kencang
Portd.7 = 1
Elseif Adcpir > 100 And Suhu < 27 Then
'Lambat
Portd.7 = 1
Waitms 500
Portd.7 = 0
Waitms 500
Elseif Adcpir < 100 And Suhu < 27 Then
Portd.7 = 0
Elseif Adcpir < 100 And Suhu > 27 Then
Portd.7 = 0
End If
Waitms 200
Cls
Loop
$crystal = 12000000
Config Lcdpin = Pin , Rs = Portc.0 , E = Portc.1 , Db4 = Portc.2
Config Lcdpin = Pin , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5
Config Lcd = 16 * 2
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Ddrd.7 = 1
Ddrd.6 = 1
Dim Adclm35 As Word
Dim Adcpir As Word
Dim Suhu As Single
Dim Datsuhu As String * 5
Cls
Cursor Off
Start Adc
Portd.7 = 0
Main:
Do
Adclm35 = Getadc(7)
Adcpir = Getadc(6)
Suhu = Adclm35 * 5
Suhu = Suhu / 1023
Suhu = Suhu * 100
Datsuhu = Fusing(suhu , "#.##")
Upperline
Lcd "Suhu = " ; Datsuhu
If Adcpir > 100 Then
Lowerline
Lcd "Pir = ON"
Else
Lowerline
Lcd "Pir = OFF"
End If
If Adcpir > 100 And Suhu > 27 Then
'Kencang
Portd.7 = 1
Elseif Adcpir > 100 And Suhu < 27 Then
'Lambat
Portd.7 = 1
Waitms 500
Portd.7 = 0
Waitms 500
Elseif Adcpir < 100 And Suhu < 27 Then
Portd.7 = 0
Elseif Adcpir < 100 And Suhu > 27 Then
Portd.7 = 0
End If
Waitms 200
Cls
Loop
f. VIDEO HASILNYA
No comments:
Post a Comment