Nah solusinya bisa kita coba nih. Pakai timer. Jadi kita set si ‘timer’ nya jam berapa lampu nyala dan jam berapa lampu padam. Pada aplikasi ini saya memakai Desymega wRTC karena sudah terintegrasi dengan RTC DS1307 sehingga mudah di-develop.
Tambahan Relay untuk memutus dan menyambung jalur /kabel listrik ke lampu (gantinya saklar).
Program dibuat dengan BASCOM-AVR. Kalau mau lihat nih programe :
‘———————————-
$regfile = “m8535.dat”
$crystal = 16000000
$lib “mcsbyte.lbx”
$lib “ds1307clock.lib”
Config Sda = Portd.7
Config Scl = Portd.6
Const Ds1307w = &HD0
Const Ds1307r = &HD1
Config Clock = User
Ddrd.0 = 1
Portd.0 = 0
Dim Weekday As Byte
Dim J_on As Byte , J_off As Byte
Dim M_on As Byte , M_off As Byte
Config Lcdpin = Pin ,Db7 = Portc.7 , E = Portc.2 , Rs = Portc.0
Config Lcd = 16 * 2
Cursor Off
Cls
Lcd “Kontrol Lampu”
Lowerline
Lcd “Otomatis”
Wait 3
Cls
Lcd “Tgl=”
Lowerline
Lcd “Jam=”
‘——————————————–
‘—- seting jam:menit pada lampu————
J_on = 17
M_on = 30
J_off = 5
M_off = 15
Do
‘—- ambil data jam di RTC
Locate 1 , 6
Lcd Date$
Locate 2 , 6
Lcd Time$
Gosub Getdatetime
If J_on = _hour And M_on = _min Then
Portd.0 = 1
End If
If J_off = _hour And M_off = _min Then
Portd.0 = 1
End If
Waitms 1000
Loop
‘************************** RTC
Getdatetime:
I2cstart
I2cwbyte Ds1307w
I2cwbyte 0
I2cstart
I2cwbyte Ds1307r
I2crbyte _sec , Ack
I2crbyte _min , Ack
I2crbyte _hour , Ack
I2crbyte Weekday , Ack
I2crbyte _day , Ack
I2crbyte _month , Ack
I2crbyte _year , Nack
I2cstop
_sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)
_day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year)
Return
Setdate:
_day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year) I2cstart
I2cwbyte Ds1307w
I2cwbyte 4 7
I2cwbyte _day
I2cwbyte _month
I2cwbyte _year
I2cstop
Return
Settime:
_sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour)
I2cstart
I2cwbyte Ds1307w
I2cwbyte 0
I2cwbyte _sec
I2cwbyte _min
I2cwbyte _hour
I2cstop
Return
Pada program tersebut lampu hanya 1. Dikontrol oleh relay yang dihubungkan dengan driver relay ke PORTD.0. Jam nyala lampu diset pada jam 17.30 dan jam mati lampu pada jam 5.15. Hasilnya seperti pada gambar.
Sistem ini masih dapat kita kembangkan. Jumlah lampu yang dikontrol dapat ditambah menjadi 4 misalnya. Seting waktu juga dapat dibuat dengan keypad. Nah kalau ada yang tertarik atau berminat, bisa memakai alat ini.
Spesifikasi :
- Desymega wRTC (Atmega8535, LCD 2×16, RTC DS1307, terintegrasi dengan USB Downloader, 16 MHz crystal, 3 Port ekspansi)
- Relay board (4 relay)
- Keypad 4×3
- 4 buah lampu AC + fiting