Monitoring Dan Pengendalian Lampu Penerangan Berbasis Visual Basic
-
Upload
gan-gin-gun -
Category
Documents
-
view
590 -
download
4
description
Transcript of Monitoring Dan Pengendalian Lampu Penerangan Berbasis Visual Basic
LAPORAN PROYEK
MIKROKONTROLLER
Rancang Bangun Sistem Pengendalian dan Monitoring
Lampu Penerangan pada Bangunan berbasis Visual Basic
Oleh :
Heru Ramadhan (33111110004)
Muhammad Guntoro (3311110032)
Kelas : EC 5D
Program Studi Teknik Elektronika Industri
Jurusan Teknik Elektro
Politeknik Negeri Jakarta
Januari, 2014
Page i
KATA PENGANTAR
Puji syukur penyusun panjatkan kehadirat Allah SWT, karena atas karunia
dan hidayah-Nya kami dapat menyelesaikan makalah ini. Salawat serta salam
semoga tercurahkan kepada Nabi Muhammad SAW. beserta keluarga dan para
sahabatnya yang telah mengangkat seluruh umat manusia dari kegelapan menuju
keselamatan.
Penyusunan laporan inidibuat untuk memenuhi tugas mata kuliah
Antarmuka Komputerdan dengan adanya laporan mengenai praktek ”Rancang
Bangun Sistem Pengendalian dan Monitoring Lampu Penerangan pada
Bangunan berbasis Visual Basic” ini diharapkan agar setiap pembaca dapat
menambah pengetahuannya.
Pada kesempatan ini penyusun ucapkan terima kasih kepada seluruh pihak
yang secara langsung maupun tidak langsung ikut serta dalam proses penyusunan
laporan ini sehingga penyusun dapat menyelesaikannya dengan baik.
Penyusun menyadari sepenuhnya bahwa proses penyusunan laporan ini
sangat jauh dari sempurna, untuk itu penyusun mengharapkan saran dan kritik
yang membangun dari semua pihak agar penyusunan makalah selanjutnya dapat
lebih baik.
Akhirnya, semoga laporan yang sederhana ini dapat diterima dan
bermanfaat bagi para pembaca. Amin ya Rabbal’alamin.
Januari, 2014
Tim Penyusun
Proyek Mikrokontroler 2013Page ii
DAFTAR ISI
KATA PENGANTAR................................................................................ ii
......................................................................................................................
DAFTAR ISI............................................................................................... iii
DAFTAR GAMBAR.................................................................................. iv
BAB I PENDAHULUAN........................................................................... 2
1.1 Latar Belakang ................................................................................ 2
1.2 Tujuan dan Manfaat......................................................................... 2
BAB II TINJAUAN PUSTAKA............................................................. 3
2.1 Perangkat Keras Alat....................................................................... 3
2.1.1 Mikrokontroller ATMEGA 16................................................ 3
2.1.2 Arsitektur Atmega16................................................................ 3
2.1.3 DESKRIPSI MIKROKONTROLER ATMEGA16 ............... 4
2.1.4 Driver Relay............................................................................. 7
2.1.5 Photodioda.............................................................................. 8
2.2 Perangkat Lunak Alat....................................................................... 8
2.2.1 Bahasa C................................................................................. 8
2.2.2 Bahasa Visual Basic............................................................... 9
BAB III PEMBAHASAN......................................................................... 11
3.1 Spesifikasi Alat................................................................................ 11
3.2 Cara Kerja Alat ............................................................................... 11
3.3 Diagram Blok .................................................................................. 14
3.4 Flow Chart........................................................................................ 15
3.5 Skematik Alat.................................................................................... 16
3.6 Listing Program................................................................................. 18
BAB IV KESIMPULAN.......................................................................... 32
DAFTAR PUSTAKA................................................................................. 33
LAMPIRAN-LAMPIRAN........................................................................ 34
Proyek Mikrokontroler 2013Page iii
DAFTAR GAMBAR
Gambar 2.1 Blok Diagram Atmega16......................................................... 5
Gambar 2.2 Konfigurasi Pin Atmega16....................................................... 6
Gambar 2.3 Photodioda............................................................................... 9
Gambar 2.4 Tampilan antarmuka visual basic 6.0....................................... 11
Gambar 2.5 Komponen toolbox visual basic 6.0......................................... 12
Gambar 3.1 Blog Diagram Sistem .............................................................. 14
Gambar 3.2 Skematik Atmega16................................................................. 15
Gambar 3.3 Skematik Photodioda............................................................... 17
Gambar 3.4 Skematik Relay........................................................................ 17
Gambar Lampiran 1 Tampilan Alat ............................................................ 34
Gambar Lampiran 2 Tampilan Antarmuka pada Visual Basic.................... 34
Proyek Mikrokontroler 2013Page iv
Abstrak
Umumnya lampu pada ruangan masih menggunakan saklar manual, sehingga lampu
hanya bisa dioperasikan secara manual. Dengan demikian konsumsi daya listrik tidak
bisa terkontrol secara baik, hal ini karena kebiasaan yang kurang disiplin terhadap
penggunaan daya listrik. Atas dasar permasaalahan tersebut penulis membuat alat
pengontrol lampu ruangan pada bangunan bertingkat yang bisa memonitor lampu pada
tiap ruangan dan mengendalikannya melalui PC. Alat ini dirancang dengan
memanfaatkan mikrokontroler ATMEGA 16 sebagai pengendali utama, dimana
PC/komputer berfungsi untuk menampilkan kondisi lampu dan memberikan perintah
pada mikrokontroler untuk mengendalikan lampu. Program Pengendali lampu yang
dibuat dangan Visual Basic diinstal pada PC yang telah terpasang antarmuka ATMEGA
16 dan driver yang dihubungkan dengan lampu.
Proyek Mikrokontroler 2013Page 1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Perkembangan pembangunan bangunan bertingkat sudah merambah di daerah
sekitar perkotaan. Hal ini merupakan imbas dari kemajuan kota-kota besar dan
perkembangan penduduk yang sangat pesat. Pada menyalakan/mematikan lampu
masih sering dilakukan secara manual. Masalah yang sering terjadi yaitu lampu
tetap menyala sementara pengguna lupa untuk mematikannya. Berawal dari
masalah tersebut, penulis mencoba merancang sebuah alat yang dapat mengontrol
lampu dengan menggunakan Personal Computer (PC).
Dengan adanya alat ini daya yang digunakan untuk penerangan akan sedikit
lebih hemat dan pengguna atau petugas satpam tidak lagi repot-repot mematikan
lampu tersebut, serta satpam gedung akan selalu mengontrol kondisi lampu yang
terlihat dari PC.
Untuk melakukan percobaan ini menggunakan mikrokontroller ATMEGA 16
sebagai antarmuka personal komputer dengan lampu yang bertegangan AC yang
akan dikendalikan. Selain perangkat keras (rangkaian antarmuka ATMEGA 16 da
n rangkaian Relay), juga menggunakan perangkat lunak yang dibuat dengan
software Visual Basic 6. Diharapkan hasil perancangan ini dapat di aplikasikan
terhadap seluruh kompleks perumahan agar memberikan kemudahan dalam
pengoperasian lampu jalanan yang dapat dikontrol melalui PC.
1.2 Tujuan Proyek
Setelah mengikuti pembelajaran Mikrokontroler, mahasiswa dituntut untuk
merealisasikan suatu alat yang dapat berguna dan mengikuti perkembangan.
Rancang Bangun Sistem Pengendalian dan Monitoring Lampu Penerangan pada
Bangunan berbasis Visual Basic dapat menghemat energi listrik dan
mempermudah kegiatan manusia untuk menyalakan/mematikan lampu sehinga
dapat menghemat waktu dan tenaga.
Proyek Mikrokontroler 2013Page 2
BAB 2
TINJAUAN PUSTAKA
2.1 Perangkat Keras
2.1.1 Mikrokontroller ATMEGA 16
Mikrokontroler adalah sebuah sistem komputer lengkap dalam satu serpih
(chip). Mikrokontroler lebih dari sekedar sebuah mikroprosesor karena sudah
terdapat atau berisikan ROM (Read-Only Memory), RAM (Read-Write Memory),
beberapa bandar masukan maupun keluaran, dan beberapa peripheral seperti
pencacah/pewaktu, ADC (Analog to Digital converter), DAC (Digital to Analog
converter) dan serial komunikasi.
Salah satu mikrokontroler yang banyak digunakan saat ini yaitu
mikrokontroler AVR. AVR adalah mikrokontroler RISC (Reduce Instuction Set
Compute) 8 bit berdasarkan arsitektur Harvard. Secara umum mikrokontroler
AVR dapat dapat dikelompokkan menjadi 3 kelompok, yaitu keluarga AT90Sxx,
ATMega dan ATtiny. Pada dasarnya yang membedakan masing-masing kelas
adalah memori, peripheral, dan fiturnya Seperti mikroprosesor pada umumnya,
secara internal mikrokontrolerATMega16 terdiri atas unit-unit fungsionalnya
Arithmetic and Logical Unit (ALU), himpunan register kerja, register dan dekoder
instruksi, dan pewaktu beserta komponen kendali lainnya. Berbeda dengan
mikroprosesor, mikrokontroler menyediakan memori dalam serpih yang sama
dengen prosesornya (in chip).
2.1.2 Arsitektur ATMEGA16
Mikrokontroler ini menggunakan arsitektur Harvard yang memisahkan
memori program dari memori data, baik bus alamat maupun bus data, sehingga
pengaksesan program dan data dapat dilakukan secara bersamaan (concurrent).
Secara garis besar mikrokontroler ATMega16 terdiri dari :
Proyek Mikrokontroler 2013Page 3
1. Arsitektur RISC dengan throughput mencapai 16 MIPS pada frekuensi
16Mhz.
2. Memiliki kapasitas Flash memori 16Kbyte, EEPROM 512 Byte, dan
SRAM 1Kbyte
3. Saluran I/O 32 buah, yaitu Bandar A, Bandar B, Bandar C, dan Bandar D.
4. CPU yang terdiri dari 32 buah register.
5. User interupsi internal dan eksternal.
6. Bandar antarmuka SPI dan Bandar USART sebagai komunikasi serial
7. Fitur Peripheral :
• Dua buah 8-bit timer/counter dengan prescaler terpisah dan mode
Compare.
• Satu buah 16-bit timer/counter dengan prescaler terpisah, mode
compare, dan mode capture.
• Real time counter dengan osilator tersendiri.
• Empat kanal PWM dan Antarmuka komparator analog.
• 8 kanal, 10 bit ADC.
• Byte-oriented Two-wire Serial Interface.
• Watchdog timer dengan osilator internal.
Proyek Mikrokontroler 2013Page 4
Gambar 2.2 Konfigurasi Pin Atmega16
2.1.3. DESKRIPSI MIKROKONTROLER ATMEGA16
• VCC (Power Supply) dan GND(Ground)
• Port A (PA0-PA7)
Port A berfungsi sebagai input analog pada konverter A/D. Bandar A juga
sebagai suatu port I/O 8-bit dua arah, jika A/D konverter tidak digunakan. Pena -
pena port dapat menyediakan resistor internal pull-up (yang dipilih untuk masing-
masing bit). Port A output buffer mempunyai karakteristik gerakan simetris
dengan keduanya sink tinggi dan kemampuan sumber. Ketika pena PA0 ke PA7
digunakan sebagai input dan secara eksternal ditarik rendah, pena–pena akan
memungkinkan arus sumber jika resistor internal pull-up diaktifkan. Pena Port A
adalah tri-stated manakala suatu kondisi reset menjadi aktif, sekalipun waktu
habis.
• Port B (PB0-PB7)
Port B adalah suatu bandar I/O 8-bit dua arah dengan resistor internal pull-
up (yang dipilih untuk beberapa bit). Port B output buffer mempunyai
karakteristik gerakan simetris dengan keduanya sink tinggi dan kemampuan
sumber. Sebagai input, pena Port B yang secara eksternal ditarik rendah akan arus
sumber jika resistor pull-up diaktifkan. Pena Port B adalah tri-stated manakala
suatu kondisi reset menjadi aktif, sekalipun waktu habis.
Proyek Mikrokontroler 2013Page 6
• Port C (PC0-PC7)
Port C adalah suatu port I/O 8-bit dua arah dengan resistor internal pull-up (yang
dipilih untuk beberapa bit). Port C output buffer mempunyai karakteristik gerakan
simetris dengan keduanya sink tinggi dan kemampuan sumber. Sebagai input,
pena port C yang secara eksternal ditarik rendah akan arus sumber jika resistor
pull-up diaktifkan. Pena port C adalah tri-stated manakala suatu kondisi reset
menjadi aktif, sekalipun waktu habis.
• Port D (PD0-PD7)
Port D adalah suatu bandar I/O 8-bit dua arah dengan resistor internal pull-up
(yang dipilih untuk beberapa bit). Port D output buffer mempunyai karakteristik
gerakan simetris dengan keduanya sink tinggi dan kemampuan sumber. Sebagai
input, pena port D yang secara eksternal ditarik rendah akan arus sumber jika
resistor pull-up diaktifkan. Pena Port D adalah tri-stated manakala suatu kondisi
reset menjadi aktif, sekalipun waktu habis.
• RESET (Reset input).
• XTAL1(Input Oscillator).
• XTAL2 (Output Oscillator).
• AVCC adalah pena penyedia tegangan untuk bandar A dan Konverter A/D.
• AREF adalah pena referensi analog untuk konverter A/D.
2.1.4 Relay
Relay adalah komponen elektronika berupa saklar elektronik yang
digerakkan oleh arus listrik. Secara prinsip, relay merupakan tuas saklar dengan
lilitan kawat pada batang besi (solenoid) di dekatnya. Ketika solenoid dialiri arus
listrik, tuas akan tertarik karena adanya gaya magnet yang terjadi pada solenoid
sehingga kontak saklar akan menutup. Pada saat arus dihentikan, gaya magnet
akan hilang, tuas akan kembali ke posisi semula dan kontak saklar kembali
terbuka.Relay biasanya digunakan untuk menggerakkan arus/tegangan yang besar
(misalnya peralatan listrik 4 ampere AC 220 V) dengan memakai arus/tegangan
yang kecil (misalnya 0.1 ampere 12 Volt DC). Relay yang paling sederhana ialah
relay elektromekanis yang memberikan pergerakan mekanis saat mendapatkan
energi listrik.
Proyek Mikrokontroler 2013Page 7
Konfigurasi dari kontak-kontak relay ada tiga jenis, yaitu:
• Normally Open (NO), apabila kontak-kontak tertutup saat relay dicatu
• Normally Closed (NC), apabila kontak-kontak terbuka saat relay dicatu
Change Over (CO), relay mempunyai kontak tengah yang normal tertutup, tetapi
ketika relay dicatu kontak tengah tersebut akan membuat hubungan dengan
kontak-kontak yang lain.
Penggunaan relay perlu memperhatikan tegangan pengontrolnya serta
kekuatan relay men-switch arus/tegangan. Biasanya ukurannya tertera pada body
relay. Misalnya relay 12VDC/4 A 220V, artinya tegangan yang diperlukan
sebagai pengontrolnya adalah 12Volt DC dan mampu men-switch arus listrik
(maksimal) sebesar 4 ampere pada tegangan 220 Volt. Sebaiknya relay
difungsikan 80% saja dari kemampuan maksimalnya agar aman, lebih rendah lagi
lebih aman. Relay jenis lain ada yang namanya reedswitch atau relay lidi. Relay
jenis ini berupa batang kontakterbuat dari besi pada tabung kaca kecil yang dililit
kawat. Pada saat lilitan kawat dialiri arus, kontak besi tersebut akan menjadi
magnet dan saling menempel sehingga menjadi saklar yang on. Ketika arus pada
lilitan dihentikan medan magnet hilang dan kontak kembali terbuka (off).
Cara kerja komponen ini dimulai pada saat mengalirnya arus listrik
melalui koil,lalu membuat medan magnet sekitarnya sehingga dapat merubah
posisi saklar yang ada di dalam relay terserbut, sehingga menghasilkan arus listrik
yang lebih besar. Disinilah keutamaan komponen sederhana ini yaitu dengan
bentuknya yang minimal bisa menghasilkan arus yang lebih besar.
Pemakaian relay dalam perangkat-perangkat elektronika mempunyai Keuntungan
yaitu ;
Dapat mengontrol sendiri arus serta tegangan listrik yang diinginkan
Dapat memaksimalkan besarnya tegangan listrik hingga mencapai batas
maksimalnya
Dapat menggunakan baik saklar maupun koil lebih dari satu, disesuaikan
dengan kebutuhan
Proyek Mikrokontroler 2013Page 8
2.1.5 Photodioda
Photodioda adalah dioda yang bekerja berdasarkan intensitas cahaya, jika
photodioda terkena cahaya maka photodioda bekerja seperti dioda pada
umumnya, tetapi jika tidak mendapat cahaya maka photodioda akan berperan
seperti resistor dengan nilai tahanan yang besar sehingga arus listrik tidak dapat
mengalir.
Gambar 2.3 Photodioda
Photodioda merupakan sensor cahaya semikonduktor yang dapat mengubah
besaran cahaya menjadi besaran listrik. Photodioda merupakan sebuah dioda
dengan sambungan p-n yang dipengaruhi cahaya dalam kerjanya. Cahaya yang
dapat dideteksi oleh photodioda ini mulai dari cahaya infra merah, cahaya tampak,
ultra ungu sampai dengan sinar-X.
Prinsip kerja, karena photodioda terbuat dari semikonduktor p-n junction maka
cahaya yang diserap oleh photodioda akan mengakibatkan terjadinya pergeseran
foton yang akan menghasilkan pasangan electron-hole dikedua sisi dari
sambungan. Ketika elektron-elektron yang dihasilkan itu masuk ke pita konduksi
maka elektron-elektron itu akan mengalir ke arah positif sumber tegangan
sedangkan hole yang dihasilkan mengalir ke arah negatif sumber tegangan
sehingga arus akan mengalir di dalam rangkaian. Besarnya pasangan elektron
ataupun hole yang dihasilkan tergantung dari besarnya intensitas cahaya yang
diserap oleh photodioda.
Proyek Mikrokontroler 2013Page 9
Photodioda dibuat dari semikonduktor dengan bahan yang populer adalah
silicon ( Si) atau galium arsenida ( GaAs), dan yang lain meliputi InSb, InAs,
PbSe. Material ini menyerap cahaya dengan karakteristik panjang gelombang
mencakup: 2500 Å - 11000 Å untuk silicon, 8000 Å – 20,000 Å untuk GaAs.
Ketika sebuah photon (satu satuan energi dalam cahaya) dari sumber cahaya
diserap, hal tersebut membangkitkan suatu elektron dan menghasilkan sepasang
pembawa muatan tunggal, sebuah elektron dan sebuah hole, di mana suatu hole
adalah bagian dari kisi-kisi semikonduktor yang kehilangan elektron. Arah Arus
yang melalui sebuah semikonduktor adalah kebalikan dengan gerak muatan
pembawa. cara tersebut didalam sebuah photodiode digunakan untuk
mengumpulkan photon - menyebabkan pembawa muatan (seperti arus atau
tegangan) mengalir/terbentuk di bagian-bagian elektroda.
Photodioda digunakan sebagai penangkap gelombang cahaya yang
dipancarkan oleh Infrared. Besarnya tegangan atau arus listrik yang dihasilkan
oleh photodioda tergantung besar kecilnya radiasi yang dipancarkan oleh infrared.
Photo dioda digunakan sebagai komponen pendeteksi ada tidaknya cahaya
maupun dapat digunakan untuk membentuk sebuah alat ukur akurat yang dapat
mendeteksi intensitas cahaya dibawah 1pW/cm2 sampai intensitas diatas
10mW/cm2. Photo dioda mempunyai resistansi yang rendah pada kondisi forward
bias, kita dapat memanfaatkan photo dioda ini pada kondisi reverse bias dimana
resistansi dari photo dioda akan turun seiring dengan intensitas cahaya yang
masuk.
2.2 Perangkat Lunak
2.2.1 Bahasa C
Bahasa C merupakan bahasa tingkat menengah yang memiliki
kemampuan diatas bahasa assembly, serta memiliki kemudahan seperti
bahasa tingkat tinggi lainnya.Bahasa ini digunakan untuk mengatur kerja
dari mikrokontroller ATMEGA 16. Program compiler C yang digunakan
pada tugas ini adalah Code Vision AVR.
Proyek Mikrokontroler 2013Page 10
2.2.2 Bahasa Visual Basic 6.0
Pada dasarnya bahasa basic adalah bahasa yang mudah dimengerti
sehingga pemograman didalam bahasa basic dapat dilakukan dengan
mudah. Hal ini lebih mudah lagi setelah hadirnya Microsoft Visual Basic,
yang dibangun dari ide untuk membuat bahasa yang sederhana dan mudah
dalam pembuatan scriptnya (simple scripting language) untuk graphic user
interface yang dikembangkan dalam sistem operasi Microsoft Windows.
Interface antarmuka 6.0,berisi menu, toolbar, toolbox, form, project explorer
dan property seperti terlihat pada gambar berikut.
Gambar 2.5 Tampilan antarmuka visual basic 6.0
Pembuatan program aplikasi menggunakan visual basic dilakukan dengan
membuat tampilan aplikasi padaform, kemudian diberi script program didalam
komponen-komponen yang diperlukan. Form disusun oleh komponen-komponen
yang berada di toolbox dan setiap komponen yang dipakai harus diatur property
melalui jendela (property). Toolbox berisi komponen-komponen yang bisa
digunakan oleh suatu project aktif, artinya isi komponen dalam toolbox sangat
bergantung pada jenis project yang dibangun. Komponen standar dalam toolbox
dapat dilihat pada gambar dibawah ini :
Proyek Mikrokontroler 2013Page 11
BAB III
PEMBAHASAN
3.1 Spesifikasi Alat
Spesifikasi dari perancangan dan implementasi interface komputer sebagai
pengendalian dan monitoring lampu ruangan adalah sebagai berikut :
Sistem ini terdiri atas dua bagian utama, dimana masing-masing bagian
tersusun atas komponen perangkat keras (hardware) :
1. ATMEGA16 1 buah
2. Driver Relay 5V 2 buah
3. IC ULN 2003 1 buah
4. Photodioda 3 buah
5. Lampu 5W 3 buah
Pada alat menggunakan computer desktop yang dapat menjalankan
program Visual Basic 6 beserta Port serial yang digunakan. Alat ini
bekerja dengan sistem dua arah yaitu PC dapat menampilkan kondisi dari
lampu (telesignalling) dan dapat menampilkan tombol untuk mengontrol
lampu tersebut (telecontroll).
Pengiriman dan penerimaan data dilakukan secara serial menggunakan Rs-
232 yang terhubung dengan mikrokontroller ATMEGA16.
Alat ini dapat mengendalikan lampu sebanyak 3 lampu dengan tegangan
220 VAC dan daya 5 Watt.
Proyek Mikrokontroler 2013Page 13
3.2 Cara kerja Alat
Pengguna menggunakan komputer yang sudah menggunakan program Visual
Basic yang akan mengaktifkan port dengan memberikan logic 1 pada port
tersebut, apabila computer rmemberikan logic 1 kepada mikrokontroler maka
mikrokontroler yang telah di program akan memberikan dan meneruskan
tegangan menuju relay, setelah tegangan sampai di relay, maka relay akan
tersambung dan tegangan dari relay akan diteruskan menuju lampu. Untuk
mendeteksi kondisi lampu (nyala/mati) digunakan sensor photodioda yang
mengirimkan data ke Mikrokontroler yang akan ditampilakan ke PC. Alat
pengendali lampu menggunakan PC dapat mengatur ON dan OFF pada lampu
serta dapat memonitoring kondisi lampu (nyala/mati).
3.3 Diagram Blok
Gambar 3.1 Blog Diagram Sistem
Proyek Mikrokontroler 2013Page 14
Gambar 3.2 Skematk Photodioda
Gambar 3.3 Skematik Relay
3.5 Listing Program
Proyek Mikrokontroler 2013Page 17
Program Visual Basic
Private Sub cmdConnect_Click()
Dim port As Integer
On Error GoTo errcode
Select Case Combo1.ListIndex
Case -1
port = 1
Case 0
port = 1
Case 1
port = 2
Case 2
port = 3
Case 3
port = 4
Case 4
port = 5
Case 5
port = 6
Case 6
port = 7
Case 7
port = 8
Case 8
port = 9
End Select
If MSComm1.PortOpen = False Then
MSComm1.CommPort = port
MSComm1.RThreshold = 1
MSComm1.InputLen = 40
MSComm1.Settings = Combo2.List(Combo2.ListIndex) & ",N,8,1"
MSComm1.PortOpen = True
Proyek Mikrokontroler 2013Page 18
cmdConnect.Enabled = False
cmdDisconnect.Enabled = True
End If
Exit Sub
errcode:
MsgBox "Port Salah !", vbOKOnly, "Peringatan"
Combo1.SetFocus
End Sub
Private Sub cmdDisconnect_Click()
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
End If
cmdConnect.Enabled = True
cmdDisconnect.Enabled = False
End Sub
Private Sub MSComm1_OnComm()
Dim buffer As String
Dim temp As String
buffer = MSComm1.Input
If buffer <> "" Then
If buffer = "A" Then
Shape1.FillColor = vbWhite
End If
If buffer = "B" Then
Shape1.FillColor = vbYellow
End If
If buffer = "E" Then
Shape2.FillColor = vbWhite
End If
Proyek Mikrokontroler 2013Page 19
If buffer = "F" Then
Shape2.FillColor = vbYellow
End If
If buffer = "I" Then
Shape3.FillColor = vbWhite
End If
If buffer = "J" Then
Shape3.FillColor = vbYellow
End If
End If
End Sub
Private Sub Command1_Click()
'Shape1.FillColor = vbYellow
MSComm1.Output = "C" & Chr$(13)
End Sub
Private Sub Command2_Click()
'Shape1.FillColor = vbWhite
MSComm1.Output = "D" & Chr$(13)
End Sub
Private Sub Command3_Click()
'Shape2.FillColor = vbYellow
MSComm1.Output = "G" & Chr$(13)
End Sub
Private Sub Command4_Click()
'Shape2.FillColor = vbWhite
MSComm1.Output = "H" & Chr$(13)
End Sub
Proyek Mikrokontroler 2013Page 20
Private Sub Command5_Click()
'Shape3.FillColor = vbYellow
MSComm1.Output = "K" & Chr$(13)
End Sub
Private Sub Command6_Click()
'Shape3.FillColor = vbWhite
MSComm1.Output = "L" & Chr$(13)
End Sub
Private Sub Form_Load()
With Combo1
.AddItem "COM1"
.AddItem "COM2"
.AddItem "COM3"
.AddItem "COM4"
.AddItem "COM5"
.AddItem "COM6"
.AddItem "COM7"
.AddItem "COM8"
.AddItem "COM9"
End With
With Combo2
.AddItem "2400"
.AddItem "4800"
.AddItem "9600"
.AddItem "19200"
.AddItem "38400"
.AddItem "56600"
End With
Proyek Mikrokontroler 2013Page 21
cmdConnect.Enabled = True
cmdDisconnect.Enabled = False
End Sub
Program Pada Mikrokontroler
/*****************************************************
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 :
Version :
Date : 1/4/2014
Author :
Company :
Comments:
Chip type : ATmega16
Program type : Application
Clock frequency : 11.059200 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 256
*****************************************************/
#include <mega16.h>
Proyek Mikrokontroler 2013Page 22
#define RXB8 1
#define TXB8 0
#define UPE 2
#define OVR 3
#define FE 4
#define UDRE 5
#define RXC 7
#define FRAMING_ERROR (1<<FE)
#define PARITY_ERROR (1<<UPE)
#define DATA_OVERRUN (1<<OVR)
#define DATA_REGISTER_EMPTY (1<<UDRE)
#define RX_COMPLETE (1<<RXC)
// USART Receiver buffer
#define RX_BUFFER_SIZE 8
char rx_buffer[RX_BUFFER_SIZE];
#if RX_BUFFER_SIZE<256
unsigned char rx_wr_index,rx_rd_index,rx_counter;
#else
unsigned int rx_wr_index,rx_rd_index,rx_counter;
#endif
// This flag is set on USART Receiver buffer overflow
bit rx_buffer_overflow;
char data;
// USART Receiver interrupt service routine
interrupt [USART_RXC] void usart_rx_isr(void)
{
char status;
status=UCSRA;
Proyek Mikrokontroler 2013Page 23
data=UDR;
if ((status & (FRAMING_ERROR | PARITY_ERROR |
DATA_OVERRUN))==0)
{
rx_buffer[rx_wr_index]=data;
if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
if (++rx_counter == RX_BUFFER_SIZE)
{
rx_counter=0;
rx_buffer_overflow=1;
};
if(data=='C')
{
PORTB.0=1;
}
if(data=='D')
{
PORTB.0=0;
}
if(data=='G')
{
PORTB.1=1;
}
if(data=='H')
{
PORTB.1=0;
}
if(data=='K')
{
PORTB.2=1;
}
Proyek Mikrokontroler 2013Page 24
if(data=='L')
{
PORTB.2=0;
}
};
}
#ifndef _DEBUG_TERMINAL_IO_
// Get a character from the USART Receiver buffer
#define _ALTERNATE_GETCHAR_
#pragma used+
char getchar(void)
{
char data;
while (rx_counter==0);
data=rx_buffer[rx_rd_index];
if (++rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
#asm("cli")
--rx_counter;
#asm("sei")
return data;
}
#pragma used-
#endif
// Standard Input/Output functions
#include <stdio.h>
#include <delay.h>
#define ADC_VREF_TYPE 0x60
Proyek Mikrokontroler 2013Page 25
// Read the 8 most significant bits
// of the AD conversion result
unsigned char read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH;
}
// Declare your global variables here
//unsigned char photo0[8],photo1[8],photo2[8];
unsigned int photo0,photo1,photo2;
void main(void)
{
// 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
Proyek Mikrokontroler 2013Page 26
// 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=0xFF;
// 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
Proyek Mikrokontroler 2013Page 27
// 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
Proyek Mikrokontroler 2013Page 28
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00; //int 11.98
UCSRB=0x98;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x47;
//int 8mhz
//UCSRA=0x00;
//UCSRB=0x98;
//UCSRC=0x86;
//UBRRH=0x00;
//UBRRL=0x33;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
Proyek Mikrokontroler 2013Page 29
// ADC initialization
// ADC Clock frequency: 691.200 kHz
// ADC Voltage Reference: AREF pin
// ADC Auto Trigger Source: None
// Only the 8 most significant bits of
// the AD conversion result are used
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x84;
// Global enable interrupts
#asm("sei")
while (1)
{//printf("A");
photo0=read_adc(0);
photo1=read_adc(1);
photo2=read_adc(2);
if(photo0<=100)
{
printf("A");
printf("\r");
}
else
if(photo0>=200)
{
printf("B");
printf("\r");
};
delay_us(20);
Proyek Mikrokontroler 2013Page 30
if(photo1<=100)
{
printf("E");
printf("\r");
}
else
if(photo1>=200)
{
printf("F");
printf("\r");
};
delay_us(20);
if(photo2<=100)
{
printf("I");
printf("\r");
}
else
if(photo2>=200)
{
printf("J");
printf("\r");
};
delay_ms(300);
};
}
BAB IV
Proyek Mikrokontroler 2013Page 31
KESIMPULAN
Berdasarkan hasil perancangan dan uji coba dari antarmuka komputer
sebagai Sistem Pengendalian dan Monitoring Lampu Penerangan pada Bangunan
berbasis Visual Basic dapat ditarik kesimpulan :
1. Pada hasil perancangan alat ini dapat mengendalikan 3 lampu yang
terhubung dengan Personal Computer.
2. Alat ini berguna untuk menyalakan dan mematikan lampu (telecontroll)
dan melihat kondisi lampu (telesignalling) melalui program Visual Basic
yang terhubung dengan Personal Computer.
3. Rangkaian antar muka (ATMEGA16) yang dibuat bekerja sesuai
rancangan awal untuk mengendalikan lampu melalui port serial yang
terhubung dengan rangkaian driver relay untuk memisahkan level
tegangan dc rendah dengan tegangan 220VAC.
DAFTAR PUSTAKA
1. http://repository.usu.ac.id/bitstream/123456789/28677/4/Chapter%20II.pdf
diakses tanggal 7 Desember 2013. Pukul 20.00
Proyek Mikrokontroler 2013Page 32
2. http://www.engineersgarage.com/electronic-components/uln2003-datasheet
diakses tanggal 7 Desember 2013, pukul 20.15
3. Eko Putra, Agfianto. (2006), Belajar Mikro Kontroler AT89S51/52/55 Teori dan
Aplikasi, Yokyakarta : Gava Media
4. Krisna D. Octovhiana.2013.Cepat Mahir Visual Basic 6.0
Lampiran -Lampiran
Proyek Mikrokontroler 2013Page 33