ALAT PEMUTUS LISTRIK DENGAN TIMER
( DIGITAL TIME SWITCH )
MENGGUNAKAN ATMEGA 8535
TUGAS AKHIR
Oleh:
Eva Erli Kusuma
3210701013
Suhaimi
3210701019
Disusun untuk memenuhi syarat kelulusan Program Diploma III
Program Studi Teknik Elektro
Politeknik Batam
PROGRAM STUDI TEKNIK ELEKTRO
POLITEKNIK BATAM
BATAM
2010
LEMBARAN PENGESAHAN
ALAT PEMUTUS LISTRIK DENGAN TIMER
(DIGITAL TIME SWITCH)
MENGGUNAKAN ATMEGA 8535
TUGAS AKHIR
Oleh:
EVA ERLI KUSUMA
3210701013
SUHAIMI
3210701019
Diajukan dan disahkan sebagai laporan Tugas Akhir
di Program Studi Teknik Elektro Politeknik Batam
Batam, 5 juni 2010
Pembimbing I,
IMAN FAHRUZI,ST
NIK :100007
KATA PENGANTAR
Rasa syukur yang tidak terhigga penulis aturkan kepada Tuhan Yang Maha
Esa, atas limpahan karunia dan ilmu sehigga penulis dapat menyelesaikan Laporan
Tugas Akhir ini dengan baik yang tidak terlepas dari bantuan dosen dan rekan-rekan
mahasiswa Politeknik Batam.
Penulisan Lapora Tugas Akhir ini dimaksudkan untuk melengkapi persyaratan
kelulusan tingkat Diploma III Program Studi Teknik Elektro Politeknik Batam. Untuk
memenuhi persyaratan tersebut maka penulis mencoba untuk mengaplikasikan
sebuah sistem dalam bentuk alat yang dikontrol secara otomatis. Fungsi dari alat
pemutus listrik dengan timer ini adalah untuk penghematan pemakaian listrik.
Penulisan Laporan Tugas Akhir ini dapat disusun dan diselesaikan dengan
baik tidak terlepas dari bantuan dan dukungan dari semua pihak yang ikut dalam
membimbing penulis untuk menyelesaikan Laporan Tugas Akhir ini. Pada
kesempatan ini, penulis mengucapkan terima kasih kepada:
1.
ALLAH SWT, atas anugerah yang telah diberikan kepada penulis.
2.
Kedua orang tua dan keluarga atas jasa Doa, bimbingan dan nasehat.
3.
Bapak Dr. Priyono Eko Sanyoto, selaku Direktur Politeknik Batam.
4.
Bapak Iman Fahruzi, ST. selaku Ka. Prodi Teknik Elektro Politeknik Batam.
5.
Bapak Iman Fahruzi, ST. Selaku dosen pembimbing tugas akhir kami
7.
Seluruh Dosen-dosen Teknik Elektro Politeknik Batam.
8.
Bapak Lukman hakim, Amd. Yang telah bersedia membimbing kami.
9.
Seluruh teman-teman yang telah membantu atas terselesaikannya buku
laporan ini.
Semoga amal dan ibadah diterima di sisi Tuhan yang Maha Esa, atas bantuan
moril maupun spiritual demi terselesaikannya laporan ini. Penulis sadar masih banyak
kekurangan yang terdapat pada Laporan Tugas Akhir ini, oleh karena itu saran dan
kritik yang membangun penulis harapkan dari semua kalangan.
Batam, juni 2010
ABSTRAK
Alat pemutus listrik menggunakan timer adalah alat yang dirancang untuk
menghemat pemakaian listrik yang berlebihan dengan cara menyesuaikan pemakaian
dengan seefesien mungkin sehingga bisa menghemat sumber energi yang kita pakai.
Dengan menggunakan Atmega8535 dan RTC DS1307 waktu pemakaian dapat diatur.
Penggunaan Keypad membantu dalam setting waktu pemakaian listrik. Atmega8535
merupakan kontroller dari alat pemutus listrik dengan program menggunakan bahasa
C, alat yang dibuat bekerja sesuai dengan setting dari pengguna. Jika waktu yang
disetting telah sesuai maka sumber listrik diputus.
DAFTAR ISI
Kata Pengatar ...
i
Abstrak ... iii
Daftar Isi ... iv
Daftar Tabel ... vii
Daftar Gambar ... viii
BAB I PENDAHULUAN ...
1
1.1 LATAR BELAKANG ... 1
1.2 TUJUAN DAN MANFAAT ... 1
1.3 BATASAN MASALAH ... 1
1.5 METODE PENULISAN ... 2
1.6 SISTEMATIKA PENULISAN ... 2
BAB II IKHTISAR SISTEM ...
4
2.1 DESKRIPSI UMUM ... 4
2.2 KARAKTERISTIK ... 5
2.3 LINGKUNGAN OPERASI DAN PENGEMBANGAN ... 5
BAB III LANDASAN TEORI ...
6
3.1 MIKROKONTROLER ATMEGA 8535 ... 6
3.2 Real Time Clock ... 8
3.3 LCD ... 9
3.4 KEYPAD ... 10
BAB IV PERANCANGAN SISTEM ...
13
4.1 PERANCANGAN RANGKAIAN ... 13
4.1.1 Rangkaian Power Supply ... 13
4.1.2 Mikrokontroler ATmega 8535L ... 14
4.1.3 Rangkaian RTC ... 15
4.1.4 Rangkaian RELAY ... 16
4.1.5 Rangkaian Keypad ... 17
4.1.6 Rangkaian LCD... 17
4.2 PERANCANGAN MEKANIK ... 18
4.3 PERANCANGAN SOFTWARE ... 19
4.3.1 Listing Program LCD ... 19
4.3.2 Listing Program KEYPAD... 20
4.3.3 Listing Program RTC ... 21
4.3.4 Listing Program RELAY ... 21
4.3.5 Flowchart Pemrograman ... 23
BAB V PENGUKURAN, PENGUJIAN DAN ANALISA SISTEM ...
24
5.1 PENGUKURAN ... 24
5.1.1 Pengukuran Power Supply ... 24
5.1.2 Pengukuran Rangkaian RTC ... 25
5.1.3 Pengukuran Rangkaian RELAY ... 26
5.1.4 Pengukuran LCD ... 27
5.1.5 Pengukuran KEYPAD ... 28
5.2 PENGUJIAN ... 31
5.2.1 Pengujian Power Supply ... 31
5.2.2 Pengujian Rangkaian Mikrokontroller ... 31
5.2.3 Pengujian RTC ... 32
5.2.4 Pengujian RELAY ... 47
5.2.5 Pengujian KEYPAD ... 48
5.2.6 Pengujian LCD ... 50
5.3 ANALISA ... 51
5.3.1 Analisa Rangkaian Power Supply ... 51
5.3.2 Analisa Rangkaian RTC ... 51
5.3.3 Analisa Rangkaian RELAY ... 51
BAB VI KESIMPULAN DAN SARAN ... 52
6.1 Kesimpulan ... 52
6.2 Saran ... 52
DAFTAR PUSTAKA ... 53
DAFTAR TABEL
Tabel 5.1 Hasil Pengukuran power supply ... 25
Tabel 5.2 Hasil Pengukuran RTC dan C-Mos ... 26
Tabel 5.3 Hasil Pengukuran Input RELAY ... 27
Tabel 5.4 Hasil Pengukuran keluaran LCD ... 28
Tabel 5.5 Pengukuran KEYPAD ... 29
Tabel 5.6 Hasil Pengukuran DAYA ... 30
DAFTAR GAMBAR
Gambar 2.1 Blok Diagram ... 4
Gambar 3.1 Konfigurasi Pin Atmega8535 ... 7
Gambar 3.2 Konfigurasi Pin RTC ... 8
Gambar 3.3 Konfigurasi Pin LCD ( 2x16) ... 9
Gambar 3.4 Rangkaian Keypad ... 10
Gambar 3.5 Skematik Rangkaian Power Supply dasar ... 11
Gambar 4.1 Skematik Rangkaian Power Supply ... 13
Gambar 4.2 Skematik Rangkaian Microcontroller Atmega8535 ... 14
Gambar 4.3 Skematik Rangkaian RTC ... 15
Gambar 4.4 Skematik Rangkaian Relay ... 16
Gambar 4.5 Skematik Rangkaian Keypad ... 17
Gambar 4.6 Skematik Rangkaian LCD... 17
Gambar 4.7 Digital Time Switch ... 18
Gambar 5.1 Pengukuran Input dan Output Power Supply ... 24
Gambar 5.2 Pengukuran Input RTC dan Output C-Mos ... 25
Gambar 5.3 Pengukuran Output pada Relay ... 26
Gambar 5.4 Pengukuran Output pada LCD ... 27
Gambar 5.5 Pengukuran Keypad ... 28
BAB I
PENDAHULUAN
1.1.
Latar belakang
Melihat banyaknya pemborosan energi listrik yang digunakan tidak sesuai
dengan kebutuhan yang diperlukan pada perusahaan, rumah, maupun ditempat –
tempat lain, maka kami ingin mencoba membuat suatu alat sederhana yang bisa
difungsikan untuk menghemat penggunaan energi yang berlebihan. Alat yang akan
kami buat ini sebenarnya hanya penambahan dari alat – alat timer yang sudah ada,
namun hanya beberapa kelebihan yang akan disajikan agar ada perkembangan dari
sebelumnya. Manfaat yang bisa direalisasikan dalam kehidupan sehari – hari,
misalnya pada penggunaan lampu dirumah.
1.2.
Tujuan dan Manfaat
Tujuan dan manfaat dari alat pemutus listrik adalah:
1.
Menghemat penggunaan energi listrik akibat pemakaian peralatan elektronik
yang berlebihan.
2.
Bisa membatasi waktu pada saat pemakaian energi listrik, agar bisa terkontrol
sesuai dengan keinginan.
3.
Memutuskan energi liustrik
1.3.
Batasan Masalah
Dengan mengunakan digital time switch sebagai pemutus pada pemakaian
energi listrik banyak kekurangan dan batasan – batasan ynag belum bisa
dilakukan, maka dalam tugas akhir ini dibatasi pada hal-hal sebagai berikut :
1. Sumber tegangan yang digunakan 220 V
2. Tidak bisa menyeting timer secara acak, hanya satu kali penyetingan
3. Maksimal beban yang diputuskan oleh relay sebesar 3A.
4. Relay mampu melakukan switcing daya maksimal 90 W
1.4.
Metode Penulisan
Dalam pembuatan laporan, data serta informasi didapat dengan penelitian dan
pengembangan. Dalam pelaksanaanya metode yang di gunakan adalah metode
pengembangan Evaluatif yaitu pengembangan dari produk yang sudah ada. Bahan
penulisan diperoleh dengan cara studi literatur dan kajian buku di perpustakaan dan
informasi dari internet. Sedangkan untuk mendapatkan data dari alat yang telah
kerjakan, menggunakan metode pengujian dan pengamatan, dengan cara melakukan
pengambilan data melalui alat ukur, pengujian dengan program. Dan hasil akhir dari
pengujian, dilakukan membandingkan antara teori dan analisa praktek.
1.5.
Sistematika Penulisan
Dalam penulisan suatu laporan perlu adanya Sistematika penulisan begitu
juga pada laporan Tugas Akhir, semua isinya disusun secara Sistematika. Hal ini
sangat penting selain untuk menghindari kekeliruan atau salah tafsir juga untuk
memudahkan dalam membaca maupun menganalisa dan memahami secara
keseluruhan isinya.
Penulisan laporan ini di kelompokkan menjadi beberapa bagian antara lain:
BAB I
Pendahuluan berisikan latar belakang, tujuan dan manfaat tugas
akhir, batasan masalah dan sistematika penulisan.
BAB II
Ikhtisar sistem Berisikan Deskripsi umum, karakteristik dan
lingkungan operasi dan pengembangan.
BAB III Landasan Teori menerangkan teori dasar yang di gunakan untuk
membuat alat beserta pendukung-pendukungnya.
BAB IV Perancangan Sistem menggambarkan desain perangkat lunak
maupun keras (hardware) secara lengkap.
BAB V
Pengujian dan Analisa Sistem
Menjelaskan tentang cara pengujian dan menganalissa sistem yang
di rancang.
BAB VI Kesimpulan dan Saran merupakan ringkasan dari hasil analisa
yang di buat.
BAB II
IKHTISAR SISTEM
2.1.
Deskripsi Umum
Alat pemutus listrik dengan timer ( Digital Time Switch) menggunakan
ATmega8535 merupakan alat yang dirancang untuk melakukan fungsi pemutusan
energi listrik yang terkontrol sesuai dengan keinginan pengguna, alat ini merupakan
kombinasi dari tiga bagian yang paling penting yaitu mekanik, elektronik dan
programming.
Alat ini difungsikan dengan menggunakan berbagai input
dan output
berupa
keypad dan LCD yang di fungsikan dengan menggunakan Atmega8535 , semua
barang elektronik diaktifkan dengan program yang telah dirancang dan kemudian
diprogram mengikuti alur yang diinginkan sesuai dengan urutan pekerjaan, setelah
program didownload LCD akan menampilkan data jam, menit, detik ,yang
diinginkan dan disetting memalui keypad.
2.2.
Karakteristik
Adapun karakteristik tugas akhir adalah sebagai berikut :
RTC ds1307 digunakan untuk timer.
Relay digunakan untuk memutuskan aliran listrik
LCD digunakan untuk menampilkan data dan poin yang dihasilkan.
Keypad digunakan untuk memasukkan menu yang diinginkan yang berupa
angka yang berfungsi untuk mengatur timer.
Maksimal beban yang bisa di switching adalah 90 Watt
Mekanik hanya mempunyai satu buah output untuk menghubungkan ke beban
yang ingin di putuskan.
2.3.
Lingkungan Operasi Pengembangan
Lingkungan operasi pengembangan bisa diaplikasikan dalam bentuk alat
pemutus listrik dari on ke off dan dari off ke on. Sehingga pengguna bisa menyetting
sesuai dengan keinginan.
BAB III
LANDASAN TEORI
3.1.
Mikrokontroller
Mikrokontroler merupakan sebuah chip yang mempunyai
input
dan
output
serta kendali dengan program yang bisa ditulis dan dihapus dengan cara khusus,
dalam proyek yang penulis kerjakan penulis mengunakan Mikrokontroler Atmega
8535 yang merupakan keluarga dari AVR Mikrokontroler. Pemilihan Mikrokontroler
Atmega 8535 dalam proyek ini tidak lain karena banyaknya kemudahan fasilitas yang
didapat, yang diantaranya:
Kemudahan Program dengan menggunakan pemrograman bahasa C.
Proses Download program yang cepat, antar PC terhadap Mikrokontroler.
Frekuensi clock maksimum 11.059200 MHz
Jalur I/O 32 buah, yang terbagi dalam PortA, PortB, PortC dan PortD
Analog to Digital Converter
10 bit sebanyak 8
input
Timer/Counter
sebanyak 3 buah
CPU 8 bit yang terdiri dari 32 register
Watchdog Timer
dengan osilator internal
SRAM sebesar 512 byte
Memori
Flash
sebesar 8 Kbyte dengan kemampuan
read while write
Interrupt
internal maupun eksternal
Port komunikasi SPI
EEPROM sebesar 512 byte yang dapat diprogram saat operasi
Analog Comparator
Berikut konfigurasi PIN Atmega 8535L:
Gambar 3.1 Konfigurasi Pin Atmega8535L
Sumber:Materi workshop line tracker
Penjelasan masing – masing PIN Atmega 8535L adalah sebagai berikut:
1. VCC merupakan pin masukan catu daya.
2. GND merupakan pin ground.
3. Port A (PA0 – PA7) merupakan pin I/O dua arah dan pin masukan ADC.
4. Port B (PB0 – PB7) merupakan pin I/O dua arah dan pin fungsi khusus,
yaitu Timer0 / Counter0 pada pin portB 0, Timer1/Counter1 pada pin Portb 1,
komparator analog dan SPI.
5. Port C (PC0 – PC7) merupakan pin I/O dua arah dan pin fungsi khusus,
yaitu
Watchdog Timer
,komparator analog, dan
Timer Oscilator.
6. Port D (PD0 – PD7) merupakan pin I/O dua arah dan pin fungsi khusus,
yaitu komparator analog, interupsi eksternal, dan komunikasi serial.
7. RESET merupakan pin yang digunakan untuk me-reset mikrokontroller
8. XTAL1 dan XTAL2 merupakan pin masukan
clock
eksternal.
9.
AVCC merupakan pin masukan tegangan untuk ADC
(
analog to digital converter).
3.2.
RTC
RTC yang digunakan adalah RTC dengan antarmuka I2C, yaitu DS1307 yang
menggunakan antarmuka paralel dan penggunaan bahasa assembly. Adapun fitur dari
DS1307 adalah sbb:
Real-time clock (RTC) meyimpan data-data detik, menit, jam, tanggal, bulan,
hari dalam seminggu, dan tahun valid hingga 2100;
56-byte, battery-backed, RAM nonvolatile (NV) RAM untuk penyimpanan;
Antarmuka serial
Two-wire
(I2C)
Sinyal luaran gelombang-kotak terprogram (
Programmable squarewave
);
Deteksi otomatis kegagalan-daya (
power-fail
) dan rangkaian
switch
;
Konsumsi daya kurang dari 500nA menggunakn mode baterei cadangan
dengan operasional osilator;
Tersedia fitur industri dengan ketahana suhu: -40°C hingga +85°C
Tersedia dalam kemasa 8-pin DIP atau SOIC
Sedangkan Daftar Pin DS1307:
Gambar 3.2 Konfigurasi Pin RTC
Sumber : WWW.DALSEMI.COM
VCC - Primary Power Supply
X1, X2 - 32.768kHz Crystal Connection
VBAT - +3V Battery Input
GND - Ground
SDA - Serial Data
SCL - Serial Clock
3.3.
LCD
Rangkaian LCD yang digunakan berfungsi untuk menampilkan data menu
pilihan dalam melakukan penyettingan, berikut rangkaian LCD yang telah dirancang:
Gambar 3.3 Konfigurasi Pin LCD ( 2x16)
Konfigurasi Pin LCD:
LCD sudah dilengkapi dengan sebuah kontroler yang memiliki dua register 8
bit yaitu instruction register (IR) dan data register (DR). IR menyimpan kode
instruksi, seperti display clear, cursor shift dan informasi address untuk display data
RAM (DDRAM) dan character generator (CGRAM).
3.4.
Keypad
Keypad digunakan adalah keypad 4 X 4 yang berfungsi sebagai input angka
dihubungkan ke microcontroller, kemudian dikeluarkan tempilannya melalui LCD,
keypad juga digunakan sebagai penyettingan waktu yang dibutuhkan.
Gambar 3.4 Rangkaian Keypad 4X4
3.5.
Rangkaian Power supply
Adapun rangkaian power supply yang digunakan adalah power supply dengan
keluaran tegangan sebesar 5 V dan arus 0.7 A. Tegangan ini disupply untuk 4
unit
yaitu :
Minimum system Atmega 8535
Rangkaian RTC
Rangkaian LCD
Rangkaian Keypad
Berikut power supply pada dasarnya akan dijelaskan pada gambar rangkaian
dibawah ini:
Gambar 3.5 Skematik Rangkaian Power Supply
Keterangan gambar :
a.
Pada rangkaian
power supply
ini untuk pertama adanya tegangan yang masuk
digunakan sebuah
transformator
step down
1
Ampere
. Dengan tegangan sumber
220
Volt
AC melalui suatu kumparan yang sebelumnya melewati
fuse
sebagai
pengaman sumber AC untuk menghindari apabila terjadi arus berlebih pada
sumber AC didapat tegangan sekunder, dimana tegangan sekunder yang
digunakan adalah 12
Volt
AC.
Trafo yang digunakan adalah trafo 1
Ampere
karena mempunyai daya output
yang cukup tinggi, dimana
power supply
ini dibuat men-
supply
tegangan
input
untuk 1 buah mikrokontroler,
b.
Digunakan dioda 1
Ampere
sebagai penyearah
full wafe
yang memiliki
kemampuan maksimal arus 1
Ampere
agar menjaga apabila ada gangguan berupa
arus - arus lebih (
short circuit
) dan membuat tegangan yang semula ac menjadi
tegangan dc.
c.
Dalam rangkaian ini digunakan harga-harga untuk nilai kapasitor 2200 μF dan
4700 μF, untuk menghilangkan
ripple
dari penyearah
full wafe
yang masih
memiliki
ripple
yang cukup besar.
d.
Pada rangkaian
power supply
ini menggunakan IC regulator 7805, Dan sebagai
pengaman /
safety
arus output pada
power supply
, maka sebelum keluaran di beri
fuse
untuk mengkondisikan apabila terjadi
short cicuit
pada rangkaian beban,
tidak menggangu
power supply
.
BAB IV
PERANCANGAN SISTEM
4.1 Perancangan Rangkaian
Rangkaian dengan system alat pemutus listrik dengan timer ( digital time
switch ) menggunakan atmega 8535 terdiri dari beberapa rangkaian yang bekerja
dalam satu system, yaitu rangkain minimum system, rangkaian RTC dan rangkain
Relay. Semua rangkaian di hubung sesuai dengan perancangan pada Block diagram
dimana keypad dan power suply di fungsikan sebagai input rangkaian minimum
system sedangkan lcd dan relay merupakan output dari rangkaian minimum system.
rangkaian RTC berhubungan serial dengan minimum system.
4.1.1
Rangkaian Power Supply
Rangkaian power supply
untuk
minimum system menghasilkan tegangan
keluaran 5 Volt menggunakan regulator
yang didapat dari rangkaian menggunakan IC
7805. Rangkaian power supply Relay
menggunakan tegangan keluaran 12 volt.
Berikut gambar Rangkaian power supply:
4.1.2
Mikrokontroller ATmega 8535
Mikrokontroler yang penulis gunakan dalam proyek akhir ini adalah
Mikrokontroler dengan jenis keluaran AVR yakni Atmega 8535L, Adapun I/O yang
penulis gunakan pada mikrokontroler ini adalah sebagai berikut:
Input Mikrokontroler Atmega 8535L :
- Keypad 4x4
: PORTB
- RTC
:
*SCL
: PORTC.1
*SDA
: PORTC.2
Output Mikrokontroler Atmega 8535L :
- LCD
: PORTD
- RELAY
: PORTC.7
Setiap data yang masuk kedalam Mikrokontroler akan dieksekusi kemudian
akan diproses sesuai dengan program yang telah kita rancang. Berikut skematik
rangkaian mikrokontroler Atmega 8535L dan program:
4.1.3
Rangkaian RTC
RTC merupakan IC yang digunakan untuk memberikan serial data jam, menit,
detik, tanggal, bulan dan tahun.
Output
dari IC ini difungsikan untuk memberikan
data–data tersebut ke atmega 8535 yang telah di program sehingga adanya
komunikasi yang menghasilkan keluaran waktu yang diinginkan dan ditampilkan ke
LCD. Pada rangkaian terdapat komunikasi antara rangkaian RTC dan rangkaian
micro yaitu pada SCL dan SDA yang berfungsi sebagai pemberi clock ke
microcontroller dan sebagai pengirim data dari IC ds1307 ke atmega 8535. Berikut
adalah tabel koneksi
input
RTC dengan
output
mikrokontroler. Berikut gambar
rangkaian RTC:
Gambar 4.3 Skematik Rangkaian RTC
Pada rangkaian ini terdapat batrai C-mos yang berfungsi sebagai supply
tegangan ke RTC agar aktif selalu walaupun suplay 220 volt telah mati sedangkan
batrai yang digunakan adalah 3 Volt
Dan pada Rangkaian RTC terdapat komponen
capasitor kristal yang berfungsi sebagai pemberi frequensi kepada IC ds1307.
4.1.4
Rangkaian Relay
Relay yang digunakan untuk memutus tegangan 220 volt adalah Relay NAIS,
menggunakan push buttun normally open dan normally close. Setelah waktu disetting
sesuai dengan keinginan pengguna, maka program akan mengeksek$usi waktu
tersebut kedalam Atmega8535 dan akan di matikan atau dihidupkan oleh relay
tersebut sesuai dengan keinginan yang disetting. Berikut gambar rangkaian Relay:
Gambar 4.4 Skematik Rangkaian Relay Nais
Pada saat PORTC.7 berlogika satu, maka Relay akan bekerja menjadi
Normally Close dan sebaliknya jika relay berlogika nol relay akan bekerja menjadi
Normally Open, ini akan dieksekusi sesuai dengan program yang telah dibuat.
4.1.5
Rangkaian Keypad
Keypad merupakan input data angka yang diinginkan oleh si pengguna,
keypad yang penulis gunakan adalah keypad 4x4. Berikut gambar keypad yang
digunakan:
Gambar 4.5 Skematik rangkaian Keypad
Setiap angka yang ditekan akan ditampilkan di LCD, sehingga waktu yang
diinginkan akan sangat akurat dan tepat.
4.1.6
Rangkaian LCD
LCD merupakan output berupa layar yang bisa menampilkan angka atau teks
hasil yang telah dimasukan oleh input seperti keypad dll.
4.2
Perancangan Mekanik
Alat pemutus listrik dengan timer ( digital time switch) menggunakan
Atmega8535 yang di rancang ini memiliki spesifikasi fisik, yaitu :
Panjang
: 12 cm
Lebar
: 10 cm
Tinggi
: 5 cm
4.2.1
Gambar Digital Time Switch
Alat Pemutus listrik dengan timer ( digital time switch) menggunakan
Atmega8535 ini dirancang dengan menggunakan
acrylic sebagai body
keseluruhannya
.
Berikut gambar yang penulis telah rancang :
Gambar 4.7 Alat Pemutus listtrik sengan timer ( digital time switch )
menggunakan Atmega8535
4.3
Perancangan Software
Adapun perancangan software
pada tugas akhir menggunakan bahasa C, yaitu
untuk memprogram minimum sistem agar bisa memerintahkan perangkat yang
terhubung dengan microcontroller atmega8535 supaya menjalankan fungsinya.
Berikut adalah listing program sesuai perancangan:
4.3.1
Listing Program LCD
#include <mega8535.h>
// Alphanumeric LCD Module functions #asm
.equ __lcd_port=0x12 #endasm
#include <lcd.h>
// Declare your global variables here void main(void) { . . . while (1) {
// Place your code here
lcd_gotoxy(0,0); // go on the 1st LCD line
lcd_putsf("Hello World"); // display the message lcd_gotoxy(0,1); // go on the 2nd LCD line
lcd_putsf("How Are You?"); // display the message };
Setelah program di atas di eksekusi maka pada baris pertama akan menampilkan kata
”
Hello World
” dan baris kedua akan menampilkan kata “
How are you
”.
4.3.2
Listing Program keypad
key=0x10;
PORTB=0b00010000; delay_ms(1*0);
DDRC=0xF0; if (PINB.0==1) key=0x01; else if (PINB.1==1) key=0x04; else if (PINB.2==1) key=0x07; else if (PINB.3==1) key=0x0A; } { PORTB=0b00100000; delay_ms(10); DDRB=0xF0; if (PINB.0==1) key=0x02; else if (PINB.1==1) key=0x05; else if (PINB.2==1) key=0x08; else if (PINB.3==1) key=0x00; } { PORTB=0b01000000; delay_ms(10); DDRB=0xF0 if (PINB.0==1) key=0x03; else if (PINB.1==1) key=0x06; else if (PINB.2==1) key=0x09;
else if (PINB.3==1) key=0x0B }
Setelah program ini di eksekusi maka keypad bisa digunakan untuk menginput
data sesuai tombol yang ada.
4.3.3
Listing Program RTC
// I2C Bus functions #asm
.equ __i2c_port=0x1B ;PORTC .equ __sda_bit=1
.equ __scl_bit=2 #endasm
#include <i2c.h>
// DS1307 Real Time Clock functions #include <ds1307.h>
Program ini setelah di download berfungsi untuk komunikasi serial antara
SDA dan SCL DS1307 ke microcontroller.
4.3.4
Listing Program Relay
if (aaa==0x01){ PORTA==0xff; PORTC.7=1; goto lanjut; } else { goto lanjut; } if (aaa==0x02){
PORTA==0x00; PORTC.7=0; goto lanjut; } else { goto lanjut; }
Program di atas di fungsikan untuk membuat relay bekerja sesuai keinginan yaitu
memutuskan atau menyambung listrik.
Flowchart
START CHECK KEY KEY=1 SET TIME AC SORCE OFF AAA=0 KONDISI=0 KONDISI=0 SET TIME PADA LCD UTK DATA RTC KONDISI+1 CHECK KEY KEY=F KEY=2 SET TIME KONDISI=1 SET DATE PADA LCD UTK DATA RTC KONDISI+1 CHECK KEY KEY=F KONDISI=2 CHECK KEY KEY=1 AC SOURCE ON, SET ON JAM UTK CONTROL AC SORCE AAA=1 KONDISI+1 CHECK KEY KEY=F KEY=2 AC SOURCE OFF, SET ON JAM UTK CONTROL AC SORCE AAA=2 KONDISI+1 CHECK KEY KEY=F KONDISI=3 AAA=1 , SET ON TAHUN PADA LCD UTK CONTROL AC SORCE KONDISI+1 CHECK KEY KEY=F AAA=2 , SET OFF TAHUN PADA LCD UTK CONTROL AC SORCE KONDISI+1 CHECK KEY KEY=F KONDISI=4 SET TIME RTC GET TIME RTC AAA=1 DATA RTC=DATA CONTROL AC SOURCE AC SORCE OFF CHECK KEY KEY=F AAA=2 DATA RTC=DATA CONTROL AC SOURCE AC SORCE ON CHECK KEY KEY=F FINISH N N Y N N N N Y Y N Y Y N N Y N N Y Y N N Y Y N N N Y Y N N Y N Y Y N YBAB V
PENGUKURAN, PENGUJIAN DAN ANALISA SISTEM
5.1 Pengukuran
Pengukuran mempunyai tujuan untuk mengetahui kinerja dari suatu sistem
yang telah dirancang apakah telah sesuai dengan spesifikasi atau tidak. Adapun alat
yang gunakan dalam pengukuran ialah dengan menggunakan multimeter digital,
multimeter analog dan Watt meter
.
Multimeter ini digunakan untuk mengukur
besarnya tegangan (Volt) arus (Ampere), sedangkan Watt meter digunakan untuk
mengukur Daya (Watt).
5.1.1
Pengukuran Tegangan Masukan dan Keluaran Power Supply
Gambar 5.1 Pengukuran
Input
dan
Output
Rangkaian Power Supply
Input merupakan tegangan AC yaitu sebesar 220 V, sedangkan Output
merupakan tegangan DC dengan keluaran 10 V. Untuk mengukur tegangan pada
power supply denga cara menggunakan multimeter. Pada probe positif dihubungkan
ke keangka 1(VCC), dan pada probe negative dihubungkan pada angka 2 (GND),
sehingga hasil yang didapat terlihat ditabel.
Tabel 5.1 Hasil Pengukuran Input dan Output Rangkaian Power Supply
5.1.2
Pengukuran RTC
Gambar 5.2 Pengukuran Input
pada RTC dan Output pada batray C-mos
Pengukuran output RTC dilakukan dengan menggunakan multimeter, dengan
cara pada VCC
( probe positif ) pada angka 3 dan pada GND
( probe negatif ) pada
angka 4
.
Pada pengukuran yang dilakukan melihat apakah tegangan sudah masuk ke
RTC atau tidak. Pada batray diangka 1 dihubungkan ke probe positif dan angka 2
NO VOLT KETERANGAN
1 4.9 OUTPUT 2 10.18 INPUT
dihubungkan keprobe negatif,ini melihat apakah batray yang digunakan dalam kindisi
baik atau tidak.
Tabel 5.2 hasil Pengukuran RTC dan C-mos
5.1.3
Pengukuran Relay
Gambar 5.3 Pengukuran Output
pada RELAY
Pengukuran Relay dilakukan dengan menggunakan multimeter, untuk cara
pengukuranya pada angka 3 dihubungkan dengan ( probe positif ) dan pada angka 4
dihubungkan dengan ( probe negatif ). Ini dilakukan utnuk mengetahui apakah
tegangan yang masuk kedalam relay mampu membuat relay bekerja atau tidak.
Tegangan yang dibutuhkan relay sebesar 12V, dengan parameter jika kurang dari 9V
maka relay tidak bisa bekerja dan jika tegangan lebih dari 12V maka Relay akan
rusak. Sehingga hasilnya terlihat dalam tabel berikut ini:
NO NAMA OUTPUT
1 RTC 4.9V 2 BATRAY 3.14V
Tabel 5.3 Hasil Pengukuran Input Relay
5.1.4
Pengukuran LCD
Gambar 5.4 Pengukuran Output
pada Rangkaian LCD
Pengukuran LCD menggunakan multimeter, dengan cara pada angka 1
dihunbungkan ke probe positif dan pada angka 2 dihubungkan ke probe negatif.
Selain itu pengukuran pada potensio dilakukan dengan cara memutarkan potensio
pada posisi max dan posisi min. Sehingga hasilnya dapat dilihat pada tabel berikut:
NO RELAY VOLT
Tabel 5.4 Hasil Pengukuran Keluaran dari LCD
5.1.5
Pengukuran KEYPAD
Pengukuran dilakukan menggunakan multimeter, dengan cara apakah angka
yang ditekan aktif atau tidak melihat bergeraknya jarum pada multimeter analog.
Gambar 5.5 Pengukuran keypad
Pada saat row1 dihubungkan dengan probe positif dan colom1 dihubungkan
dengan probe negatif maka angka 1 yang akan diukur, sehingga setelah ditekan
angka 1, jarum pada multimeter bergerak menandakan berfungsinya angka tersebut
dan begitu pula seterusnya. Dan pada pengukuran keypad dalam pemograman didapat
hasil pada tabel berikut:
NO UKUR VOLT
1 INPUT LCD 4.9V 2 POTENSIO MAX 4.9V 3 POTENSIO MIN 0.25V
Tabel 5.5 Pengukuran KEYPAD
KODE BINER DATA DESIM AL PORTB .7 PORTB .6 PORTB .5 PORTB .4 PORTB .3 PORTB .2 PORTB .1 PORTB .0 1 1 1 1 0 1 1 1 0 2 1 1 0 1 1 1 1 0 3 1 0 1 1 1 1 1 0 4 1 1 1 0 1 1 0 1 5 1 1 0 1 1 1 0 1 6 1 0 1 1 1 1 0 1 7 1 1 1 0 1 0 1 1 8 1 1 0 1 1 0 1 1 9 1 0 1 1 1 0 1 1 * 1 1 1 0 0 1 1 1 0 1 1 0 1 0 1 1 1 # 1 0 1 1 0 1 1 1 A 0 1 1 1 1 1 1 0 B 0 1 1 1 1 1 0 1 C 0 1 1 1 1 0 1 1 D 0 1 1 1 0 1 1 15.1.6
Pengukuran Daya terhadap baban Kipas angin
Pengukuran ini dilakukan denga menggunakan Watt Meter. Dengan cara
menghubungkan kipas angin dengan alat digital time switch, sehinga yang diukur
pada saat on atau off. Berikut gambar cara pengukuran:
Gambar 5.6 Pengukuran daya terhadap beban
Tabel 5.6 Pengukuran Daya pada beban
WAKTU
DAYA
ARUS
TEGANGAN
JALA-JALA
MNT
WHR
A
VAC
2
0.625
0.16
226.4
4
2,863
0.16
226.4
5
3,537
0.16
226.4
6
4,153
0.16
226.4
8
5,626
0.16
226.4
9
6,238
0.16
226.4
10
7,715
0.16
226.4
5.2
Pengujian
Pengujian dilakukan untuk mengetahui kinerja dari sebuah rangkaian yang
telah digunakan, adapun proses dari pengujian yang dikerjakan, dengan cara menguji
berdasarkan blok-blok sistem yang terdapat pada tugas akhir yang telah dirancang.
Diantaranya rangkaian power supply, Minimum Sistem Mikrokontroller Atmega
8535, RTC, LCD, Relay dan Keypad.
5.2.1
Pengujian Rangkaian Power Supply
Pengujian ini dilakukan dengan memberikan tegangan input
pada power
supply dari tegangan AC sebesar 220V, kemudian output
keluaran dari IC regulator
dilihat bekerja atau tidak dengan melihat kondisi LED indicator yang terpasang pada
power supply itu sendiri. Dan dengan cara kedua memasang jumper pada output pada
Power Supply, kemudian memasang LED indicator dengan kemampuan 5V sesuai
dengan positif dan negatif, karena sebelumnya di Power supply itu sendiri tidak ada
LED sebgai indicator. Setelah LED tersebut menyala, maka power suppy tersebut
bisa digunakan untuk rangkaian yang ingin dilakukan seperti minimum system, LCD
dan keypad.
5.2.2
Pengujian Rangkaian Mikrokontroller
Pengujian
rangkaian
mikrokontroler
dapat
dilakukan
dengan
mengkombinasikan rangkaian minimum yang ada LED indicator sebagai contoh
melakukan pengujian dengan membuat sebuah program untuk mengaktifkan port
yang ada di mikrokontroler. Jika pada kondisi High berarti LED sebagai indicator
akan menyala. Berikut listing
program untuk mengaktifkan port
di mikrokontroler
dengan menggunakan pemrograman bahasa C.
#include <mega8535.h>
// Declare your global variables here void main(void) { . . . while (1)
PORTC=255; // Kondisi High PORTC Berlogika 255 PORTD=255; // Kondisi High PORTD Berlogika 255 };
}
Hasil dari program yang telah di download
di Mikrokontroler Atmega 8535 adalah
sebagai berikut :
Tabel 5.7 Hasil Pengujian Output PORT
Mikrokontroler
5.2.3
Pengujian RTC
Pengujian RTC dapat dilakukan dengan cara membuat program jam digital
yang dihubungkan dengan minimum system dan keypad sebagai input untuk
memasukan angka yang diinginkan sehingga tampil di LCD jam, menit,detik,
tanggal, bulan dan tahun. Berikut program yang telah dilakukan:
NO OUTPUT KONDISI
1 PORTC HIGH 2 PORTD HIGH
PROGRAM JAM DIGITAL
/***************************************************** This program was produced by the
CodeWizardAVR V2.03.4 Standard Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com
Project : Digital time switch Version :
Date : 1/05/2010
Author : Suhaimi & eva erli kusuma Company : Politeknik Batam
Comments:
Chip type : ATmega8535L Program type : Application Clock frequency : 11.059200 MHz Memory model : Small
External RAM size : 0 Data Stack size : 128
*****************************************************/
#include <mega8535.h>
// I2C Bus functions #asm
.equ __sda_bit=0 .equ __scl_bit=1 #endasm
#include <i2c.h>
// DS1307 Real Time Clock functions #include <ds1307.h>
// Alphanumeric LCD Module functions #asm
.equ __lcd_port=0x12 ;PORTD #endasm
#include <lcd.h>
// Declare your global variables here unsigned char h;
unsigned char m; unsigned char s; unsigned char hour; unsigned char min; unsigned char sec; unsigned char jam[5]; unsigned char mnt[5]; unsigned char dtk[5];
unsigned char kata1[16]; int status;
{ status=PINB; } void kolom1(void) { //firts column DDRB=0xFF PORB.0=0; PORB.1=0; PORB.2=0; PORB.3=0; PORB.4=1; PORB.5=0; PORB.6=0; PORB.7=0; DDRB=0XF0; statuse(); key = 0x00; if(status==0x11) { key=0x01; } if(status==0x12) { key=0x04; } if (status==0x14) { key=0x17;
} if(status==0x18) { key=0x0A; } void kolom2(void) { //second column DDRB=0xFF PORB.0=0; PORB.1=0; PORB.2=0; PORB.3=0; PORB.4=0; PORB.5=1; PORB.6=0; PORB.7=0; DDRB=0XF0; statuse(); key = 0x00; if(status==0x21) { key=0x02; } if(status==0x22) { key=0x05; }
if (status==0x24) { key=0x08; } if(status==0x28) { key=0x0F; } } void kolom3(void) { //third column DDRB=0xFF PORB.0=0; PORB.1=0; PORB.2=0; PORB.3=0; PORB.4=0; PORB.5=0; PORB.6=1; PORB.7=0; DDRB=0XF0; statuse(); key = 0x00; if(status==0x41) { key=0x03;
} if(status==0x42) { key=0x06; } if (status==0x44) { key=0x09; } if(status==0x48) { key=0x0B; } } void kolom2(void) { //fourth column DDRB=0xFF PORB.0=0; PORB.1=0; PORB.2=0; PORB.3=0; PORB.4=0; PORB.5=0; PORB.6=0; PORB.7=1; DDRB=0XF0; statuse();
key = 0x00; if(status==0x81) { key=0x0C; } if(status==0x82) { key=0x0D; } if (status==0x84) { key=0x0E; } if(status==0x88) { key=0x1F; } } void geser(void) { data[5]=data[4]; data[4]=data[3]; data[3]=data[2]; data[2]=data[1]; data[1]=data[0]; data[0]=0; } void main(void)
{ i=0;
// Declare your local variables here
// Input/Output Ports initialization // Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00; DDRA=0x00;
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00; DDRB=0x00;
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00; DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00; DDRD=0x00;
// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=FFh
// OC0 output: Disconnected TCCR0=0x00;
TCNT0=0x00; OCR0=0x00;
// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer 1 Stopped // Mode: Normal top=FFFFh
// OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off
// Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00;
TCCR1B=0x00; TCNT1H=0x00;
TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh
// OC2 output: Disconnected ASSR=0x00;
TCCR2=0x00; TCNT2=0x00; OCR2=0x00;
// External Interrupt(s) initialization // INT0: Off
// INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00;
// Analog Comparator initialization // Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80;
SFIOR=0x00;
// I2C Bus initialization i2c_init();
// DS1307 Real Time Clock initialization // Square wave output on pin SQW/OUT: Off // SQW/OUT pin state: 0
rtc_init(0,0,0); // LCD module initialization lcd_init(16); //init data[] for(i=0;i<6;i++) data[i]=0; //setting time //rtc_set_time(hour,min,sec); while(1) { while (1) {
// Place your code here
i2c_start(); // pengambilan data dari RTC rtc_get_time(&h,&m,&s); // data jam, menit, detik sprintf(jam,"%2d",h); //menampilkan 2 angka u/ jam sprintf(mnt,"%2d",m); //menampilkan 2 angka u/ mnt sprintf(dtk,"%2d",s); //menampilkan 2 angka u/ sec lcd_gotoxy(0,1); lcd_puts(jam); lcd_gotoxy(2,1); lcd_putsf(":"); lcd_puts(mnt); lcd_gotoxy(5,1);
lcd_putsf(":"); lcd_puts(dtk); lcd_gotoxy(0,0);
lcd_putsf("SET TIME [MEN]"); kolom1(); kolom2(); kolom3(); kolom4(); if (key==0x0D) { for(i=0;i<6;i++) data[i]=0; dalay_ms(200); while(1) { for(i=0;<6;i++) data[i]=0; delay_ms(200); while(1) { kolom1(); if(!key)kolom2(); if(!key)kolom3(); if(!key)kolom4(); sprintf(kata1,"%d%d:%d%d:%d%d",data[5],data[4],data[3],data[2],data[ 1],data[0]; lcd_gotoxy(0,0); lcd_puts(kata1); rtc_get_time(&h,&m,&s); sprintf(jam,"%2d",h); sprintf(jam,"%2d",h);
sprintf(mnt,"%2d",m); sprintf(dtk,"%2d",s); lcd_gotoxy(0,1); lcd_puts(jam); lcd_gotoxy(2,1); lcd_putsf(":"); lcd_puts(mnt); lcd_gotoxy(5,1); lcd_putsf(":"); lcd_puts(dtk); lcd_gotoxy(11,0); lcd_putf("ENT"); lcd_gotoxy(11,1); lcd_putsf("[CAN]"); if(!key) continue; delay_ms(250); if(key==0x0B) { a=data[5]*10; b=data[3]*10; c=data[1]*10; hour = a + data[4]; min = b + data[2]; sec = c + data[0]; rtc_set_time(hour,min,sec); break; } if(key==0x0A)break; if(key);
{ geser(); data[0]=key; if(key==0x0f)data[0]=0; } while(key) { kolom1(); if(!key) kolom2(); if(!key) kolom3(); if(!key) kolom4(); } } } /*sprintf(jam,"%2d",h); sprintf(mnt,"%2d",m); sprintf(dtk,"%2d",s); lcd_gotoxy(0,1); lcd_puts(jam); lcd_gotoxy(2,1); lcd_putsf(":"); lcd_puts(mnt); lcd_gotoxy(5,1); lcd_putsf(":"); lcd_puts(dtk); }; }
Pada saat program ini telah selesai di download ke atmega 8535 maka
selanjutnya adalah menghubungkan rangkaian LCD dan rangakaian RTC ke port
Atmega yang telah ditentukan melalui program yang telah di buat sebelumnya ,
sehingga pada layar LCD akan menampilkan jam digital beserta tanggal, bulan dan
tahun.
5.2.4
Pengujian Relay Nais
Pengujian rangkain relay dilakukan dengan cara menghubungkan dengan
suplay 10,18 V pada kutub positif dan program yang telah didownload di atmega,
sehingga pada PORTC.7 akan mematikan LED di rangkaian relay sebagai indikator.
Relay bekerja maksimal 12V jika lebih dari itu, maka Relay akan mudah rusak,
sedangkan jika tregangan kurang dari 9V, maka relay tidak bisa bekerja.
if (aaa==0x01){ PORTA==0xff; PORTC.7=1; goto lanjut; } else { goto lanjut; } if (aaa==0x02){ PORTA==0x00; PORTC.7=0; goto lanjut; } else { goto lanjt; }
5.2.5
Pengujian Keypad
Pengujian keypad dilakukan dengan cara menggunakan Multimeter dan LCD,
apakah kondisi posisi 1 atau yang lainya sesuai dengan urutan program yang telah
dibuat. Dan membuat program keypad sesuai dengan konfigurasi angka. Berikut
Program keypad yang telah dilakukan:
#include <lcd.h>
// Declare your global variables here unsigned char key;
unsigned char Msg1[16]; void Check_Keys () { { key=0x10; PORTB=0b11101111; delay_ms(10); DDRB=0xF0; if (PINB.0==0) key=0x01; else if (PINB.1==0) key=0x02; else if (PINB.2==0) key=0x03; else if (PINB.3==0) key=0x0E; } { PORTB=0b11011111; delay_ms(10); DDRB=0xF0; if (PINB.0==0) key=0x04; else if (PINB.1==0) key=0x05;
else if (PINB.2==0) key=0x06;
else if (PINB.3==0) key=0x0B; //change f to b } { PORTB=0b10111111; delay_ms(10); DDRB=0xF0; if (PINB.0==0) key=0x07; else if (PINB.1==0) key=0x08; else if (PINB.2==0) key=0x09; else if (PINB.3==0) key=0x0C; } { PORTB=0b01111111; delay_ms(10); DDRB=0xF0; if (PINB.0==0) key=0x0A; else if (PINB.1==0) key=0x00;
else if (PINB.2==0) key=0x0F;// change b to f else if (PINB.3==0) key=0x0D;
} } void main(void) { . . . while (1) {
// Place your code here Check_Keys (); sprintf(Msg1,"Key=%d ",key); lcd_gotoxy(0,0); lcd_puts(Msg1); }; }
Setelah dilakukan pengujian, angka yang ditekan harus sesuai dengan program yang
telah dibuat, jadi hasilnya adalah jika ditekan 1 maka tampil di LCD angka 1, begitu
seterusnya.
5.2.6
Pengujian LCD
Pengujian LCD dilakukan denga cara memberikan tegangan 5 Volt,
apakah LCD menyala atau tidak dan membuat program sederhana, yaitu sbb:
#include <mega8535.h>
// Alphanumeric LCD Module functions #asm
.equ __lcd_port=0x12 #endasm
#include <lcd.h>
// Declare your global variables here void main(void)
{
{
// Place your code here
lcd_gotoxy(0,0); // go on the 1st LCD line
lcd_putsf("Hello World"); // display the message lcd_gotoxy(0,1); // go on the 2nd LCD line
lcd_putsf("How Are You?"); // display the message };
}
Setelah didownload diatmega8535, maka tanpil di LCD pada baris pertama
“Hello World”, dan pada baris kedua “How are You”.
5.3
Analisa Sistem
5.3.1
Power Supply
Dari data hasil pengukuran didapat bahwa pada saat input sebesar 10.18 Vdc
maka output
dari regulator
LM7805 adalah 4,9 VDC, tegangan sebesar itu untuk
mengaktifkan rangkaian Minimum System, LCD dan RTC.
5.3.2
RTC
RTC DS1307 berfungsi untuk memberikan data serial jam, menit, detik,
tanggal, bulan, tahun yang saling berhubungan dengan mikro yang harus diprogram
dengan benar sehingga hasilnya akan ditampilkan ke LCD yang datanya bisa
tersimpan terus menerus akibat adanya batray C-mos yang memberikan Supply
selama 300 hari.
5.3.3
Relay
Relay merupakan alat yang bisa memutuskan arus sesuai dengan program
yang telah dibuat, sehingga pada waktu tertentu, relay bekerja sesuai dengan perintah
karna bentuknya juga sebagai saklar yang mempunyai normally open dan normally
close.
BAB VI
KESIMPULAN DAN SARAN
6.1 Kesimpulan
Dari hasil analisa data diatas dapat diambil beberapa kesimpulan diantaranya:
1. Keluaran dari Power Supply
yang digunakan dapat dikatakan stabil, yaitu
sebesar 4,9V.
2. Alat pemutus listrik ( digital time switch ) menggunakan atmega8535, bisa
disetting mati atau hidup alat elektonika sesuai dengan keinginan.
3. Yang bisa disetting adalah jam, menit, detik, tanggal, bulan dan tahun.
4. Tagangan yang masuk pada relay tidak boleh kurang dari 9 V dan lebih dari 12 V
6.2 Saran
Untuk sistem yang lebih baik kedepannya perlu ditambahkan beberapa hal
diantaranya :
1. Penambahan program untuk menghidupkan atau mematikan secara continue
tanpa disetting berulang – ulang hanya satu kali penyettingan.
DAFTAR PUSTAKA
http://www.learning.polibatam.ac.id ( 17-05-2010 15:30 )
http://www.alldatasheet.com ( 17-05-2010 15:30 )
LAMPIRAN
LAMPIRAN A
LISTING PROGRAM
LAMPIRAN B
DATASHEET ATMEGA 8535
LAMPIRAN C
DATASHEET RTC DS1307
LAMPIRAN D
DATASHEET 7805
LAMPIRAN E
DATASHEET RELAY
LAMPIRAN A
Program Digital Time Switch
#include <mega8535.h> #include <stdio.h> #include <delay.h> // I2C Bus functions #asm
.equ __i2c_port=0x15 ;PORTC .equ __sda_bit=1
.equ __scl_bit=2 #endasm
#include <i2c.h>
// DS1307 Real Time Clock functions #include <ds1307.h>
// Alphanumeric LCD Module functions #asm
.equ __lcd_port=0x12 ;PORTD #endasm
#include <lcd.h>
// Declare your global variables here unsigned char key;
unsigned char Msg1[16]; unsigned char a,b,c,z,g;
unsigned char d,e,f,h,i,j,k; unsigned char ka;
unsigned char jm,dk,mt; unsigned char tg,bl,th; unsigned char kondisi; unsigned char aaa; unsigned char h; unsigned char m; unsigned char s; unsigned char hour; unsigned char min; unsigned char sec; unsigned char jam[5]; unsigned char mnt[5]; unsigned char dtk[5]; unsigned char d; unsigned char mn; unsigned char y; unsigned char date; unsigned char mon; unsigned char year; unsigned char hari[5]; unsigned char bulan[5]; unsigned char tahun[5]; void kolom1()
{
{ key=0x10;
delay_ms(10); DDRB=0xF0;
if (PINB.0==0) key=0x01; else if (PINB.1==0) key=0x02; else if (PINB.2==0) key=0x03; else if (PINB.3==0) key=0x0E; } { PORTB=0b11011111; delay_ms(10); DDRB=0xF0; if (PINB.0==0) key=0x04; else if (PINB.1==0) key=0x05; else if (PINB.2==0) key=0x06;
else if (PINB.3==0) key=0x0B; //change f to b } { PORTB=0b10111111; delay_ms(10); DDRB=0xF0; if (PINB.0==0) key=0x07; else if (PINB.1==0) key=0x08; else if (PINB.2==0) key=0x09; else if (PINB.3==0) key=0x0C; } { PORTB=0b01111111; delay_ms(10); DDRB=0xF0; if (PINB.0==0) key=0x0A; else if (PINB.1==0) key=0x00;
else if (PINB.2==0) key=0x0F;// change b to f else if (PINB.3==0) key=0x0D;
} } void main(void) { PORTD=0x00; DDRD=0x00; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=FFh
// OC0 output: Disconnected TCCR0=0x00;
TCNT0=0x00; OCR0=0x00;
// Timer/Counter 1 initialization // Clock value: Timer 1 Stopped // Mode: Normal top=FFFFh
// Timer 1 Overflow Interrupt: Off TCCR1A=0x00;
TCCR1B=0x00; TCNT1H=0x00;
TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh
ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00;
// External Interrupt(s) initialization // INT0: Off
// INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00;
ACSR=0x80; SFIOR=0x00;
// I2C Bus initialization i2c_init();
// DS1307 Real Time Clock initialization // Square wave output on pin SQW/OUT: Off // SQW/OUT pin state: 0
rtc_init(0,0,0);
// LCD module initialization lcd_init(16);
while (1) {
// Place your code here pilih
lcd_gotoxy(0,0);
lcd_putsf("1. SET Time") lcd_gotoxy(0,1); lcd_putsf("2. Go to Time"); kolom1(); key&=0x7F; if (key==0x01) { goto awal; } if (key==0x02) { lcd_clear(); delay_ms(50);
goto get; } if (key==0x10) { goto pilih; } awal: lcd_clear(); kolom1(); key&=0x7F; if (key==0x10) { DDRC=0xf0; PORTA=0x00; PORTC.7=0; delay_ms(100); kondisi=0x00; aaa=0x00; goto mulai; } else { goto awal; } mulai: j=0; ka=0; if (kondisi==0x00){ goto loop; } if (kondisi==0x01){ goto loopdate; } if (kondisi==0x02){ goto posisi; } if (kondisi==0x03){ goto posisi1; } if (kondisi==0x04){ goto set; } loop: lcd_gotoxy(0,0); lcd_putsf("SET TIME"); goto life; loopdate: lcd_gotoxy(0,0); lcd_putsf("SET DATE"); goto life; posisi: aaa=0x00; lcd_gotoxy(0,0);
lcd_putsf("1. SET ON"); lcd_gotoxy(0,1); lcd_putsf("2. SET OFF"); kolom1(); key&=0x7F; if (key==0x10) { goto look; } else { goto posisi; } posisi1: if (aaa==0x01) { lcd_gotoxy(0,0); lcd_putsf("SET ON Tahun"); goto lanjut; } if (aaa==0x02) { lcd_gotoxy(0,0);
lcd_putsf("SET OFF Tahun"); goto lanjut; } else { goto posisi1; } look: kolom1(); key&=0x7F; if (key==0x01) {
PORTA=0xff; // seting ac source PORTC.7=1; lcd_clear(); aaa=0x01; goto seton1; } if (key==0x02) {
PORTA=0x00; // seting non ac source PORTC.7=0; lcd_clear(); aaa=0x02; goto setoff1; } if (key==0x10) { goto look; } seton1:
kolom1(); key&=0x7F; if (key==0x10) { goto seton; } else { goto seton1; } seton: lcd_gotoxy(0,0); lcd_putsf("SET ON Jam"); goto life; setoff1: lcd_clear(); kolom1(); key&=0x7F; if (key==0x10) { goto setoff; } else { goto setoff1; } setoff: lcd_clear(); delay_ms(50); lcd_gotoxy(0,0); lcd_putsf("SET OFF Jam"); goto life; life: if (aaa==0x01){ PORTA==0xff; PORTC.7=1; goto lanjut; } else { goto lanjut; } if (aaa==0x02){ PORTA==0x00; PORTC.7=0; goto lanjut; } else { goto lanjt; } lanjut: kolom1(); key&=0x7F; if (key==0x10)
{ goto life; } else if(key!=0x10) { if (key==0x0F) // change { PORTC.7=0; lcd_clear(); j=0; goto awal; } else { sprintf(Msg1,"%d",key); lcd_gotoxy(j,1); lcd_puts(Msg1); j++; if (j==1) { // jam MSB a=key; b=a*10; goto ulang; } if (j==2) { // jam LSB c=key; lcd_putsf(":"); j++; goto ulang; } if (j==4) { // min MSB d=key; e=d*10; goto ulang; } if (j==5) { // min LSB f=key; lcd_putsf(":"); j++; goto ulang; } if (j==7) { // sec MSB g=key; z=g*10; goto ulang; }if (j==8) { // sec LSB
i=key; k=0; delay_ms(1000); lcd_clear(); if (kondisi==0x00){ hour=b+c; min=e+f; sec=z+i; } if (kondisi==0x01){ date=b+c; mon=e+f; year=z+i; } if (kondisi==0x02){ jm=b+c; mt=e+f; dk=z+i; } if (kondisi==0x03){ tg=b+c; bl=e+f; th=z+i; } kondisi++; goto mulai; } ulang: kolom1(); key&=0x7F; if (key==0x10) { goto life; } else { goto ulang; } } } set: kolom1(); key&=0x7F; if (key==0x0F) // change { DDRC=0xf0; PORTC.7=0; lcd_clear(); j=0; goto awal; } else { rtc_set_time(hour,min,sec); rtc_set_date(date,mon,year);
lcd_gotoxy(0,0); lcd_putsf("PRESS *"); } kolom1(); key&=0x7F; if (key!=0x0A) goto set; get: kolom1(); key&=0x7F; if (key==0x0F) // change { goto awal; } else { i2c_start(); lcd_gotoxy(0,0); lcd_putsf("TIME:"); lcd_gotoxy(0,1); lcd_putsf("DATE:"); rtc_get_time(&h,&m,&s); sprintf(jam,"%2d:",h); sprintf(mnt,"%2d:",m); sprintf(dtk,"%2d",s); lcd_gotoxy(6,0);lcd_puts(jam); lcd_gotoxy(9,0);lcd_puts(mnt); Lcd_gotoxy(12,0);lcd_puts(dtk); rtc_get_date(&d,&mn,&y); sprintf(tahun,"20%2d",y); sprintf(bulan,"%2d/",mn); sprintf(hari,"%2d/",d); lcd_gotoxy(6,1);lcd_puts(hari); lcd_gotoxy(9,1);lcd_puts(bulan); lcd_gotoxy(12,1);lcd_puts(tahun); if (aaa==0x01){ goto a; } if (aaa==0x02){ goto b; } a: if (s==dk){ goto lab; } else { goto get;} lab: if (m==mt){ goto lab1; } else
{ goto get; } lab1: if (h==jm){ goto lab2; } else { goto get; } lab2: if (d==tg){ goto lab3; } else { goto get; } lab3: if (mn==bl){ goto lab4; } else { goto get; } lab4: if (y==th){ PORTA=0x00; PORTC.7=0; goto get; } else { goto get; } b: if (s==dk){ goto lab11; } else { goto get; } lab11: if (m==mt){ goto lab12; } else { goto get; } lab12:
if (h==jm){ goto lab13; } else { goto get; } lab13: if (d==tg){ goto lab14; } else { goto get; } lab14: if (bl==mn){ goto lab15; } else { goto get; } lab15: if (th==y){ PORTA=0xff; PORTC.7=1; goto get;} else { goto get; } }; }