Você está na página 1de 421

PERATURAN :

Hak cipta dilindungi oleh undang – undang,


“ Hal-hal yang menyangkut isi dan program pada buku ini tidak boleh disebar luaskan tanpa
izin dari penulis, isi dan program dilindungi oleh undang-undang ”

Penulis,

Yanuar Mukhammad
ELECTRONIC’S ART
PANDUAN MEMBUAT ROBOT
DAN ALAT ELEKTRONIK

ii
Kata Pengantar

Alhamdulillah segala puji dan syukur kami panjatkan kepada Allah swt. yang
telah memberikan kelancaran dan berkahnya sehingga buku ini dapat terbit dan beredar
dimasyarakat secara baik dan teratur, tidak lupa kami haturkan terima kasih untuk seluruh
donatur yang telah memberikan bantuan kepada kami baik itu dalam segi materi maupun
non-materi, dan juga ucapan terima kasih yang mendalam kepada orang tua penulis yang
telah memberikan bantuannya, baik itu dari sisi batin dan pendanaan yang membuat sisi
psikologis penulis menjadi percaya diri dan tidak cepat patah semangat dalam proses
pembuatan buku ini.
Latar belakang dalam pembuatan buku ini adalah melihat banyaknya masyarakat
indonesia yang masih mengandalkan teknologi konvensional didalam melakukan pekerjaan
atau aktifitas sehari-hari, alangkah baiknya kondisi yang konvensional dapat berubah dengan
adanya teknologi yang modern seperti halnya teknologi robotika, yang bisa digunakan untuk
menggantikan peran serta pekerjaan manusia yang biasa dilakukan berulang-ulang kali atau
bahkan bisa berdampingan dengan pekerjaan manusia yang mana bisa menguntungkan pihak
dari manusia sendiri, seperti adanya alat detektor maling digital, yang dapat berdampingan
dengan satpam atau penjaga dalam sebuah kantor atau rumah.
Tujuan dibuatnya buku ini yaitu untuk memberikan panduan didalam membuat
alat-alat elektronika dan robotika, yang mana dengan bisa membuat robot atau alat
elektronika akan bisa menggeser teknologi konvensional secara perlahan, sehingga indonesia
akan maju dalam hal teknologi dan inovasinya, dan bisa bersaing untuk urusan teknologi di
asia, khususnya di asia tenggara.
Buku ini membahas tentang bagaimana cara pembuatan suatu alat elektronika dan
robotika, yang dijelaskan secara teperinci dari pembuatan skema rangkaian, skema program
dan bagan kerjanya sehingga akan mudah dipahami secara logika. Semua alat dan robot yang
dibuat menggunakan teknologi mikrokontroler yang bisa bertindak sebagai otak dalam setiap
kondisi alat yang akan dibuat, dalam hal ini mikrokontroler ATMega, dan juga menggunakan
bahasa basic yaitu Bascom-AVR, yang mana bahasa ini adalah bahasa dalam kategori bahasa
tingkat tinggi, sehingga mudah untuk dipahami dan dimengerti, terutama untuk yang pemula
dalam dunia elektronika.
Kami menyadari akan adanya kekurangan dalam setiap penulisan atau pun
penjelasan dari kami, maka dari itu dimohon untuk memberikan segenap kritik dan sarannya
agar buku ini bisa benar-benar memudahkan pembaca dan kami bisa melakukan evaluasi
terhadap buku ini. Untuk mengirimkan kritik dan saran ke E-mail berikut ini.

yanuarm@hotmail.com

Penulis

(Yanuar Mukhammad, ST)

iii
Daftar Isi

1. Cover........................................................................................................................ I
2. Kata Pengantar .................................................................................................. ..III
3. Daftar Isi ............................................................................................................... IV
4. BAB 1 : Perkenalan Komponen............................................................................. 1
1.1 Perkenalan dengan Komponen Elektronika ........................................................ 1
1.2 Perkenalan dengan mikrokontroler Atmega ...................................................... 12
1.3 Perkenalan Software Bascom-AVR ................................................................. 18
1.4 Karakteristik Bahasa Bascom-AVR ................................................................. 20
5. BAB 2 : Downloader............................................................................................. 29
2.1 Perkenalan dengan Downloader ....................................................................... 29
2.2 Pembuatan Rangkaian USB Downloader ......................................................... 31
2.3 Cara Men-download Program ......................................................................... 35
6. BAB 3 : Komunikasi Serial .................................................................................. 39
3.1 Perkenalan Komunikasi Serial ......................................................................... 39
3.2 Cara Menghubungkan Komputer dengan Mikrokontroler................................. 39
3.3 Pembuatan Rangkaian Komunikasi Serial ........................................................ 45
7. BAB 4 : Minimum System ................................................................................... 47
4.1 Perkenalan dengan Minimum System .............................................................. 47
4.2 Pembuatan Rangkaian Minimum System ......................................................... 48
8. BAB 5 : ROBOTIKA ........................................................................................... 53
5.1 Pengenalan Tentang Robotika .......................................................................... 53
5.2 Membuat Robot Line Follower ( Advance Grade )........................................... 57
5.3 Membuat Robot Keseimbangan (balance)........................................................ 97
5.4 Membuat Robot Remote Control dengan Remote TV .....................................107
5.5 Membuat Robot Remote Control dengan Bluetooth ........................................115
5.6 Membuat Robot Remote Control dengan Visual Basic dan APC220 ...............122
5.7 Membuat Robot Penerang Ruangan ................................................................130
9. BAB 6 : Alat Instrumentasi.................................................................................136
6.1 Perkenalan Tentang Alat Instrumentasi ...........................................................136
6.2 Membuat Termometer Digital dengan LM35 dan Interface Visual Basic.........137
6.3 Membuat Termometer Digital dengan DHT11 ................................................145

iv
6.4 Membuat Alat Pendeteksi Maling/Pencuri ......................................................150
6.5 Membuat Jam Digital......................................................................................155
6.6 Membuat RFID dengan RDM 630 dan Interface Visual Basic.........................162
6.7 Membuat RFID dengan Reader ID-12.............................................................169
6.8 Membuat Fusebit AVR Doctor .......................................................................177
6.9 Membuat Alat Pengukur Berat Badan .............................................................182
6.10. Membuat Alat Pengukur Jarak Benda Digital ...............................................190
6.11 Membuat Detektor Gas LPG (Liquified Petroleum Gas) ...............................198
6,12 Membuat Pengaman Pintu dengan Password .................................................214
6.13 Membuat Alat Monitoring ADC dan Kendali Led Berbasis TCP-IP ..............228
6.14 Membuat Bel Rumah Modern .......................................................................241
6.15 Cara Menghubungkan Camera Link Sprite ke Komputer...............................248
6.16 Membuat Tampilan Dotmatrik ......................................................................252
6.17 Membuat Modul Record Suara .....................................................................263
6.18 Membuat Speaker Active...............................................................................267
6.19 Membuat Rangkaian Pre-Mic........................................................................269
6.20 Membuat Power Supply / Adaptor 12v dan 5v dari sumber AC .....................272
6.21 Mengatur Kecepatan Motor DC ....................................................................276
6.22 Membuat Termometer Digital dengan LM35 dan Data Logger / SD Card .....283
6.23 Membuat SMS Gateway dengan Modem Wavecom dan Keypad Matrik.......293
6.24 Membuat Kalkulator Digital Dua Digit .........................................................303
6.25 Membuat Lampu Tidur .................................................................................310
6.26 Membuat Alat Berbasis RFID dengan Modul RDM630 ................................316
6.27 Membuat Alat Kendali Led dengan Joystick PS2 ..........................................323
6.28 Membuat Alat Kendali Led dengan Handphone J2ME..................................331
6.29 Membuat Alat Penunjuk Arah (Kompas) ......................................................345
6.30 Membuat Alat Pengendali Led dan Buzzer Menggunakan SMS Gateway .....352
6.31 Membuat Alat Pembaca Input ADC dengan Interface 7 Segment ..................360
10. BAB 7 : Macam-Macam Sensor........................................................................367
11. BAB 8 : Macam-Macam Modul / Starter Kit...................................................371
12. BAB 9 : Cara Membuat Rangkaian / Skematik di PCB ..................................375
13. BAB 10 : Penutup ..............................................................................................383
14. Bonus Article: Koneksi VB 6.0 ke Database MS. Access 2007 ..........................384
15. Bonus Article: Parsing Data Pada Visual Basic 6.0 ............................................395
v
16. Profil Penulis .....................................................................................................401
17. Kata-Kata Mutiara............................................................................................402
18. Daftar Pustaka...................................................................................................403
19. Lampiran ...........................................................................................................405

vi
BAB 1
Perkenalan Komponen

1.1 Perkenalan Dengan Komponen Elektronika


Komponen elektronika adalah salah satu bagian dari elektronika yang sangat
dibutuhkan, karena itu merupakan bahan-bahan penyusun dari suatu alat atau robot yang akan
dibuat. Komponen elektronika memiliki bermacam-macam bentuk dan kegunaannya, setiap
suatu bentuk misalnya transistor memiliki berbagai macam fungsi tergantung dari
kegunaannya dan seri nomer pada transistor tersebut. Dapat dikatakan komponen elektronika
merupakan bahan-bahan yang akan digunakan untuk membuat suatu alat atau robot yang
berbasis elektronik. Berikut adalah penjelasan tentang macam-macam komponen elektronika
tersebut.
1.1.1. Resistor
Resistor memiliki simbol secara umum seperti pada gambar 1.1 dibawah ini, ada
dua simbol, yang atas yaitu simbol untuk versi amerika dan yang bawah adalah simbol untuk
versi eropa, biarpun berbeda namun fungsi dan bentuk resistornya sama.

Gambar 1.1 Simbol Resistor

1.1.1.1 Pengertian
Sebuah resistor adalah terminal dua komponen elektronik yang menghasilkan
tegangan pada terminal yang sebanding dengan arus listrik melewatinya sesuai dengan
hukum Ohm:

V=IxR

Resistor adalah elemen dari jaringan listrik dan sirkuit elektronik dan di mana-mana
di sebagian besar peralatan elektronik. Praktis resistor dapat dibuat dari berbagai senyawa
dan film, serta resistensi kawat (kawat terbuat dari paduan Resistivitas tinggi, seperti nikel /
krom). Karakteristik utama dari sebuah resistor adalah resistensi, toleransi, tegangan kerja

1
maksimum dan power rating. Karakteristik lainnya meliputi koefisien temperatur, kebisingan,
dan induktansi. Resistor dapat diintegrasikan kedalam sirkuit hibrida dan papan sirkuit cetak,
bahkan sirkuit terpadu. Ukuran dan letak kaki bergantung pada desain sirkuit, kebutuhan daya
resistor harus cukup dan disesuaikan dengan kebutuhan arus rangkaian agar tidak terbakar.

1.1.1.2 Fungsi
Untuk fungsi utama dari resistor yaitu untuk membatasi arus yang yang
melewatinya, misalkan untuk LED biasanya digunakan resistor sebesar 330 ohm yang mana
bisa untuk membatasi arus sebesar 20mA-50mA, karena jika arus yang masuk ke sebuah
komponen elektronika melebihi dari kapasitas arus maksismum komponen tersebut, maka
komponen tersebut akan panas terlebih dahulu kemudian akan rusak, namun jika arus yang
masuk ke komponen itu terlalu kecil atau kurang dari batas minimum, maka komponen
tersebut tidak akan aktif.
1.1.1.3 Jenis-Jenis Resisitor
A. Resistor Umum dan Resistor 1%
Resistor memiliki jenis dan variasi yang berbeda-beda tergantung dari fungsi
yang akan digunakan, jika menginginkan resistor yang bagus maka dapat menggunakan
resistor berjenis 1% yang memiliki warna dasar berwarna biru, namun jika menggunakan
resistor yang biasa juga tidak masalah karena akan sama hasilnya, yang berbeda Cuma
keakuratan dalam resistansi 1% lebih akurat dibanding dengan resistor biasa, dan juga
harganya lebih mahal yang 1%., berikut adalah gambar dari resistor biasa dan resistor 1%.

Gambar 1.3 Bentuk Resistor 1%

Gambar 1,2 Bentuk Resistor Umum

2
B. Variabel Resisitor / Potensiometer
Resistor tidak hanya memiliki bentuk-bentuk seperti gambar 1.1 dan 1.2, namun
masih terdapat bentuk lain yang mana biasa disebut dengan variabel resistor /
potensiometer, variabel resistor sejatinya fungsinya sama dengan fungsi resistor secara
umum namun hanya berbeda pada bagian kapasitas, untuk resistor yang biasa atau yang 1 %
hanya dapat memberikan resistansi hanya sebesar apa yang terlihat pada gelang resistor,
misalkan resistor 2k2 maka hanya dapat memberikan batasan resistansi sebesar 2200 ohm
dan tidak bisa lebih maupun kurang dari itu, namun jika variabel resisor dapat dirubah
kapasitasnya yaitu dengan cara memutar pada bagian pengaturan kapasitas, jadi jika terdapat
variabel resistor sebesar 10k maka sejatinya dia bisa dirubah dari resistasi minimum yaitu 0
ohm sampai resistansi maksimal yaitu 10000 ohm, jika disetting pada tengah maka dia akan
bernilai 5k atau 5000 ohm, itulah perbedaannya. Berikut adalah lambang dari variabel
resistor pada gambar 1.4 dan gambar bentuk fisik variabel resistor pada gambar 1.5.

Gambar 1.4 Simbol Variabel Resistor Gambar 1.5 Bentuk Variabel Resistor / Potensiometer

C. Thermistor dan Fotoresistor / LDR


Untuk jenis-jenis dari resistor yang lain yaitu Thermistor dan Fotoresistor. untuk
Thermistor merupakan jenis resistor yang sensistif terhadap panas, biasanya setiap kenaikan
temperatur akan menunjukan nilai resistansinya. Untuk Fotoresistor atau biasa disebut LDR
ini dibuat dari material yang sensitif terhadap cahaya, seperti Cadmium Sulfida. Peningkatan
intensitas cahaya yang diterima dapat menurunkan resistansi resistor. Berikut adalah lambang
dan bentuk dari kedua jenis resistor tersebut.

Gambar 1.5 Simbol Thermistor Gambar 1.6 Bentuk Thermistor-NTC

3
Gambar 1.7 Simbot Fotoresistor / LDR Gambar 1.8 Bentuk Fotoresistor / LDR

1.1.1.4 Cara menghitung Nilai Resistansi


Untuk menghitung nilai resistansi dari suatu resistor diperlukan sustu teknik
khusus untuk menghitungnya, yaitu dengan cara melihat warna gelang dan posisi warna
gelang tersebut berada, berikut adalah gambaran untuk menghitungnya.

1 2 3 4

Cara menghitungnya yaitu misalkan warna 1 adalah orange, warna 2 adalah


orange, warna 3 adalah coklat, dan warna ke 4 adalah warna emas maka dapat dihitung
dengan cara merumuskan seperti berikut :

Orange = 3 Orange orange coklat Emas


Orange = 3 3 - 3 x 101 5% 330 ohm
Coklat = 1 = 330 ohm toleransi 5%
Emas = 5%

Jadi untuk warna gelang pertama dan gelang kedua yaitu untuk memberikan nilai
awal yang mana keduanya tidak dikali atau ditambahkan namun digabung, sehingga nampak
pada contoh 33 yang terdiri dari dua gelang orange yang berjumlah dua buah, namun yang
dikalikan yaitu pada posisi ketiga yang mana posisi ini yang bermain adalah nilai pangkatnya,
pada contoh nilai pangkat warna coklat, yang mengartikan nilai pangkat adalah 1, untuk
posisi ke 4 adalah untuk nilai toleransi, yang mana hanya ada dua jenis nilai toleransi yaitu
warna emas dan warna perak untuk jenis resistor yang bukan 1%, untuk warna emas
memberikan nilai toleransi 5% dan warna perak memberikan nilai toleransi 10%. Untuk
pedoman didalam mengetahui nilai dari tiap-tiap warna dapat diperhatikan pada tabel berikut
ini.

4
Tabel 1.1 Tabel Nilai Warna Gelang Resistor
Warna Posisi 1 Posisi 2 Posisi 3 Toleransi
Hitam 0 0 0
Coklat 1 1 10 1%
Merah 2 2 100 2%
Jingga 3 3 1000
Kuning 4 4 10000
Hijau 5 5 100000
Biru 6 6 1000000
Ungu 7 7 10000000
Abu-Abu 8 8 100000000
Putih 9 9 -
Perak 0,01 10%
Emas 0,1 5%

1.1.2 Kapasitor
Kapasitor memiliki dua buah simbol dan dua buah karakteristik yaitu
karakteristik untuk non-polar dan polar, perbedaan dari keduanya hanyalah pada bagian kaki
kapasitor, untuk yang non-polar tidak terdapat kutub negative dan positive namun pada kutub
kapasitor yang non-polar terdapat kutub negative dan positive-nya, sehingga perlu
diperhatikan pada saat pemasangan kapasitor polar, jika terbalik maka kapasitor polar
tersebut tidak akan berfungsi optimal. Berikut adalah simbol untuk kapasotor polar dan non-
polar.

Gambar 1.9 Simbol kapasitor Non-Polar Gambar 1.10 Simbol Kapasitor Polar

Gambar 1.11 Simbol Variabel Kapasitor

5
1.1.2.1 Pengertian
Kapasitor adalah dua konduktor yang tidak saling bersentuhan dan dipisahkan
oleh suatu insulator (dielektrik). Bahan dari dielektrik dapat berupa kertas, kaca, plastik film,
keramik, mika, dan yang lainnya. Ketika kapasitor dihubungkan pada suatu sumber tegangan
seperti batterai, maka arus akan mengalir pada suatu plat kapasitor sehingga akan terjadi
perpindahan muatan dari plat kapasitor yang lebih positif ke plat lainnya, ketika muatan (Q)
telah ditransfer, antar plat kapasitor akan terbentuk beda tegangan (V), jika kapasitor tersebut
adalah kapasitor fixed, artinya memiliki kapasitansi C tetap, akan diperoleh hubungan linear
kapasitansi sebagai perbandingan dari Q / V. hubungan C, Q dan V dapat ditulis.

Q = C x V

Q = Muatan (coulomb)
V = Tegangan (Volt)
C = Kapasitansi (Farad)

Kemampuan kapasitor untuk menyimpan energi dikenal sebagai kapasitansi.


Kapasitor 1 Farad yang terhubung pada sumber tegangan 1 V dapat menyimpan 6,28 X 1016
elektron, namun biasanya kapasitor kapasitor memiliki kapasitansi yang jauh lebih rendah
dari itu, biasanya dalam orde piko farad (10-12) hingga mikro farad (10-6).
1 Farad = 1 F
1 MikroFarad = 1 x 10 -6 = 0,000001 F
1 PikoFarad = 1 x 10 -12 = 0,000000000001 F

1.1.2.2 Fungsi
Fungsi dari kapasitor baik itu polar maupun non polar adalah seperti yang
disebutkan dibawah ini.
a. Kapasitor sebagai penggeser fasa.
b. Kapasitor sebagai pembangkit frekuensi pada rangkaian oscilator.
c. Kapasitor digunakan juga untuk mencegah percikan bunga api pada sebuah saklar.
d. Kapasitor sebagai kopling, dilihat dari sifat dasar kapasitor yaitu dapat dilalui arus ac dan
tidak dapat dilalui arus dc dapat dimanfaatkan untuk memisahkan 2 buah rangkaian yang
saling tidak berhubungan secara dc tetapi masih berhubungan secara ac(signal), artinya
sebuah kapasitor berfungsi sebagai kopling atau penghubng antara 2 rangkaian yang
berbeda.
6
e. Kapasitor berfungsi sebagai filter pada sebuah rangkaian power supply, yang saya maksud
disini adalah kapasitor sebagai ripple filter, disini sifat dasar kapasitor yaitu dapat
menyimpan muatan listrik yang berfungsi untuk memotong tegangan ripple.

1.1.2.3 Jenis-jenis Kapasitor


Kapasitor sejatinya memiliki dua buah jenis, yaitu kapasitor fixed dan kapasitor
variabel, untuk kapasitor fixed yaitu kapasitor yang tetap atau konstant dan tidak dapat
berubah seperti halnya 100pF yang tertera pada kapasitor, untuk yang kapasitor variabel yaitu
kapasitor yang dapat dirubah kapasitansinya tergantung setting-annya.
a. Kapasitor Fixed
kapasitor fixed terbagi menjadi tiga jenis yang biasa umum digunakan, yaitu
kapasitor milar, kapasitor keramik dan elco. Untuk milar dan keramik termasuk kapasitor
non-polar, dan kapasitor bentuk elco termasuk ke dalam kapasitor non-polar. Berikut adalah
gambar dari ketiganya.

g
Gambar 1.12 Kapasitor Milar Gambar 1.13 Kapasitor Keramik Gambar 1.14 Kapasitor elco

b. Kapasitor Variabel

Seperti yang telah dijelaskan sebelumnya, kapasitor variabel memiliki kapasitansi


yang dapat dirubah sesuai dengan keadaan yang diinginkan karena terdapat range yang ada
pada produk tersebut, untuk menggunakannya hanya memutar pada bagian atas hingga batas
kondisi yang kita inginkan. Untuk gambarnya seperti berikut ini.

Gambar 1.15 Kapasitor Variabel

7
1.1.3 Transistor

Transistor merupakan suatu komponen dengan tiga kaki. Transistor muncul


sebagai vaccum tube. Dengan komponen ini arus atau tegangan kecil yang diberikan pada
satu kaki dapat mengatur arus yang lebih besar melalui dua kakinya. Transistor memiliki
berbagai macam simbol, berikut adalah macam-macam simbol transistor.

Gambar 1.16 Simbol Kapasitor BJT Gambar 1.17 Simbol Kapasitor JFET

1.1.3.1 Pengertian
Transistor adalah alat semikonduktor yang dipakai sebagai penguat, sebagai
sirkuit pemutus dan penyambung (switching), stabilisasi tegangan, modulasi sinyal atau
sebagai fungsi lainnya. Transistor dapat berfungsi semacam kran listrik, dimana berdasarkan
arus inputnya (BJT) atau tegangan inputnya (FET), memungkinkan pengaliran listrik yang
sangat akurat dari sirkuit sumber listriknya.
Pada umumnya, transistor memiliki 3 terminal, yaitu Basis (B), Emitor (E) dan
Kolektor (C). Tegangan yang di satu terminalnya misalnya Emitor dapat dipakai untuk
mengatur arus dan tegangan yang lebih besar daripada arus input Basis, yaitu pada keluaran
tegangan dan arus output Kolektor.
Transistor merupakan komponen yang sangat penting dalam dunia elektronik
modern. Dalam rangkaian analog, transistor digunakan dalam amplifier (penguat). Rangkaian
analog melingkupi pengeras suara, sumber listrik stabil (stabilisator) dan penguat sinyal
radio. Dalam rangkaian-rangkaian digital, transistor digunakan sebagai saklar berkecepatan
tinggi. Beberapa transistor juga dapat dirangkai sedemikian rupa sehingga berfungsi sebagai
logic gate, memori dan fungsi rangkaian-rangkaian lainnya. Transistor memiliki berbagai
macam bentuk, sehingga akan bingung jika tidak mengetahuinya, dan kakinya pun berbagai
macam ada yang berbentuk kaki biasa (3 kaki) dan ada pula yang hanya ada 2 kaki, kaki yang
1 nya pada bagian body-nya. Berikut ini adalah gambar bentuk fisik dari transistor.

8
Gambar 1.18 Bentuk Fisik Transistor

1.1.3.2 Fungsi

Fungsi dari transistor sangat banyak sekali tergantung pada seri transistornya,
setiap seri transistor memiliki fungsi yang berbeda-beda, sehingga harus benar-benar
mengetahui cara kerja dari transistor yang akan digunakan terlebih dahulu, sebelum
menggunakannya. Berikut adalah beberapa fungsi dari transistor.

1. Transistor Sebagai Saklar


Pada gambar terlihat
sebuah rangkaian saklar elektronik
dengan menggunakan transistor
NPN dan transistor PNP. Tampak
TR3 (NPN) dan TR4 (PNP)
dipakai menghidupkan dan
mematikan LED.
TR3 dipakai untuk memutus dan
menyambung hubungan antara
katoda LED dengan ground. Jadi
jika transistor OFF maka led akan mati dan jika transistor ON maka led akan hidup. Karena
kaki emitor dihubungkan ke ground maka untuk menghidupkan transistor, posisi saklar SW1
harus ON jadi basis transistor TR3 mendapat bias dari tegangan positif dan akibatnya
transistor menjadi jenuh (ON) lalu kaki kolektor dan kaki emitor tersambung. Untuk
mematikan LED maka posisi SW1 harus OFF.
TR4 dipakai untuk memutus dan menyambung hubungan antara anoda LED dengan
tegangan positif. Jadi jika transistor OFF maka led akan mati dan jika transistor ON maka led
akan hidup. Karena kaki emitor dihubungkan ke tegangan positif, maka untuk menghidupkan
transistor, posisi saklar SW2 harus ON jadi basis transistor TR4 mendapat bias dari tegangan

9
negatif dan akibatnya transistor menjadi jenuh (ON) lalu kaki emitor dan kaki kolektor
tersambung. Untuk mematikan LED maka posisi SW1 harus OFF.

2. Transistor Sebagai Penguat Arus


Fungsi lain dari transistor adalah
sebagai penguat arus. Karena fungsi ini maka
transistor bisa dipakai untuk rangkaian power
supply dengan tegangan yang di set. Untuk
keperluan ini transistor harus dibias tegangan
yang konstan pada basisnya, supaya pada emitor
keluar tegangan yang tetap. Biasanya untuk
mengatur tegangan basis supaya tetap digunakan
sebuah dioda zener.
Pada gambar tampak dua buah
regulator dengan polaritas tegangan output yang
berbeda. Transistor TR5 (NPN) dipakai untuk
regulator tegangan positif dan transistor TR6 (PNP) digunakan untuk regulator tegangan
negatif. Tegangan basis pada masing masing transistor dijaga agar nilainya tetap oleh dioda
zener D3 dan D4. Dengan demikian tegangan yang keluar pada emitor mempunyai arus
sebesar perkalian antara arus basis dan HFE transistor.

3. Transistor sebagai penguat Sinyal AC


Selain sebagai penguat arus, transistor
juga bisa digunakan sebagai penguat tegangan
pada sinyal AC. Untuk pemakaian transistor
sebagai penguat sinyal digunakan beberapa
macam teknik pembiasan basis transistor. Dalam
bekerja sebagai penguat sinyal AC, transistor
dikelompokkan menjadi beberapa jenis penguat,
yaitu: penguat kelas A, penguat kelas B, penguat
kelas AB, dan kelas C. Pada gambar tampak
bahwa R15 dan R16 bekerjasama dalam mengatur
tegangan bias pada basis transistor. Konfigurasi

10
ini termasuk jenis penguat kelas A. Sinyal input masuk ke penguat melalui kapasitor C8 ke
basis transistor. Dan sinyal output diambil pada kaki kolektor dengan melewati kapasitor C7.

1.1.1.3.3 Jenis-Jenis transistor


Secara umum, transistor dapat dibeda-bedakan berdasarkan banyak kategori:
 Materi semikonduktor: Germanium, Silikon, Gallium Arsenide
 Kemasan fisik: Through Hole Metal, Through Hole Plastic, Surface Mount, IC, dan
lain-lain
 Tipe: UJT, BJT, JFET, IGFET (MOSFET), IGBT, HBT, MISFET, VMOSFET,
MESFET, HEMT, SCR serta pengembangan dari transistor yaitu IC (Integrated
Circuit) dan lain-lain.
 Polaritas: NPN atau N-channel, PNP atau P-channel
 Maximum kapasitas daya: Low Power, Medium Power, High Power
 Maximum frekuensi kerja: Low, Medium, atau High Frequency, RF transistor,
Microwave, dan lain-lain
 Aplikasi: Amplifier, Saklar, General Purpose, Audio, Tegangan Tinggi, dan lain-lain

A. Transistor Bertipe BJT


BJT (Bipolar Junction Transistor) adalah salah satu dari dua jenis transistor. Cara
kerja BJT dapat dibayangkan sebagai dua diode yang terminal positif atau negatifnya
berdempet, sehingga ada tiga terminal. Ketiga terminal tersebut adalah emiter (E), kolektor
(C), dan basis (B).
Perubahan arus listrik dalam jumlah kecil pada terminal basis dapat menghasilkan
perubahan arus listrik dalam jumlah besar pada terminal kolektor. Prinsip inilah yang
mendasari penggunaan transistor sebagai penguat elektronik. Rasio antara arus pada koletor
dengan arus pada basis biasanya dilambangkan dengan β atau . β biasanya berkisar
sekitar 100 untuk transistor-transisor BJT.

B. Transistor Bertipe FET


FET dibagi menjadi dua keluarga: Junction FET (JFET) dan Insulated Gate FET
(IGFET) atau juga dikenal sebagai Metal Oxide Silicon (atau Semiconductor) FET
(MOSFET). Berbeda dengan IGFET, terminal gate dalam JFET membentuk sebuah diode
dengan kanal (materi semikonduktor antara Source dan Drain). Secara fungsinya, ini
membuat N-channel JFET menjadi sebuah versi solid-state dari tabung vakum, yang juga
membentuk sebuah diode antara grid dan katode. Dan juga, keduanya (JFET dan tabung

11
vakum) bekerja di "depletion mode", keduanya memiliki impedansi input tinggi, dan
keduanya menghantarkan arus listrik dibawah kontrol tegangan input. FET lebih jauh lagi
dibagi menjadi tipe enhancement mode dan depletion mode. Mode menandakan polaritas dari
tegangan gate dibandingkan dengan source saat FET menghantarkan listrik. Jika kita ambil
N-channel FET sebagai contoh: dalam depletion mode, gate adalah negatif dibandingkan
dengan source, sedangkan dalam enhancement mode, gate adalah positif. Untuk kedua mode,
jika tegangan gate dibuat lebih positif, aliran arus di antara source dan drain akan meningkat.
Untuk P-channel FET, polaritas-polaritas semua dibalik. Sebagian besar IGFET adalah tipe
enhancement mode, dan hampir semua JFET adalah tipe depletion mode.

1.2 Perkenalan Dengan Mikrokontroler


1.2.1 Pengertian
Sebelumnya pasti ada sebuah pertanyaan mengenai apa itu mikrokontroler? Apa
itu ATMega?, pada bagian ini akan dijelaskan mengenai mikrokontroler yang mana ini
adalah komponen yang sangat penting didalam pembuatan suatu alat, sehingga harus benar-
benar dipelajari dan dikuasai terlebih dahulu mengenai bab mikrokontroler berikut.
Mikrokontroler adalah suatu alat elektronika digital yang mempunyai masukan
dan keluaran serta kendali dengan program yang bisa ditulis dan dihapus dengan cara khusus,
cara kerja mikrokontroler yaitu membaca dan menulis data, pengertian membaca yaitu
mikrokontroler membaca program yang dimasukkan kedalamnya, jadi untuk menjalankan
mikrokontroler haruslah diisi terlebih dahulu program kedalamnya, setelah itu adalah
pengertian menulis, menulis diartikan mikrokontroler melakukan apa yang ada didalam
program yang dimasukkan, jadi program yang dibuat akan dilakukan oleh mikrokontroler
seperti apa yang pembuat program inginkan.

1.2.2 Jenis-Jenis Mikrokontroler


Teknologi mikroproesor telah mengalami perkembangan. Hal ini sama terjadi
dengan teknologi mikrokontroler. Jika pada mikroprosesor terdahulu menggunakan teknologi
CISC seperti prosesor Intel 386 / 486, maka pada mikrokontroler produksi ATMEL adalah
MCS ( AT89C51, AT89S51 dan AT89S52 ). Setelah mengalami perkembangan, teknologi
mikroprosesor dan mikrokonroler mengalami peningkatan yang terjadi pada kisaran tahun
1996 s/d 1998 ATMEL mengeluarkan teknologi mikrokontroler terbaru berjenis AVR (Alf
and Vegard’s Risc processor) yang menggunakan teknologi RISC (Reduce Instruction Set
Computer) dengan keunggulan yang lebih banyak dibanding pendahulunya yaitu MCS.
12
Mikrokontroler jenis MCS memiliki kecepatan frakuensi kerja 1/12 kali frekuensi
osilator yang digunakan, sedangkan pada kecepatan frekuensi kerja AVR sama dengan
kecepatan frekuensi kerja osilator yang digunakan. Jadi apabila menggunakan frekuensi
osilator yang sama, maka AVR mempunyai kecepatan kerja 12 kali lebih cepat dibanding
MCS. Berikut adalah bagan pembagian jenis dari mikrokontroler buatan ATMEL.

ATMEL

MCS AVR

AT89CXX AT89SXX ATtiny ATMega AT86RFXX AT90SXX

Gambar 1.19 Bagan Pembagian JenisMikrokontroler ATMEL

1.2.3 Tentang Mikrokontroler ATMega


Seperti yang telah dijelaskan diatas yaitu mengenai jenis-jenis mikrokontroler,
ATMega berada pada posisi pembagian dari jenis AVR, bukan pada MCS, yang mana AVR
dan MCS sebenarnya fungsinya sama dan bentuknya pun sama, namun perbedaan hanya pada
cara penggunaan dan fitur-fitur yang ada pada mikrokonroler tersebut, seperti halnya MCS
tidak memiliki fitur untuk ADC (Analog to Digital Converter) maka harus menggunakan IC
tambahan untuk mendukung fitur ADC, namun jika menggunakan AVR seperti halnya
ATMega yang mana telah memiliki fitur ADC, sehingga tidak perlu menggunakan IC
tambahan untuk melakukannya.
Mikrokontroler ATMega terbagi lagi menjadi beberapa jenis, yaitu ATMega8,
ATMega16, ATMega32, ATMega128, ATMega8535 dll. Untuk pada pembuatan alat dan
robot pada buku ini digunakan mikrokontroler ATMega32, ATMega16, ATMega8 dan
ATMega8535, sehingga pembatasan penjelasan hanyalah pada keempat tipe ATMega
tersebut. Berikut adalah gambar dari ATMega16 dan ATMega8

13
Gambar 1.21 Bentuk ATMega8

Gambar 1.20 Bentuk ATMega16

A. ATMega 8
ATMega8 memiliki bentuk yang lebih kecil dari ATMega16 atau ATMega8535
yang mana fungsinya sama, yaitu untuk mengeksekusi program yang telah didownload
kedalamnya, sehingga dapat seperti apa yang diinginkan oleh pembuat program tersebut.
Berikut adalah konfigurasi pin dari ATMega8.

Gambar 1.22 Konfigurasi Kaki ATMega8

A.1 Fitur-Fitu ATMega8

Advanced RISC Architecture :

 130 Powerful Instructions – Most Single-clock Execution


 32 x 8 General Purpose Working Registers
 Fully Static Operation

14
 Up to 16 MIPS Throughput at 16MHz
 On-chip 2-cycle Multiplier
 High-Endurance Non-Volatile Memory segments
o 8K Bytes In-System Self-programmable Flash Program Memory
o 512 Bytes EEPROM
o 1K Bytes of Internal SRAM
o Write/Erase Cycles: 10,000 Flash / 100,000 EEPROM
o Data Retention: 20 years at 85`C / 100 years at 25`C
o Opitonal Boot Code Section with Independent Lock Bits
o In-System Programming by On-chip Boot Program
o True Read-While-Write Operation
o Programming Lock for Software Security
o Peripheral features
 Two 8-bit Timers/Counters with Separate Prescaler One 16-bit
Timer/Counter with Separate Prescaler, Compare Mode, and Capture
Mode
 Real Time Counter with Separate Oscillator
 Three PWM Channels
 6-channel ADC with 10-bit Accuracy
 Byte-oriented Two-wire Serial Interface
 Programmable Serial USART
 Master/Slave SPI Serial Interface
 Programmable Watchdog Timer with Separate On-Chip Oscillator
 On-Chip Analog Comparator
 Special Microcontroller features
 Power-On Reset and Programmable Brown-out Detection
 Internal Calibrated RC Oscillator
 External and Internal Interrupt Sources
 Five Sleep Modes: Idle, ADC Noise Reduction, Power-save,
Power-down, and Standby
 I/O and Packages
 23 Programmable I/O Lines
 28-lead PDIP, 32-lead TQFP, and 32-pad QFN/MLF
 Operating Voltages
 2.7 – 5.5V (ATmega8L)
 4.5 – 5.5V (ATmega8)
 Speed Grades
 0 – 8MHz (ATmega8L)
 0 – 16MHz (ATmega8)
 Power Consumption at 4MHz, 3V,
25`C
 Active: 3.6 mA
 Idle Mode: 1.0 mA
 Power-Down Mode: 0.5 uA

15
B. ATMega16 / ATMega32 / ATMega8535

ATMega16 dan ATMega8535 sejatinya sama yaitu dari sisi bentuk dan
konfigurasi pin kakinya. Perbedaan keduanya yaitu pada kapasitas memori flash, untuk
ATMega8535 sebesar 8 KB, dan untuk ATMega16 sebesar 16 KB. Berikut adalah
konfigurasi dari kaki ATMega8535 / ATMega16.

Gambar 1.23 Konfigurasi kaki ATMega8535 / ATMega16

B.1 Fitur-Fitur ATMega8535 / ATMega16


- 32 Saluran I/O yang terdiri dari 4 port (Port A, Port B, Port C, dan Port D) yang terdiri
masing-masing 8 bit
- ADC 10 bit (5 pin di PortA.0 s/d Port A.7).
- 2 buah Timer/Counter (8bit)
- 1 Buah Timer/Counter (16bit)
- 4 channel PWM
- 6 Sleep Modes : Idle, ADC Noise Reduction, Power-save, Power-down, Stanby and
Extended Stanby.
- Komparator analog
- Watchdog timer dengan osilator internal 1MHZ
- Memori 8 KB Flash, untuk ATMega16 memori 16 KB Flash
- Memori 512 byte SRAM

16
- Memori 512 byte EEPROM
- Kecepatan maksimal 16 MHZ
- Tegangan Operasi 4,5 VDC s/d 5,5 VDC
-32 jalur I/O yang dapat dirogram
- Interupsi eksternal dan Internal
- Komunikasi serial menggunakan port USART dengan kecepatan maksimal 2,5 Mbps

C. Fungsi Pin / Kaki Mikrokontroler


Berikut adalah penjelasan secara singkat fungsi dari masing-masing pin / kaki
pada Mikrokontroler AVR ATMega8 / ATMega16
1. Vcc
Masukan tegangan catu daya
2. GND
Ground/pentanahan
3. Port A (PA7..PA0) /* untuk ATMega16 dan ATMega8535 */
Port A berfungsi sebagai masukan analog ke ADC internal pada mikrokontroler
ATmega16, selain itu juga berfungsi sebagai port I/O dwi-arah 8-bit, jika ADC-nya
tidak digunakan. Masing-masing pin menyediakan resistor pull-up internal yang bisa
diaktifkan untuk masing-masing bit.
4. Port B (PB7..PB0)
Port B berfungsi sebagai sebagai port I/O dwi-arah 8-bit. Masing-masing pin
menyediakan resistor pull-up internal yang bisa diaktifkan untuk masing-masing bit.
5. Port C (PC7..PC0)
Port C berfungsi sebagai sebagai port I/O dwi-arah 8-bit. Masing-masing pin
menyediakan resistor pull-up internal yang bisa diaktifkan untuk masing-masing bit.
6. Port D (PD7..PD0)
Port D berfungsi sebagai sebagai port I/O dwi-arah 8bit. Masing-masing pin
menyediakan resistor pull-up internal yang bisadiaktifkan untuk masing-masing bit.
7. RESET
Masukan Reset. Level rendah pada pin ini selama lebih dari waktu minimum yang
ditentukan akan menyebabkan reset, walaupun clock tidak dijalankan.
8. XTAL1
Masukan ke penguat osilator terbalik (inverting) dan masukan kerangkaian clock
internal.
17
9. XTAL2
Luaran dari penguat osilator terbalik
10. AVCC
Merupakan masukan tegangan catu daya untuk Port A sebagai ADC, biasanya
dihubungkan ke Vcc, walaupun ADC-nya tidak digunakan. Jika ADC digunakan
sebaiknya dihubungkan ke Vcc melalui tapis lolos rendah (low-pass filter).
11. AREF
Merupakan tegangan referensi untuk ADC Block Diagram ATmega16 / ATMega8.

1.3 Pengenalan Software Bascom AVR


Pemrograman menggunakan bahasa BASCOM-AVR adalah salah satu dari
sekian banyak bahasa basic untuk pemrograman mikrokontroler, misalnya bahasa Assembly,
Bahasa C, dan lain-lain, disini dalam membuat robot dan membuat alat elektronika akan
menggunakan bahasa BASIC yaitu menggunakan software BASCOM-AVR sehingga bagi
yang masih pemula dalam pemrograman dapat memahami dengan mudah aturan main dari
bahasa ini, karena bahasa BASIC merupakan bahasa tingkat tinggi yang sejajar dengan
bahasa C, berbeda dengan bahasa Assembly yang merupakan bahasa tingkat rendah dan
sukar untuk dipahami secara cepat dalam waktu singkat. Berikut adalah gambar serta
penjelasan dari layar kerja software BASCOM-AVR.

3 1 4 Gambar 2.4 Tampilan Layar Kerja Bascom-AVR 2


18
Penjelasan:
- No.1 Adalah Layar jerja dari BASCOM-AVR yang biasanya diisikan kode program
- No.2 Adalah tampilan mikrokontroler yang digunakan melalui definisi program
- No.3 Adalah Formating Tools yang biasa digunakan untuk mengedit kode program, open
project, new file, copy-paste dan melakukan compile program setelah program tersebut jadi
- No.4 Adalah Error Notification yang digunakan untuk memberitahukan bahwa program
yang dibuat terdapat kesalahan pada suatu baris dan memberikan penjelasan tentang
masalah errornya.

Untuk cara penggunaan software BASCOM-AVR sangatlah mudah, hanya


memasukkan kode ke bagian layar kerja dengan cara mengetik kode-kode satu per satu,
setelah program tersebut telah selesai diketik maka dilakukan pengecheck-an terebih dahulu
sekalian dilakukan compiling, fungsi dari compiling yaitu untuk membuat program
berekstensi (.hex ) yang mana ekstensi ini adalah yang akan siap dimasukkan ke
mikrokontroler melelui downloader. Berikut adalah cara untuk melakukan compile setelah
program telah selesai dibuat

Gambar 2.5 Tampilan Untuk melakukan Compile dan Check program

Penjelasan:
- No.1 adalah Sub perintah yang digunakan untuk melakukan compile program sehingga
sebelum dicompile terlebih dahulu disimpan file.bas disuatu folder, kemudian dicompile
maka akan terdapat file.hex didalam folder tersebut
- No.2 adalah sub perintah yang digunakan untuk melakukan pengecekan program, jika
terdapat notify pada bagian layar notification, berarti program yang dibuat masih terdapat
kesalahan, jika tidak ada maka program siap untuk dilakukan compiling.

19
1.4 Karakteristik Bahasa BASCOM-AVR
Bahasa basic memiliki beberapa karakteristik yang harus diperhatikan sebelum
membuat sebuah program, yaitu mengenai tipe data, variabel, konstanta, alias, pengolahan
bilangan logika yang semuanya tercakup dalam operasional. Untuk bahasa basic sendiri
memiliki berbagai macam perintah yang mana dapat dianalogikan secara mudah dan tidak
butuh watu lama untuk mempelajarinya, sama seperti halnya bahasa C, bahasa basic juga
terdapat pendeklarasian data, prosesing data dan input/output data. Berikut adalah penjelasan
secara lengkap tentang bahasa yang digunakan BASCOM-AVR.

1.4.1 Operasional
1.4.1.1 Tipe Data
Tipe data adalah jangkauan dari suatu variabel atau konstanta. Tipe data tersebut
yaitu seperti pada tabel berikut
Tabel 1.2 Tipe Data Pada Bahasa BASCOM-AVR
Tipe data Ukuran [byte] Range
Bit 1/8 -
Byte 1 0-225
Integer 2 -32.768 sampai 32.768
Word 2 0-65535
Long 4 -2147483648 sampai 2147483648
Single 4 -
String - 254 byte -

Contoh penggunaan program :


Dim Gas_ref As Word
Dim Gas As Single
Dim Lpg As String * 5
Dim Vol As String * 5
Dim Tegangan As Single
Dim A As Single
Dim Vo As Single
Dim X As Single
Dim Y As Single
Dim Rs As Single
Dim D As Single
Dim E As Single
Dim Ppm As Single
Dim Ro As Single

20
1.4.1.2 Variabel
Variabel ditulis pada text program untuk menyimpan suatu pemrosesan data,
Variabel dideklarasikan jika akan digunakan dengan mengacu pada aturan variabel berikut.
1. Dimulai dengan huruf
2. Nama variabel tidak boleh lebih dari satu
3. Tidak menggunakan spasi
4. Maksimum 32 karakter
5. Tidak menggunakan karakter khusus yang digunakan oleh BASCOM-AVR

Variabel dideklarasikan dengan cara berikut :


Dim <Nama Variabel> As <TipeData>

Contoh penggunaannya :
Dim Gas_ref As Word
Dim Gas As Single
Dim Lpg As String * 5
Dim Vol As String * 5

1.4.1.3 Konstanta
Konstanta adalah pendeklarasian suatu nama dan memiliki nilai tetap, biasanya
suatu konstanta telah dimasukkan suatu nilai yang digunakan untuk proses eksekusi data,
biasanya untuk sebagai acuan dalam prosesing data, seperti halnya pembagian, perkalian,
pengurangan dan penambahan data berikut adalah cara penulisan konstanta:

Dim <NamaKonstanta>AS Const <NilaiKonstanta>

Contoh penggunaannya :

Dim Gas_ref As Const 100


Dim Gas As Const 5
Dim phi As const 3.14
Dim Vol As Const 15

1.4.1.4 Alias
Alias digunakan untuk mempermudah penulisan program. Sebenarnya tanpa
menggunakan Alias juga bisa, namun supaya dapat dimengerti dan mudah untuk disebutkan

21
saat eksekusi perintah, maka digunakan Alias untuk memudahkan pengingatan perintah.
Berikut adalah cara untuk mendefinisikan Alias.

<Nama_Alias>Alias<Port_output>

Contoh penggunaannya :

Lampu_Merah Alias Portb.0


Lampu_Kuning Alias Portb.1
Lampu_Hijau Alias Portb.2

1.4.1.5 Aritmatik dan Rasional


1. Data Aritmatik
Data Aritmatik digunakan untuk melakukan eksekusi data atau pengolahan data
sebelum data tersebut ditampilkan, biasanya aritmatik ini difungsikan sebagai pengatur dan
pengolah data pada suatu main program yang diposisikan untuk input dan output data.
Berikut adalah data aritmatik.
Tabel 1.3 Data Aritmatik
Operasi Keterangan
+ Penjumlahan
- Pengurangan
/ Pembagian
* Perkalian
% Hasil sisa pembagian
^ Perpangkatan

Contoh Penggunaannya:
X = 5.15 - 7
Y = X / 5
Z = Y * X

A = X / Z
B = A + 10
C = B ^ A

2. Data Rasional
Data rasional merupakan data yang digunakan untuk proses logika, jadi fungsi
utamanya adalah untuk memberikan suatu keadaan atau kondisi pada suatu program dimana
keadaan tersebut yang digunakan sebagai patokan untuk mengeksekusi data. Berikut adalah
tabel penjelasan data rasional.

22
Tabel 1.4 Simbol Data Rasional
Operasi Contoh Keterangan
= X=Y Sama dengan
<> X< >Y Tidak sama dengan
> X>Y Lebih besar dari
< X<Y Lebih kecil dari
>= X>=Y Lebih besar atau sama dengan
<= X<=Y Lebih kecil atau sama dengan

Contoh penggunaannya :

If X >= 4.45 Then


Portd = &B11110011
Portb.0 = 0
End If

1.4.1.6 Pengolahan bilangan logika


Pengolahan bilangan logika pada BASCOM-AVR sama halnya dengan
pengolahan bilangan logika pada bahasa C, yang mana hanya menggunakan analogi dan
logika untuk didapatkan suatu kondisi tertentu, kondisi tersebut akan dijadikan patokan untuk
mengeksekusi suatu data. Berkut adalah macam-macam pengolahan bilangan logika.
Tabel 1.5 Pengolahan bilangan logika
Operasi Contoh Keterangan
AND &B10 AND &B01 = &B10 Operasi AND
OR &B1000 OR &B0111 = &B1111 Operasi OR
NOT NOT &B111 = &B000 Operasi NOT

Cara penggunaanya :

If X > 4.45 AND X < 5 Then


Portd = &B11110011
Portb.0 = 0
End If

23
1.4.2 Macam-Macam Perintah
Pada program BASCOM-AVR terdapat perintah-perintah yang digunakan untuk
melakukan eksekusi data, seperti halnya bahasa tingkat tinggi lainnya yang memerlukan kode
perintah agar program dapat berjalan secara baik dan benar, dan sesuai harapat pembuatnya.
Berikut beberapa macam perintah yang biasa digunakan.
A. IF - THEN
Perintah IF-Then digunakan untuk melakukan eksekusi data sesuai dengan
keadaan, jadi jika suatu keadaan bernilai benar atau TRUE, maka perintah yang dibawah /
disampingnya THEN akan dieksekusi, namun jika tidak, perintah tidak akan dieksekusi.
Berikut adalah keterangannya.

IF<keadaan>Then<Perintah>
End IF

IF<keadaan> Then
<perintah1>
<perintah2>
<perintah3>
End If

Contoh penggunaannya :

If X >= 4.45 Then


Portd = &B11110011
Portb.0 = 0
End If

A. IF – THEN – ELSE
Perintah IF-THEN-ELSE sejatinya sama seperti perti perinta IF-THEN yaitu
untuk memberikan suatu kondisi tertentu sebagai patokan untuk mengeksekusi data, jika
bernikai benar maka perintah THEN dieksekusi namun jika salah maka yang akan dijalankan
adalah perintah pada bagian ELSE. Berikut keterangannya.

IF<keadaan>Then
<Perintah>
Else
<Perintah>
End IF

24
Contoh penggunaannya:

If X >= 4.45 Then


Portd = &B11110011
Else
Portb.0 = 0
End If

C. SELECT-CASE
Perintah SELECT-CASE digunakan untuk pengujian keadaan yang banyak,
atau lebih dari satu keadaan, sehingga pada penulisan bisa menjadi lebih sederhana dan
mudah dipahami. Berikut penjelasannya.
Select case <nama_Variabel>
Case1 : <perintah1>
Case2 : <perintah2>
Case3 : <perintah3>
End select

Contoh penggunaanya :

Select case Lampu


Case1 : Lampu_menyala_1
Case2 : Lampu_menyala_2
Case3 : Lampu_menyala_3
End select

D. DO-LOOP
Perintah DO-LOOP merupakan perintah untuk perulangan yang digunakan untuk
melakukan perulangan program selama kondisi yang diinginkan masih bernilai bernar, dan
akan berhenti jika kondisi salah. Berikut penjelasannya.

Do
<pernyataan>
<pernyataan>
<pernyataan>
<pernyataan
Loop

25
Contoh penggunaanya:
do
If X >= 4.45 Then
Portd = &B11110011
Else
Portb.0 = 0
End If

loop

E. FOR-NEXT
Perintah FOR-NEXT merupakan perintah untuk perulangan yang digunakan
untuk melakukan perulangan program sesuai dengan jumlah dan tingkat perulangannya, jadi
jika diinginkan perulangan sebanyak 10 kali, maka akan dilakukan perulangan sebanyak
10kali dan akan berhenti ketika telah mencapai perulangan yang ke 10 selesai. Berikut
penjelasannya.
For <Variabel = nilai_awal> To <nilai_akhir> <selisih_pertambahan>
<pernyataan>
Next

Contoh penggunaannya:
For X = 0 To 9 1
Led_menyala_1
Next

F. WHILE-WEND
Perintah WHILE-WEND merupakan perintah untuk perulangan yang akan
melakukan perulangan apabila keadaan yang diminta telah terpenuhi. Berikut penjelasannya.

While <keadaan>
<perintah>
Wend

While Suhu > 30

Contoh penggunaannya: PORTB.0 = &B11110000


Wend

26
G. GOSUB

Perintah GOSUB merupakan perintah untuk melakukan lompatan yang akan


melakukan lompatan ke label yang ditunjuk dan kembali ke tempat semulasetelah melakukan
perintah pembacaan program dengan menambahkan “Return”. Berikut penjelasannya.

Gosub<Nama_label>
<pernyataan>
<nama_label>
<pernyataan>
Return

Contoh penggunaannya:
Do
IF Suhu > 30 Then
Kipas = 1
ElseIf Suhu <30 Then
Kipas = 0
End If
Gosub Lampu
Loop
Lampu :
Lampu1=0
Lampu2=1

Return

H. GOTO
Perintah GOTO merupakan perintah untuk lompatan yang akan melakukan
lompatan ke label yang ditunjuk tanpa kembali lagi ke tempat semula setelah melakukan
perintah pembacaan program sehingga tidak menggunakan “return”. Berikut penjeasannya

Goto<Nama_label>
<pernyataan>
<nama_label>
<pernyataan>

27
Contoh Penggunaannya:
Do
IF Suhu > 30 Then
Kipas = 1
ElseIf Suhu <30 Then
Kipas = 0
End If
Goto Lampu
Loop
Lampu :
Lampu1=0
Lampu2=1

I. EXIT
Perintah EXIT merupakan perintah untuk mengkhiri perulangan DO-LOOP,
FOR-NEXT-WHILE-WEND. Berikut penjelasannya.
<pernyataan>
EXIT.......

Contoh Penggunaanya:
Do
IF Suhu > 30 Then
Kipas = 1
ElseIf Suhu <30 Then
Kipas = 0
End If
Goto Lampu
Loop
EXIT Do

While Suhu > 30


PORTB.0 = &B11110000
Wend
EXIT While

For X = 0 To 9 1
Led_menyala_1
Next
EXIT FOR

28
BAB 2
Downloader

2.1 Perkenalan Dengan Downloader


Apa itu Downloader?, disini akan dibahas mengenai lebih dalam tentang
downloader, baik itu dari pengertian, fungsi, dan bagaimana cara membuatnya. Untuk yang
pertama yang harus diperhatikan yaitu kegunaan dari downloader, apa fungsi dari downoader
dan cara kerja dari downloader itu.
Downloader adalah sebuah alat yang digunakan untuk memasukkan program ke
dalam mikrokontroler, baik itu yang berjenis MCS ataupun AVR semuanya butuh
downloader, sehingga posisi downloader sangatlah penting untuk dipahami. Downloader bisa
juga diartikan sebagai jembatan penghubung antara komputer dengan mikrokontroler. Yang
mana file.hex yang telah dibuat dari compile file.bas dari software BASCOM-AVR
dimasukkan ke dalam mikrokontroler.
Downloader yang umum digunakan untuk memasukkan data dari komputer ke
mikrokontroler yaitu USB-ASP, namun ada pula yang tidak memakai USB-ASP yaitu
menggunakan serial paralel port untuk melakukan download programnya.
Di project buku ini semuanya menggunakan downloader USB-ASP, karena USB-
ASP menggunakan port USB, sehingga dapat dilakukan pen-download-an dimanapun dan
apapun komputernya, namun jika menggunakan paralel port hanya terdapat pada PC baik itu
Intel maupun AMD, sehingga untuk download misal dari laptop sangatlah sulit harus
menggunakan konverter usb to paralel terlebih dahulu. Berikut ini adalah gambar dari
downloader USB-ASP dan downloader Paralel PORT.

Gambar 2.1 Downloader USB-ASP Gambar 2.2 Downloader Paralel Port

29
Untuk sistem kerja dari downloader, terutama USB-ASP yaitu dengan cara
memberikan pin MISO, MOSI, SCK, RESET, dan GROUND pada rangkaian downloader,
dipasangkan ke mikrokontroler terutama ATMega yaitu pada pin yang sama MOSI, MISO,
SCK, RESET, GROUND. Sehingga akan nampak seperti bagan gambar berikut ini.

Mikrokonroler MOSI
ATMega32 /
ATMega8 / MISO USB-ASP
ATMega16 /
SCK
ATMega8535
Dsb. RESET

GND

Gambar 2.3 Pemasangan Pin Downloader ke Mikrokontroler

Keterangan :

NAMA FUNGSI
MOSI Jalur data masuk untuk protokol SPI

MISO Jalur data keluar untuk protokol SPI

SCK Jalur clock masuk untuk protokol SPI, frekuensi maksimum 20 MHz.

RESET Pin untuk melakukan reset secara hardware, active low. Pin diberi pulsa
berlogika 0 selama minimal 400 ns untuk melakukan reset.
GND Jalur referensi ground

Untuk pemasangan downloader dengan paralel port sama dengan USB-ASP yaitu
menggunakan MOSI, MISO, SCK, RESET dan GND, namun berbedanya yaitu pada
konektornya yang menggunakan DB25, sehingga dari mikrokontroler langsung didownload
ke komputer melalui kabel paralel. Berikut skemanya jika menggunakan downloader paralel..

MISO,MOSI,SCK,RST,GND Kabel Paralel


Minimum System Downloader Komputer
MCS /AVR Paralel Port Port Paralel

30
Untuk skema menggunakan USB-ASP sama seperti menggunakan downloader
paralel port yang mana menggunakan media kabel sebagai media penghubunganya, namun
perbedaannya jika pada paralel port menggunakan kabel paralel, pada USB-ASP
menggunakan kabel USB male to male sehungga tinggal colok dari usb komputer ke kepala
USB-ASP dan dari USB-ASP dihubungkan ke minimum system berikut skemanya.

MISO,MOSI,SCK,RST,GND Kabel USB Male to Male / kabel printer


Minimum System Downloader Komputer
MCS /AVR USB-ASP Port USB female

2.2 Pembuatan Rangkaian Downloader


Membuat rangkaian downloader tidaklah sulit, karena menggunakan komponen
yang banyak dijual di toko elekronika dan umum digunakan dalam project mikrokontroler,
pada bagian ini akan dijelaskan mengenai cara membuat downloder menggunakan USB-ASP
dan menggunakan port paralel.

2.2.1. Membuat Downloader Paralel Port


Berikut adalah skematic dari rangkaian downloader dengan paralel port, yang
mana menggunakan media penghubung DB25.

Gambar 2.4 Skematik Downloader Port Paralel Ke Minimum System

31
Bahan-bahan :
a. Pin Header tunggal 6 pin
b. Resistor 330 ohm tiga buah
c. Resistor 100 ohm satu buah
d. DB25 Male / Female
e. Kabel Konektor Paralel

Skematik downloader paralel port diatas dihubungkan ke port mosi, miso, sck,
reset, dan ground dari minimum system melalui pin header, jadi memeerlukan kabel konektor
6 pin dari minimum system ke downloader, untuk dari DB25 ke port paralel menggunakan
kabel paralel bisa male to male atau male to female tergantung kebutuhan dan kondisi port di
komputer.
Untuk downloader dengan paralel port harus diperhatikan mengenai program
untuk melakukan downloadnya, biasanya untuk downloader dengan paralel port mengunakan
program “Ponyprog” atau yang sejenisnya dan tidak bisa dengan sembarang software, karena
untuk ponyprog terdapat setting-an untuk melakukan komunikasi dan pen-download-an
secara langsung menggunakan paralel port.

2.2.2. Membuat Downloader USB-ASP


Sebagai saran dari penulis, lebih baik menggunakan downloader USB-ASP,
karena lebih mudah didalam proses aplikasinya, dan enak untuk pen-download-annya,
dikarenakan setiap komputer / laptop terdapat port USB, sehingga lebih mudah didalam
membuat alat dimanapun berada dan kapanpun waktunya, namun jika menggunakan
downloader paralel hanya bisa pada PC yang terdapat port paralel dan itu sangat tidak enak
karena harus ada spesifikasi khusus yang berupa port paralel DB25. Berikut adalah skematik
dari downloader USB ASP dan gambar jadinya.

Gambar 2.5 Downloader USB-ASP

32
Ke Minimum System

Gambar 2.6 Skematik USB ASP

Bahan-Bahan :
a. Resistor 2k2ohm x 1 buah
b. Resistor 68 ohm x 2 buah
c. Resistor 10Kohm x 1 buah
d. Resistor 1Kohm x 2 buah
e. Led 3mm Merah x 1 buah dan hijau x 1 buah
f. Crystal 12Mhz x 1 buah
g. Kapasitor 22pF x 2 buah
h. Kapasitor 100nF x 1 buah
i. Kapasitor Polar 4,7 uF x 1 buah
j. Dioda Zener 3v6 x 2 buah
k. Pinheader tunggal 5 pin dan 2 pin
l. ATMega8 x 1 buah
m. USB konektor female on board x 1 buah
33
Untuk penjelasan dari skematik diatas mengenai port mosi, miso, sck, reset, dan
ground dihubungkan ke port mosi, miso, sck, reset, gnd yang terdapat pada minimum system
baik itu untuk ATMega8, ATMega32, ATMega8535 atau ATmega16. Pada JP3 terdapat port
untuk slow sck, maksud dari port ini yaitu jika port ini dihubungkan antar keduanya
menggunakan header jumper maka akan mengaktifkan SLOW SCK, hasilnya proses
download program akan nampak lambat dan perlu menunggu waktu beberapa detik untuk
selesai, namun jika kedua header ini tidak berhubungan maka SLOW SCK tidak akan aktif,
artinya akan menghasilkan kecepatan yang normal didalam proses pen-download-an. SLOW
SCK ini digunakan pada saat mikrokontroler yang akan dilakukan pendownload-an masih
perawan atau bahasa lainnya masih baru dan belum pernah dilakukan pendownload-an
sebelumnya, jadi jika masih baru mikrokontrolernya harus terlebih dahulu didownload
pertama menggunakan SLOW SCK yang dipasang header jumper, untuk proses
pendownload-an kedua, ketiga dan seterusnya tidak mengaktifkan SLOW SCK tidak
mengapa, karena sistem sudah ready untuk dimasukan perintah. Berikut ilustrasinya.

A header jumper B Pin Header

Penjelasan untuk ilustrasi A yaitu pinheader diberikan header jumper yang


fungsinya untuk menghubungkan kedua header agar SLOW SCK bisa aktif untuk melakukan
pendownload-an pertama kali ke mikrokontroler, untuk ilustrasi B yaitu pinheader SLOW
SCK tidak diberi header jumper sehingga SLOW SCK tidak aktif, ini digunakan pada saat
pendownload-an kedua, ketiga dan seterusnya ke mikrokontroler.
Setelah sebuah downloader jadi, yang harus dilakukan yaitu mengisi file
usbasp.hex ke dalam ATMega8 yang digunakan untuk downloader, file ini digunakan untuk
melakukan inisialisasi ke komputer yang digunakan dan proses download program. Jadi perlu
diperhatikan secara lebih mendalam tentang file ini. Bisa dikatakan downloader yang dibuat
harus didownload terlebih dahulu menggunakan downloader lain yang sudah jadi. dan
downloader yang baru, dijadikan sebagai minimum system ATMega8 terlebih dahulu untuk
dilakukan pen-download-an program usbasp.hex dengan cara memberikan downloader
tersebut VCC dan GND, untuk VCC sebesar 5 volt. seperti skema berikut.

34
MOSI VCC
MISO GND
USB SCK USB
Downloader Downloader
Komputer lama RESET baru

Port USB GND

USBasp.hex

Untuk mendapatkan file usbasp.hex yang digunakan untuk mendownload ke


mikrokontroler, dapat dicari pada blog www.technocarp.co.cc pada bagian halaman
elektronika yang menerangkan tentang USB-ASP, disana terdapat link untuk mendownload
file usbasp.hex tersebut.

2.3 Cara Men-download Progam


Sebelumnya kita sudah mempelajari tentang cara menjadikan file.hex dari
software Bascom yang berekstensi file.bas, dan berikutnya yaitu belajar tentang apa itu
downloader dan pembuatannya, setelah mengetahui itu semua langkah yang berikutnya yaitu
bagaimana cara untuk memasukkan file.hex dari compile bascom-AVR ke mikrokontroler,
untuk bascom-avr sendiri sebenarnya bisa melakukan download secara langsung ke dalam
mikrokontroler, namun pada buku ini tidak membahas hal tersebut, yang akan dibahas yaitu
cara mendownload program menggunakan software AVR-DUDE yang lebih simple / mudah.

Untuk mendownload program file.hex ke dalam mikrokontroler salah satu


cara yaitu menggunakan software AVR DUDE yang mana software ini sangatlah mudah
untuk digunakan karena menggunakan interface yang sangat jelas, baik itu cara
mendownload atau melakukan inisialisasi sistem. Jika file yang akan didownload tersebut
berjenis MCS seperti AT89Sxx dan AT89Cxx maka lebih baik menggunakan software
“ProgISP” untuk melakukan pendownload-an program, karena ProgISP lebih baik untuk
mikrokontroler MCS, namun jika “ProgISP” tersebut digunakan untuk mikrokontroler AVR
tidak masalah, hanya perlu mengganti inisial mikrokontroler yang digunakan saja, namun
lebih baik mikrokontroler AVR menggunakan AVR DUDE karena setting-annya lebih
diperuntukkan untuk AVR. Berikut adalah tampilan dari software AVR DUDE tersebut.

35
Gambar 2.7 Tampilan Software AVR DUDE 1 2 3

Keterangan:
- No.1 adalah layar untuk menampilkan proses download, jika diakhiri dengan kata-kata avr
done thank you, tidak ada pesan error, berarti program file.hex telah berhasil masuk
kedalam mikrokontroler, namun jika ada pesan error berarti program gagal dimasukkan,
munngkin ada masalah dengan downloadernya atau kabel konektornya
- No.2 adalah tempat untuk memasukkan data file.hex yang kita inginkan, hanya perlu
menekan tombol, setelah itu terdapat layar yang dimaksudkan untuk memasukkan data
file.hex yang kita inginkan ke mikrokontroler
- No.3 adalah tombol yang digunakan untuk memulai proses pen-download-an, hanya dengan
click pada tombol execute, program diproses untuk masuk kedalam mikrokontroler

AVR DUDE memiliki setting-an khusus yang harus diperhatian, mengenai


tombol check apa saja yang harus diaktifkan dan dinonaktifkan, jika sembarangan didalam
melakukan check dan uncheck maka akan dikhawatirkan pada saat mendownload,
mikrokonroler yang dituju akan ter-lock atau terkunci portnya untuk itu harus sangat
diperhatikan mengenai setting-an ini. Berikut adalah settingan AVR-DUDE yang optimal
digunakan untuk proses download.

36
a. Pada Menu File

b. Pada Menu Configuration

c. Pada Menu Fuses

d. Pada Menu Option

37
Untuk menggunakan software download lain seperti “ProgISP” terdapat beberapa
setting-an khusus yang perlu diperhatikan, seperti gambar berikut.

Gambar 2.7 Tampilan ProgISP

Keterangan:

- No.0 adalah tombol untuk memasukkan file.hex yang akan kita masukkan ke
mikrokontroler, akan nampak layar untuk media pemlihan file.hex yang dimaksud

- No.1 adalah indikator untuk aktifnya downloader USB-ASP, jika pada indikator ini
menyala, berarti downloader telah aktif dan siap melakukan pen-download-an

- No.2 adalah tombol untuk inisialisasi mikrokontroler yang digunakan, jika menggunakan
mikrokontroler MCS maka pilih yang MCS, jika AVR pilih yang sesuai dengan AVR

- No.3 adalah tombol Erase untuk menghapus program yang berada pada mikrokontroler, jadi
kelebihan software ini dibanding AVR DUDE yaitu terdapat tombol untuk mengahapus
program, jika AVR DUDE tidak disediakan fitur Erase ini.

- No.4 adalah tombol Auto yang digunakan untuk memulai eksekusi pen-download-an ke
mikrokontroler yang terkait

Untuk setting-annya yaitu hanya mengaktifkan (check) pada pilihan chip erase,
program flash, data reload dan program fuse, yang lainnya tetap pada posisi uncheck.
Itulah settingan yang optimal yang biasa digunakan untuk mendownlad program untuk
software ProgISP seperti yang terlihat pada tampilan gambar 2.7.

Untuk mendapatkan software AVR DUDE dan PROG ISP dapat di download di link berikut
http://www.4shared.com/rar/FCUCEWWs/usbasp.html? (untuk AVR DUDE)
http://www.4shared.com/rar/u4QKPj1j/progisp172.html? (untuk Prog ISP)

38
BAB 3
Komunikasi Serial

3.1 Perkenalan Komunikasi Serial


Sebelumnya apa itu komunikasi serial?, komunikasi serial adalah komunikasi
dimana pengiriman data dilakukan per bit, sehingga lebih lambat dibandingkan komunikasi
parallel seperti pada port printer yang mampu mengirim 8 bit sekaligus dalam sekali detak.
Beberapa contoh komunikasi serial adalah mouse, scanner dan system akuisisi data yang
terhubung ke port COM1 / COM2
Dikenal 2 macam cara pengiriman (transmisi) data secara serial. Kedua cara
tersebut dibedakan oleh sinyal detak (detak) yang dipakai untuk men-’dorong’ data serial,
kalau sinyal detak dikirim bersama-sama dengan data serial, cara tersebut dikatakan sebagai
transmisi data serial secara sinkron. Sedangkan dalam transmisi data serial secara
asinkron, detak tidak dikirim bersama data serial, rangkaian penerima data harus
membangkitkan sendiri detak pendorong data serial.
Fungsi utama dari komunikasi serial pada mikrokontroler yaitu untuk
menghubungan antara komputer dengan mikrokontroler, jadi kedua device tersebut dapat
saling bekerjasama untuk melakukan perintah yang dibuat. Seperti halnya monitoring suhu
menggunakan komputer, data suhu didapatkan oleh mikrokontroler, kemudian dari
mikrokontroler dikirimkan datannya menggunakan komunikasi serial kepada komputer,
sehingga pada tampilan hyperterminal computer terdapat data suhu yang dikirimkan oleh
mikrokontroler.
Tidak hanya itu saja, bisa juga komunikasi balik, dari komputer memerintahkan
mikrokontroler untuk melakukan sesuatu tergantung pada program yang dimasukkan ke
mikrokontroler, seperti contohnya membuat tampilan animasi led menggunakan control
komputer. Jadi komputer berfungsi untuk mengendalikan kinerja dari mikrokontroler, dan
banyak aplikasi lain yang berhubungan dengan komunikasi serial.

3.2 Cara Menghubungkan Komputer dengan Mikrokontroler


Untuk komunikasi serial terdapat dua metode untuk melakukannya, metode yang
pertama yaitu dengan menggunakan port USB. Metode ini yang disarankan oleh penulis,

39
dikarenakan port USB terdapat pada PC maupun laptop sehingga dapat digunakan dimana
saja dan pada berbagai jenis komputer tersedia usb port.
Metode kedua yaitu menggunakan port serial, jadi port serial yang terdapat
pada PC digunakan sebagai penghubung antara mikrokontroler dengan komputer PC,
kelemahannya yaitu jika untuk berhubungan dengan laptop harus menggunakan konverter
serial to USB converter karena pada laptop tidak terdapat port serial seperti gambar berikut.

Gambar 3.1 Tampilan Db9 Port Serial pada PC

Kabel konektor yang digunakan pada kedua metode tersebut berbeda, untuk
metode menggunakan port USB menggunakan kabel DKU-5, yang mana kabel ini
merupakan kabel data dari handphone Nokia yang bagian ujungnya dimodifikasi, didalam
kabel data Nokia terdapat 5 buah kabel yang masing-masing berwarna biru, merah, hijau,
putih, dan hitam, namun yang dipakai untuk melakukan komunikasi serial dengan port USB
hanyalah tiga warna kabel yaitu seperti pada tabel berikut.

Tabel 3.1 Fungsi pada kabel data Nokia


Warna kabel Fungsi
Merah Tidak dipakai
Biru Untuk pin RX
Hijau Tidak dipakai
Putih Untuk pin TX
Hitam Ground

Dari keterangan pada tabel diatas kabel yang digunakan hanya tiga kabel yaitu
kabel warna biru untuk pin RX, kabel putih untuk pin TX dan yang hitam untuk Ground yang
mana masing-masing pin RX, TX GND pada kabel data tersebut dihubungkan ke pin RX,
TX, dan GND pada rangkaian minimum system. Berikut adalah gambar kabel data Nokia
yang telah dimodifikasi untuk komunikasi serial mikrokontroler.

40
Gambar 3.2 Kabel Serial DKU-5 Port USB

Pada gambar 3.2 kabel serial DKU-5 terdapat sebuah port usb male pada ujung,
dan pada ujung yang lain terdapat 3 kabel yaitu biru, putih dan hitam. Port usb pada bagian
ujung kabel di hubungkan ke komputer PC atau laptop melalui port usb female, kemudian
ujung yang lain yang berupa 3 kabel tersebut dihubungkan ke minimum system melalui pin
RX, TX dan GND, berikut bagannya.

RX, TX, GND USB port


Minimum Computer
System
Kabel DKU-5

Metode kedua yaitu menggunakan serial port yang terdapat pada PC, dengan
media kabel serial dan rangkaian RS232 sebagai media pengirim / penerima data. Metode ini
memang membutuhkan media RS232 sebagai media pengirim / penerima data dari
mikrokontroler. Jika tanpa rangkaian ini, data dari mikrokontroler tidak akan bisa diterima
oleh komputer. Berikut adalah bentuk dari rangkaian RS232 tersebut.

Gambar 3.3 Rangkain RS232

41
Rangkaian RS232 membutuhkan sebuah DB9 yang berfungsi sebagai konektor
dari rangkaian RS232 ke kabel serial, jadi untuk metode serial dengan port serial
membutuhkan dua buah item utama yaitu kabel serial dan rangkaian RS232. Untuk kabel
serial bentuknya seperti pada gambar berikut.

Gambar 3,4 Bentuk Kabel Serial

Kabel serial yang telah dihubungakan ke rangkaian RS232, dihubungkan ke port


serial pada komputer PC, sehingga akan nampak seperti gambar berikut setelah rangkaian
RS232 dihubungkan ke kabel serial.

Gambar 3.5 Rangkaian RS232 dihubungkan dengan Kabel serial

Untuk penggunaan dari rangkaian RS232 tidaklah sulit, seperti halnya kabel
DKU-5 yaitu hanya menghubungkan ke pin RX, TX dan GND pada minimum system, jadi
pada IC MAX232 terdapat input dan output pin yaitu RX dan TX, dan ditambah dengan vcc
dan ground rangkaian.

42
Untuk lebih jelas mengenai komunikasi data melalui port serial dapat
diperhatikan pada bagan berikut ini.

RX, TX, GND, VCC DB9 Kabel Serial Serial port


Minimum
System RS232 Computer PC

Perbedaan dari kedua metode antara port serial dengan port USB hanyalah pada
media penghubungnya, dimana port USB tidak menggunakan rangkaian RS232 sebagai
media pengirim dan pernerima data, namun menggunakan kabel DKU-5 yang telah terdapat
jalur RX, TX dan ground, untuk metode port serial memerlukan rangkaian tambahan yaitu
rangkaian RS232 dan kabel serial sebagai media penghubungnya.
Ada sebuah pertanyaan, bagaimana caranya agar komunikasi serial menggunakan
port serial diubah menjadi port USB?. Caranya cukulah mudah yaitu hanya membutuhkan
sebuah alat konverter yang dinamakan serial to USB converter dan kabel USB male to male,
untuk bentuknya seperti pada gambar berikut ini.

Gambar 3.6 Bentuk dari Serial to USB Converter

Metode penggabungan antara port serial dan port USB ini memang sering sekali
digunakan didalam komunikasi serial, dikarenakan jika menggunakan port serial saja, hanya
bisa untuk berkomunikasi dengan computer PC saja, sehingga digunakanlah konverter agar
bisa digunakan pada laptop atau device lain yang menggunakan port USB sebagai media
penghubungnya. Untuk lebih jelasnya dapat melihat pada bagan berikut ini.

43
RX, TX, GND Kabel Serial Kabel USB male to male / Printer

Minimum Serial to Computer


RS232 USB
System Port USB
converter
female

Komunikasi antara mikrokontroler dengan komputer terdapat dua sistem yang


harus diperhatikan agar tercipta komunikasi yang bagus, yaitu sistem hardware dan sistem
software. Untuk yang dijelaskan diatas yaitu komunikasi antara mkrokontroler dengan
komputer secara hardware, namun bagaimana secara software-nya?. Jika kedua sistem ini
tidak saling mendukung maka tidak akan ada komunikasi antara mikrokontroler dengan
komputer dikarenakan komputer belum siap untuk menerima data dari mikrokontroler.
Mengaktifkan software serial pada komputer biasanya menggunakan software
Hyperterminal, yang mana software ini bisa didownload diinternet. Namun penulis tidak
menggunakan software Hyperterminal dikarenakan terdapat setting-an yang harus dilakukan
sebelum membuka layar komunikasi serialnya dan juga jika untuk komunikasi secara
wireless sering terjadi error. Untuk software komunikasi serial yang penulis pakai yaitu
software Hypoterminal yang sejatinya mirip dengan Hyperterminal, dan untuk
penggunaannya lebih mudah Hypoterminal, karena hanya dengan mengaktifkan software,
port yang aktif telah terdeteksi, dan settingannya telah terpasang pada settingan default, yaitu

Bits per second = 9600


Data bits = 8
Parity = None
Stop Bits = 1
Flow Control = None

Bits per second nilai default pada Hypoterminal yaitu 9600, jika menginginkan
boudrate yang lain dapat dirubah sesuai dengan baudrate dari mikrokontroler atau modul
yang akan berkomunikasi dengan komputer. Tampilan dari Hypoterminal seperti gambar
berikut ini

44
1

Gambar 3.7 Tampilan Hypoterminal 7

Keterangan:

- No.1 adalah pengaturan untuk stop bits

- No.2 adalah pengaturan untuk Parity

- No.3 adalah pengaturan untuk data bits

- No.4 adalah pengaturan untuk Bits per second

- No.5 adalah COM Port yang aktif atau yang siap digunakan, untuk mengetahui COM Port
yang digunakan oleh mikrokontroler, terlebih dahulu melihat pada bagian Device and
printer pada computer windows, yang mana disana terdapat COM Port yang digunakan oleh
mikrokontroler. Jika telah terdapat COM Port yang digunakan, maka ganti COM Port
default dengan COM Port yang dituju

- No.6 adalah tombol connect yang fungsinya untuk memulai hubungan antara komputer
dengan mikrokontroler secara serial.

- No.7 adalah tampilan layar atau tempat data yang akan diterima oleh komputer dari
mikrokontroler atau juga bisa sebaliknya yaitu untuk mengirimkan data ke mikrokontroler

3.3 Pembuatan Rangkaian Komunikasi Serial


Untuk melakukan komunikasi secara serial dengan metode port serial yang harus
dibuat yaitu rangkaian RS232, yang telah dijelaskan fungsi dan kedudukannya pada
penjelasan sebelumnya. Pembuatan rangkaian ini sangatlah mudah dan hanya membutuhkan
beberapa kompunen, yang mana komponen tersebut dapat ditemukan di toko-toko
elektronika, dan tergolong komponen yang umum digunakan untuk suatu project elektronika.
Berikut adalah skematik dari rangkaian RS232 tersebut.

45
Ke RX, TX
Minimum System

Gambar 3.8 Skematik Rangkaian RS232

Bahan-bahan:
a. Capasitor Polar 1uF / 16v x 4 buah
b. DB9 male / female x 1 buah
c. IC MAX232 x 1 buah

Pada gambar 3.8 terdapat IC U1 yaitu IC MAX232, IC tersebut umum


digunakan untuk project komunikasi serial dan bukan termasuk IC langka, jadi yang perlu
diperhatikan yaitu letak dari RX in, RX out, TX in, TX out dan VCC, GND.

46
BAB 4
Minimum System

4.1 Perkenalan dengan Minimum System


Minimum system adalah sebuah rangkaian utama yang digunakan untuk
meletakkan mikrokontroler agar bisa berfungsi maksimal, jadi dengan kata lain
mikrokontroler harus ditempatkan pada sebuah rangkaian untuk bisa berjalan secara optimal,
jika tanpa rangkaian minimum system, mikrokontroler tidak dapat aktif, ambil contoh
ATMega16, jika ATMega16 tidak dipasangkan ke minimum system, ATMega16 tersebut
tidak dapat berfungsi. Maka dari itu minimum system ini harus diperhatikan benar mengenai
fungsi dan cara pembuatannya.
Jika tidak ingin membuat minimum system sendiri, bisa beli barang jadi di toko
elektronika, namun cara ini tidak disarankan, karena itu mengakibatkan kita tidak kreatif dan
hanya menggantungkan barang yang sudah jadi, harga dari kita buat sendiri dibanding beli
sangat jauh, jika kita membuat sendiri uang yang dipakai kira-kira habis Rp. 60.000,00,
namun jika membeli akan habis Rp. 125.000,00 sampai Rp. 200.000,00. Untuk tampilan
minum system yang berada dipasaran yaitu seperti gambar berikut ini,

Gambar 4.1 Contoh Rangkaian Minimum System

Pada bab ini akan dibahas mengenai bagaimana cara membuat minimum system
dari mikrokontroler yang akan digunakan untuk membuat robot dan alat elektronika pada bab
selanjutnya, yaitu rangkaian minimum system ATMega8, ATMega32, ATMega16 dan
ATMega8535.

47
Fungsi rangkaian minimum system pada rangkaian elektronika yaitu sebagai otak
dan pengendali segala aktifitas baik itu pada robot ataupun alat elektronika, karena posisi
rangkaian minimum system sangat penting dan central sekali, jika terdapat gangguan pada
rangkaian minsys ini maka suatu alat elektronika atau robot tidak akan bergerak / berjalan
dan tidak akan berfungsi maksimal, seperti halnya manuasia yang tanpa ruh, maka tubuh
manusia tersebut tidak berfungsi atau mati.
Setiap mikrokontroler baik itu pada tipe AVR atau pun MCS memiliki
konfigurasi rangkaian minimum system yang berbeda, sehingga untuk membuatnya tidak
bisa sembarangan, misalnya rangkaian minimum system untuk ATMega16 dipasang dengan
mikrokontroler ATMega8, itu sangat tidak mungkin karena konfigurasi antara keduanya
berbeda, dan juga ukurannya pun berbeda. Namun jika rangkaian minimum system
ATMega16 dipasang mikrokonroler ATMega8535 itu masih bisa, dikarenakan konfigurasi
antara ATMega16 dan ATMega8535 relatif sama, tidak ada perbedaan.jadi kesimpulannya
setiap ATMega memiliki rangkaian minimum system sensdiri yang berbeda dengan yang
lainnya kecuali untuk konfigurasi pin / kaki mikrokonroler yang sama. Berikut adalah
tampilan dari minimum system ATMega16 / ATMega8535 dan ATMega8.

Gambar 4.2 Rangkaian Minsys ATMega8 Gambar 4.3 Rangkaian Minsys ATMega16

4.2 Pembuatan Rangkaian Minimum System


Untuk membuat rangkaian minimum system sangatlah mudah, dan tidak rumit
didalam pembuatannya. Hanya membutuhkan waktu sekitar 30 menit untuk membuatnya
jadi, dan juga komponen yang digunakan termasuk komponen yang umum, yang biasa
digunakan didalam project elektronika.
Pertama yang akan dibahas yaitu cara membuat rangkaian minimum system
untuk ATMega8, dengan berpedoman pada konfigurasi kaki / pin dari ATMega itu sendiri,

48
untuk lebih jelasnya bisa melihat dari datasheet mikrokontroler yang terkait agar bisa lebih
memahami karakteristik tiap pin / kaki mikrokontroler yang dipakai.
Berikut adalah skematik dari rangkaian minimum system ATMega8 dengan port
C digunakan untuk penampil LCD.

Gambar 4.4 Skematik Rangkaian ATMega8

Bahan-Bahan:

a. ATMega8 x 1 buah

b. Variabel Resistor 10K x 1 buah

c. Kapasitor 22pF x 2 buah

d. Crystal 12Mhz x 1 buah

e. Pinheader Female 16 pin ( untuk LCD display )

f. Pinheader male tunggal

Pada rangkaian minsys ATMega8 diatas tegangan masukan ke mikrokontroler


(VCC) sebesar 5 volt, tidak bisa lebih karena tidak adanya rangkaian regulator 12v to 5v, jika
ingin menggunakan battery sebagai tegangan masukan minsys, maka harus dibuat dahulu

49
regulator sebagai konverter tegangan, sehingga tegangan diatas 5v seperti 9v atau 15v bisa
keluar dari regulator sebesar 5v, ini sangat aman untuk rangkaian minimum system.

JP2 pada gambar 4.4 berfungsi untuk media memasukkan program kedalam
mikrokontroler atau istilah lain sebagai port untuk ke Downloader, karena pada port itu terdiri
dari pin MISO, MOSI, SCK, RESET, GND. seperti penjelasan pada bab downloader
sebelumya, untuk JP1 digunakan untuk layar LCD 16 x 2, dan JP3 merupakan port untuk I/O,
jadi pada contoh gambar hanya terdapat 3 port I/O yaitu pada portD.5, portD.6 dan PortD.7.
jika menginginkan port I/O lebih banyak, bisa menggunakan port yang tidak dipakai seperti
portD.0 – portD.4 dan portB.0 – portB.2 tergantung dari penggunaannya.
Untuk penjelasan berikutnya yaitu cara membuat minimum system untuk
ATMega16 atau ATMega8535 yang mana minimum sistem untuk ATMega16 ini berbeda
dengan ATMega8, maka dari itu harus perlu dicermati pada bagian ini. Berkut adalah gambar
skematik dari minimum system ATMega16 / 8535 / 32 tanpa tampilan layar LCD.

1 2 Gambar 4.5 Skematik minimum system ATMega16 / 8535 /32 3 4

50
Bahan-Bahan :
a. ATMega16 / 8535 / 32 x 1 buah
b. Crystal 12Mhz x 1 buah
c. Kapasitor 22pF x 2 buah
d. Kapasitor 104pF x 4 buah
e. Kapasitor 103pF x 1 buah
f. Resistor 4k7ohm x 1 buah
g. Tombol Reset x 1 Buah
h. Tomboh ON/OFF x 1 buah
i. Pinheader tunggal
j. Pinheader double
k. IC7805 x 1 buak
l. Kapasitor polar 100uF / 25v x 1 buah
m. Kapasitor polar 10uF / 16v x 1 buah

Penjelasan untuk gambar 4.5. pada no.1 adalah rangkaian regulator yang
digunakan untuk menghasilkan tegangan 5v karena menggunakan IC7805, sehingga tegangan
lebih dari 6v seperti 9v atau 15v dapat diturunkan menjadi 5v pada tegangan keluarannya
menggunakan IC7805, karena terjadi proses disipasi tegangan sehingga IC ini akan panas jika
melakukan aktifitasnya. No.2 adalah tombol ON/OFF yang mana gunanya untuk sebagai
saklar rangkaian, jika ingin menghidupkan rangkaian hanya perlu menekan tombol ON, dan
untuk mematikan posisikan tombol pada posisi OFF . No.3 adalah port I/O, pada contoh port
I/O semua diaktifkan sehingga jika ingin menggunakan hanya perlu memilih salah satu port
dari sekian banyak port I/O yang disediakan. Untuk No.4 yaitu port yang diguanakan untuk
melakukan download program yang dihubungkan ke downloader, karena port ini terdiri dari
pin MOSI, MISO, SCK, RESET, dan GND.
Minimum system juga termasuk alat yang serbaguna, karena bisa menerima data
dari sensor, bisa memberikan / menerima data ke komputer melalui pin RX, TX, bisa
mengaktifkan / me-non aktifkan port I/O, bisa mengatur jalannya output maupun input data
melalui program yang dimasukkan kedalamnya.
Minimum System merupakan rangkaian yang sangat vital, karena posisinya
sebagai otak penggerak suatu rangkaian dan juga motor dalam jalannya suatu aktifitas suatu
rangkaian.

51
Tombol RESET pada suatu rangkaian minimum system digunakan untuk
melakukan setting ulang / kembali dari awal, seperti halnya rangkaian di OFF-kan kemudian
di ON-kan kembali, pasti akan melakukan eksekusi perintah / program dari pertama, sama
seperti itu kinerja dari tombol RESET.

Untuk mengetahui posisi minimum system pada suatu alat dapat dilihat pada
bagan berikut.

MINIMUM LCD / LED /


SENSOR
SYSTEM BUZZER dsb
Komputer
Laptop /PC
MODULE

Penjelasan dari bagan diatas yaitu minimum system berposisi sebagai otak
pergerakan suatu rangkaian. Sensor memberikan data kepada minimum system dimana disini
mikrokontroler mengolah data yang dikirim oleh sensor bisa melalui port ADC atau yang
lain, kemudian minimum system mengeluarkan output yang berupa tampilan LCD / LED /
Buzzer dll. untuk module dapat mengirim atau menerima data dari minimum System
sehingga minimum system dapat mengendalikan modul secara bersamaan. Komputer
berposisi bisa sebagai pengirim atau penerima data dari minimum system, jadi komputer bisa
menampilkan data dari sensor dan bisa pula komputer memerintahkan minimum system
untuk melakukan sesuatu tergantung pada program yang terdapat pada mikrokontroler.

52
BAB 5
ROBOTIKA

5.1 Pengenalan Tentang Robotika


Robotika merupakan suatu materi pembelajaran yang sangat menarik, dan juga
sangat menantang bagi pecinta elektronika, karena disinilah tempat untuk berkarya dan
mengasah kreatifitas. Robotika berhubungan erat sekali dengan yang namanya membuat
robot atau sistematika robot, maka dari itu segala resiko yang akan dihadapi harus benar-
benar dipersiapkan, terutama masalah dana.
Membuat robot adalah suatu pencapaian tertinggi bagi pecinta elektronika, karena
pada robotika mengandung unsur-unsur tingkat tinggi baik itu dari segi pemrograman
maupun hardware, memang kalau dilihat sepintas, membuat robot adalah sesuatu yang tidak
mungkin bagi pemula atau yang masih belajar elektronika, tapi itu semua tidak benar, disini
akan dipaparkan secara teperinci mengenai bagaimana untuk membuat robot dari yang
tingkatnya basic hingga yang advance dan bisa dilakukan dirumah secara mandiri.
Klasifikasi robot ada 2 macam yaitu robot dengan tingkat basic, dan tingkat
advance, untuk yang tingkat basic menggunakan pemrograman yang relatif sedikit, dan
belum menggunakan PID control sebagai proses untuk memperhalus gerakan robot, untuk
yang tingkat advance, pemrograman dan hardware akan sedikit lebih rumit, terutama pada
program kendali, karena menggunakan PID control yang membuat robot bisa berjalan halus
dan lancar.
Untuk jenis-jenis robot ada berbagai macam jenis yaitu ada robot beroda, berkaki,
beroda dan berkaki dan lain sebagainya. Namun pada buku ini hanya membahas mengenai
robot yang mengunakan roda, tidak membahas robot berkaki, dikarenakan untuk biaya
pembuatan robot berkaki akan lebih mahal dari robot beroda, dan memerlukan komponen
yang tidak murah harganya untuk membuat satu robot berkaki, tidak hanya itu untuk robot
berkaki memerlukan program PID yang sedikit panjang dan memerlukan beberapa rotary
encoder yang digunakan untuk membaca tingkat pergerakan suatu putaran motor. Maka dari
itu masalah mengenai robot berkaki tidak dibahas dibuku ini.
Setiap robot yang beroda memerlukan komponen pendukung yang berupa sensor
sebagai pendeteksi kondisi dan input data, kemudian motor driver yang digunakan sebagai
penggerak roda, sehingga roda bisa berjalan maju atau mundur tergantung pulse masukan.

53
Guna memperjelas dari penjelasan macam-macam robot dan jenisnya, berikut
adalah penjelasan menggunakan gambar tentang macam-macam robot yang sekarang
berkembang terutama diindonesia, ada beberapa macam robot yang sekarang sedang tenar
dan biasa dilombakan yaitu

A. Kategori Robot Beroda:

Maksud dari robot kategori beroda adalah robot yang dibuat berjalan dengan
menggunakan roda, atau kata lainnya robot yang menggunakan kaki berupa roda atau
sejenisnya, roda yang digunakan bisa bermacam-macam jenis dan bentuknya tergantung pada
fungsi pemakaiannya, untuk robot beroda, yang sekarang popular ada 3 robot yaitu:

1. Robot Line Follower

Gambar 5.1 Tampilan Robot Line Follower

2. Robot Balancing

Gambar 5.2 Tampilan Robot Balancing

54
3. Robot Pemadam Api

Gambar 5.3 Robot Pemadam Api

4. Robot Avoider

Gambar 5. 4 Tampilan Robot Avoider

B. Kategori Robot Berkaki

Untuk kategori robot berkaki, disini maksudnya robot tersebut berjalan dan
bergerak menggunakan kaki sebagai tumpuan geraknya, sehingga dikategorikan robot
berkaki, untuk kaki robot ada bermacam-macam jenis dan bentuknya, ada yang seperti kaki
manusia yaitu dua kaki, ada pula yang menggunakan kaki lebih dari dua kaki seperti halnya
robot laba-laba yang menggunakan kaki laba-laba yang jumlahnya lebih dari dua buah,

55
berikut adalah penjelasan dari macam-macam robot berkaki yang sedang popular di
masyarakat Indonesia.

1. Robot Humanoid

Gambar 5.4 Tampilan Robot Soccer

2. Robot Kaki Laba-Laba

Gambar 5.5 Tampilan Robot Hexapod

56
5.2 Membuat Robot Line Follower

Pada bagian ini akan dibahas secara mendetail mengenai cara pembuatan robot line
follower dari rangkaian yang diperlukan hingga ke program, sebenarnya untuk robot line
follower tidak-lah sulit, tidak serumit yang dibayangkan, mungkin sekilas jika dilihat robot line
follower nampak rumit dengan sensor dan rangkaian motor driver, namun semuanya itu tidak
demikian, malah robot ini adalah robot yang paling digemari oleh para elektro lovers
dikarenakan biayanya yang murah dan unsur kreatifitasnya tinggi, untuk gambar robotnya adalah
seperti dibawah ini.

Gambar 5.2a Tampilan Robot Line Follower

Robot line follower yang akan dibahas kali ini yaitu robot line follower yang tanpa
menggunakan PID control dalam system pengaturannya, jadi hanya mengandalkan akurasi dari
pembacaan sensor dan gerak dari motor yang dikendalikan oleh motor driver. Robot line
follower memiliki tingkatan level, yaitu level basic dan level professional atau advance, untuk
yang basic yaitu robot hanya mengandalkan sensor dan motor driver, namun jika level advance
atau professional tidak hanya mengandalkan pembacaan sensor dan motor drive namun juga
membutuhkan rumus agar robot dapat berjalan stabil dan mulus saat di lintasan, agar lebih jelas
berikut adalah penjelasan prinsip kerja masing-masing level dalam robot line follower.

57
1. Robot Line Follower Basic Level
Robot line follower pada tahap awal yaitu robot line follower yang tidak
menggunakan control PID, jadi hanya menggunakan pembacaan sensor dan arah gerak
motor driver, sehingga jika dibandingkan dengan robot line follower dengan PID
berbedanya kalau basic, jalan dari robot pada track masih kasar, tidak mulus saat
membelok atau menikung, namun jika yang menggunakan PID akan berjalan mulus
seperti kereta api yang berjalan pada tracknya, saat menikung pun akan terlihat lebih
halus dari pada yang tidak menggunakan PID, untuk prinsip kerja dari robot line follower
basic level yaitu seperti gambar berikut.

Lurus Belok Kanan


Belok Kiri
LED

Photo Dioda
Track / Lintasan

Gambar 5.2b Tampilan arah gerak motor berdasarkan tangkapan sensor

Seperti yang terlihat di gambar 5.2b, terdapat kata “belok kiri” maksudnya yaitu jika
sensor mendeteksi track yang berwarna hitam atau putih pada sektor kiri dari sensor
maka sensor akan memerintahkan motor driver untuk berbelok kearah kiri dikarenakan
track yang dibaca berbelok kearah kiri yang ditandai dengan aktifnya tiga sensor yang
berada di bagian kiri, begitu pula dengan kata “lurus” dan kata “belok kanan”, jika lurus
artinya track yang terbaca oleh sensor adalah track lurus yang ditandai dengan aktifnya
dua sensor yang berada dibagian tengah, dan juga untuk “belok kanan”, sensor akan

58
mengirimkan perintah belok kanan kepada motor driver jika sensor yang aktif adalah tiga
sensor yang berada di bagian kanan.
Seperti itu-lah prinsip kerjanya untuk robot line follower yang tidak menggunakan
PID yang hanya mengandalkan pembacaan dari sensor yang kemudian mengirimkan
perintah untuk belok kanan, belok kiri atau lurus, jika ke delapan sensor tersebut
semuanya tidak aktif maka dapat diperkirakan robot tersebut berada di luar lintasan,
dikarenakan tidak adanya satu sensorpun yang aktif, biasanya untuk permasalahan seperti
ini, robot di program untuk berjalan mundur sampai salah satu sensor aktif, jadi robot
dapat berada dalam lintasan terus menerus biarpun keluar lintasan.

2. Robot Line Follower Advance Level


Robot line follower yang advance level yaitu robot line follower yang menggunakan
PID control sebagai pengontrol untuk jalannya robot. Pertanyaan pertama yaitu apa itu
PID ?, PID adalah Proportional, Integral dan Derivative, maksud dari Proportional yaitu
untuk memperbaiki respon transien, Integral digunakan untuk menghilangkan error
steady state, dan Derivative digunakan untuk memberikan efek redaman, ketiga factor
tersebut sangatlah penting untuk terciptanya suatu system yang sempurna, baik untuk
jalannya robot saat lurus, mundur atau berbelok.
Kombinasi yang bisa digunakan untuk sebagai system control yaitu PI, PD dan PID,
selain dari itu, tidak diperkenankan untuk digunakan karena akan menimbulkan efek yang
tidak diinginkan.
Berikut adalah penjelasan singkat mengenai PID control.

a. Kontroler Proportional
Persamaan matematis =

u(t) = KP . e(t)

dimana KP : konstanta proporsional


dalam Laplace
U(s)/E(s) = KP

59
Diagram blok

Efek dari sistem proportional adalah sbb.

Tidak Stabil Stabil

b. Kontroler Integral
Persamaan Matematis =
t
u (t )  K i  e(t )dt
0

dimana Ki : konstanta integral


dalam Laplace
U ( s) K i

E ( s) s

60
Diagram blok

Efek dari sistem Integral dan Proportional adalah sbb.

Respon Sistem Tanpa Kontroler

Respon Sistem dengan Kontroler P

Respon Sistem dengan Kontroler I

61
Respon Sistem dengan Kontroler PI

c. Kontroler Derivative
Fungsi dari kontroler derivative yaitu
1. Memberikan efek redaman pada sistem yang berosilasi
2. Memperbaiki respon transien, karena memberikan aksi saat ada perubahan error
3. D hanya berubah saat ada perubahan error, sehingga saat ada error statis D tidak
beraksi

Efek dari system Derivative adalah sbb.

Respon Sistem dengan Kontrol P saja,

Respon Berosilasi

Respon Sistem dengan Kontrol PD

Kp=1, Kd = 3

62
Kontroler PID Seri
t
 1 de(t ) 

u (t )  K p  e(t )   e(t )dt  Td 
T dt 
 i 0 
 1 
U ( s )  K p  E ( s )  E ( s )  Td sE ( s ) 
 Ti s 
K
U ( s )  K p E ( s )  i E ( s )  K d sE ( s )
s

Kontroler PID Paralel


t
1 de(t )
u (t )  K p e(t )   e(t ) dt  Td
Ti 0 dt
1
U ( s )  K p E ( s)  E ( s )  Td sE ( s )
Ti s
Ki
U ( s )  K p E ( s)  E ( s )  K d sE ( s )
s

Untuk aplikasi PID pada sensor robot line follower yaitu seperti yang di ilustrasikan
pada gambar berikut, missal nilai awal adalah 30 atau pwm normal = 30 (tidak ada beban).

Nilai Awal = 30
Kiri Kanan

PWM B -30 -20 -10 -0 -0 -10 -20 -30 PWM A

Sensor Robot

Track / Lintasan

Maksud dari gambar diatas yaitu terdapat kecepatan awal sebesar 30 yang mana
kecepatan penuh dari motor driver untuk memutarkan motor pada robot, terdapat nilai – 0 pada

63
dua sensor yang terdapat pada bagian tengah, artinya pada saat kedua sensor ini aktif, motor
driver tidak mengurangi kecepatan pada pwm yang ada pada motor driver sehingga nilainya
tetap 30 untuk pwm A dan pwm B, namun jika sensor yang kedua aktif pada bagian kanan, maka
terdapat nilai -10 yang artinya untuk pwm A bernilai 20 dan pwm B tetap bernilai 30, ini
mengakibatkan robot berbelok ke kanan sedikit karena kecepatan pwm A tidak sama dengan
pwm B, selanjutnya jika sensor ke tiga kanan yang aktif maka akan dikurangi dengan nilai -20
sehingga menghasilkan pwm A bernilai 10 dan pwm B tetap 30, ini mengakibatkan robot
berbelok ke kanan lebih dalam, jika yang terkena itu adalah sensor ke-empat kanan yang bernilai
-30 maka nilai pwm A bernilai 0 dan pwm B bernilai 30, sehingga roda kanan akan berhenti
karena pwm A = 0 dan roda kanan akan berjalan karena nilainya tetap 30, ini mengakibatkan
robot berbelok tajam kearah kanan, begitu pula prinsip kerja untuk sensor pada bagian kiri.
Itu-lah penjelasan singkat mengenai PID control yang biasa digunakan sebagai
penyempurna dari sebuah output system, sehingga system dapat berjalan secara stabil dengan
sedikit error dan kesalahan.
Memang, jika dibanding dengan basic level, perbedaan yang mencolok atau yang
dominan yaitu ada di program bascom-nya, jika tanpa PID, program bascom tidak-lah banyak,
namun jika menggunakan PID akan menghasilkan program yang panjang, karena proses yang
panjang dan rumit, tapi pada penjelasan di bagian ini akan diberikan program bascom untuk
pembuatan robot line follower basic level dan advance level, sehingga akan menemukan
perbedaan yang jelas antara keduanya, disarankan untuk pemula di fokuskan untuk
pembuatan line follower yang basic level untuk menghindari kerumitan dan ketidakpahaman
akan program PID dan alur eksekusinya.

5.2.1 Fungsi dan Tujuan


Fungsi dibuatnya robot ini untuk mengetahui bagaimana cara membuat robot line
follower dari yang basic hingga yang advance, mulai dari pembuatan hardware, pembuatan
program hingga ke kalibrasi system, untuk tujuannya yaitu agar proses pembuatan robot line
follower ini dapat dikembangkan ke permodelan yang lain yang lebih kompleks dan bermanfaat
bagi masyarakat, sehingga tidak hanya sebagai robot hiburan atau robot untuk ajang kreatifitas
saja namun juga dikembangkan untuk kearah membantu manusia didalam kehidupan sehari-hari.

64
5.2.1 Prinsip Kerja Robot

8 buah Mikrokontroller Motor Motor DC


Sensor ATMega32 Driver

Prinsip kerja dari robot ini yaitu terdapat delapan buah sensor yang berupa photo
diode dan led putih super bright yang mana sensor ini yang akan menjadi mata dari robot untuk
petunjuk dari jalannya arah robot, dari sensor didapat kondisi-kondisi misal sensor membaca
track hitam akan bernilai 1 jika sensor membaca track putih akan bernilai 0, dari kondisi tersebut
dikirimkan ke port ADC mikrokontroller, mikrokontroller berposisi sebagai otak dari robot yang
akan mengolah data yang diberikan oleh sensor, dari mikrokontroller, data-data kondisi dari
sensor akan dikirimkan ke motor driver untuk menjalankan motor DC yang terpasang di motor
driver, motor driver akan melakukan aksi sesuai dengan input yang diberikan oleh
mikrokontroler sehingga motor driver hanyalah rangkaian penerima sinyal dari mikrokontroler
yang kemudian diteruskan ke motor DC, motor DC pada robot diposisikan sebagai kaki untuk
melakukan pergerakan maju, mundur dan pengereman.
Robot akan berjalan sesuai jalur atau track yang terpasang, kalau di bagian ini dibahas
untuk track berwarna hitam bukan putih, sehingga jika robot mendeteksi track hitam, dia akan
mengikui lajur track tersebut, bagaimana jika tidak ada track atau keluar jalur?, jika keluar jalur
maka robot akan otomatis mundur dan mencari track hitam untuk dilalui.

5.2.2 Rangkaian Hardware


Rangkaian hardware yang diperlukan untuk membuat robot line follower tidaklah
banyak yaitu hanya perlu rangkaian sensor, rangkaian minimum system, dan rangkaian motor
driver dua arah

a. Rangkaian Sensor
Rangkaian sensor yang digunakan untuk robot line follower menggunakan delapan
buah led putih super bright atau bisa juga diganti dengan led infra merah, namun harga untuk led
infra-merah dibanding led super bright agak jauh, maka untuk menghemat dipakai led putih

65
super bright, selain led komponen lainnya yaitu resistor 330 ohm sebanyak 8 buah dan resistor
4k8 ohm sebanyak 8 buah dan juga photo dioda sebanyak 8 buah, untuk skematiknya bisa dilihat
pada Gambar 5.2c dan Gambar 5.2d

Gambar 5.2c Skematik rangkaian Led putih / Infrared


Port ADC Mikrokontroller

Gambar 5.2d Skematik Rangkaian Sensor Photodioda

66
Bahan-Bahan :
1. 8 Buah Led Super Bright Putih / Led Infrared 3mm
2. 8 Buah Resistor 330 ohm
3. 8 Buah Resistor 4K7 ohm
4. 8 Buah Photodioda 3mm
5. 1 Buah Pinheader 8 Pin

Jadi untuk membuat bagian sensor robot diperlukan dua buah rangkaian yaitu
rangkaian led putih / infrared dan rangkaian photodiode, yang perlu diperhatikan untuk
pembuatan skematiknya harus pada satu project, maksudnya jika membuat rangkaian pada
Gambar 5.2c dan Gambar 5.2d haruslah berada dalam satu project schematic, jika menggunakan
software Cadsoft Eagle maka buatlah dua rangkaian tersebut dalam satu project / layar
schematic, jangan terpisah-pisah karena kedua rangkaian tersebut sejatinya adalah satu rangkaian
yang sengaja dibuat terpisah agar dapat dengan mudah dipahami.
Proses peletakkan kedua rangkaian tersebut tidaklah sembarangan, memerlukan
kejelian dan ke tepatan, karena jika peletakannya sembarangan maka rangkaian bisa tidak
berfungsi optimal atau bahkan tidak berfungsi sama sekali, maka penempatan rangkaian dan
komponen pada board haruslah diperhatikan, berikut adalah gambar 5.2e dari susunan komponen
pada sebuah board, lihat baik-baik penempatan led dan photo diode.

Gambar 5.2e Susunan Peletakan Komponen Pada Board Sensor

67
Keterangan :
Led Super Bright Putih / Infrared
Photo Dioda
Resistor 330 ohm

Resistor 4K7 ohm

Pinheader 8 Pin untuk ke port ADC mikrokontroler

Pinheader 2 pin untuk VCC 5v dan GND

b. Rangkaian Minimum System


Bahan-Bahan :

1. Crystal 12Mhz x 1 buah


2. ATMega32 + Socket 40 pin x 1 buah
3. Capasitor 22p x 2 buah
4. LCD Display x 1 buah
5. Resistor 4K7 x 1buah
6. Capasitor 104p x 4 buah
7. IC7805T x 1 buah
8. Capasitor polar 100uF x 1 buah
9. Capasitor polar 10uF x 1 buah
10. Capasitor 103p x 1 buah
11. Pinheader Male Secukupnya
12. Pinheader Female Secukupnya

68
Untuk rangkaian minimum system digunakan Minsys ATMega32, jika menggunakan
ATMega16 juga bisa, tergantung pada selera pembuat.

Tombol Reset

ADC Port

Downloader Port
Tombol

LCD

Regulator

Ke Motor Driver

Gambar 5.2f Skematik Rangkaian Minimum System ATMega32

Pada rangkaian minimum system dipakai 4 buah tombol yang terpasang pada port
B.0 sampai port B.3, dan port ADC dipakai untuk disambungkan ke rangkaian sensor, untuk port
yang terhubung ke motor driver dipakai port D dan port B.

69
c. Rangkaian Motor Driver Dua Arah

Motor Driver yang dipakai untuk robot line follower adalah motor driver dua arah,
terdapat dua buah tipe motor driver yaitu satu arah dan dua arah, untuk motor driver dua arah,
ada dua jenis yaitu motor driver dua arah menggunakan transistor MOSFET dan jenis lainnya
yaitu menggunakan L298, pada pembahasan motor driver kali ini menggunakan motor driver dua
arah dengan L298, berikut adalah gambar dari skematiknya.

5v 12v

12v 12v Motor DC

Gambar 5.2g Skematik Rangkaian Motor Driver 2 arah dengan L298

Bahan-Bahan :
1. 2 Buah Capasitor 104p
2. 8 Buah Dioda 1N4004
3. 1 Buah L298

Untuk system pemasangan motor driver ke rangkaian minimum system dapat dilihat
pada Gambar 5.2g, terdapat fungsi yang pada masing-masing port yang terdapat pada L298 maka
dari itu perlunya ketelitian dan keterampilan dalam menyambungkannya

70
ke PortD.5
ke PortD.4

ke PortD.2
ke PortD.3
ke PortD.1
ke PortD.0

Gambar 5.2h Sistem Pemasangan Motor Driver ke Mikrokontroller

Perlu diperhatikan pada ENABLE_A dan ENABLE_B, pada port tersebut adalah port
untuk PWM dari mikrokontroler yang masuk ke L298, apa fungsi dari PWM?, fungsi dari PWM
disini yaitu untuk mengatur kecepatan putaran motor, sehingga jika ingin motor DC berjalan
kencang maka isilah dengan nilai maksimal yaitu PWM = 255, jika ingin pelan isilah nilai PWM
= 50 atau 10, untuk pada program terletak pada bagian berikut.

Pwm1a = 200
Pwm1b = 200

Artinya PWM A diberikan nilai 200 dan PWM B diberikan nilai 200 juga, untuk
fungsi dari keempat input dari L298 yaitu untuk mengendalikan arah putaran motor (maju atau
mundur), berikut adalah table konfigurasi dari motor driver.

Tabel 5.2.1 Konfigurasi Input Motor Driver


PORT Maju Mudur Belok Kiri Belok Kanan
Enable_A 255 255 0 255
Enable_B 255 255 255 0
Input 1 0 1 0 0
Input 2 1 0 1 1
Input 3 1 0 1 1
Input 4 0 1 0 0

71
5.2.3 Program Bascom AVR

Pada bagian program bascom avr akan dibahas mengenai dua macam program untuk
robot line follower, yaitu program tanpa menggunakan PID Control dan program yang
menggunakan PID Control, berikut adalah program keduanya.

a. Program Robot Line Follower Tanpa PID Control


$regfile = "m32def.dat"
$crystal = 11059200

Dirkiri1 Alias Portd.2


Dirkiri2 Alias Portd.3
Dirkanan1 Alias Portd.6
Dirkanan2 Alias Portd.7

Config Portd.3 = Output


Config Portd.2 = Output
Config Portd.6 = Output
Config Portd.7 = Output
Config Portc.7 = Output
Tombol1 Alias Pinb.3
Tombol2 Alias Pinb.2
Tombol3 Alias Pinb.1
Tombol4 Alias Pinb.0
Config Pinb.0 = Input
Config Pinb.1 = Input
Config Pinb.2 = Input
Config Pinb.3 = Input
Set Portb.0
Set Portb.1
Set Portb.2
Set Portb.3
Reset Portc.7

Config Timer1 = Pwm , Pwm = 8 , Prescale = 64 , Compare A Pwm = Clear


Down , Compare B Pwm = Clear Down
Config Adc = Single , Prescaler = 8 , Reference = Avcc

Declare Sub Pwm(byval Kiri As Byte , Byval Kanan As Byte)


Declare Sub Isibobot
Declare Sub Bacaadc
Declare Sub Kalibrasi
Declare Sub Ceksensor
Declare Sub Setting
Declare Sub Aturpid
Declare Sub Liatadc
Declare Sub Cekregister

72
Declare Sub Maju_dikit

Dim Sensor As Byte


Dim Pilihan As Byte
Dim Kecepatan As Byte

Dim Regkan As Byte


Dim Regkir As Byte

Dim Pwm_ka_max As Integer , Pwm_ki_max As Integer , Pwm_ka As Integer


, Pwm_ki As Integer
Dim Kp As Byte , Kd As Byte , Ki As Byte , Sum_error As Integer , Diff
As Integer , Bobot As Integer , Bobot_lalu As Integer
Dim Kpeeprom As Eram Byte
Dim Kdeeprom As Eram Byte
Dim Kieeprom As Eram Byte
Dim Keceeprom As Eram Byte

Dim Prop As Integer , Deriv As Integer , Integ As Integer , Integral


As Single , X As Byte

Dim Vref0 As Word , Vref1 As Word , Vref2 As Word , Vref3 As Word ,


Vref4 As Word , Vref5 As Word , Vref6 As Word , Vref7 As Word
Dim Dataadc0 As Word , Dataadc1 As Word , Dataadc2 As Word , Dataadc3
As Word , Dataadc4 As Word , Dataadc5 As Word , Dataadc6 As Word ,
Dataadc7 As Word
Dim Eeprom0 As Eram Word , Eeprom1 As Eram Word , Eeprom2 As Eram Word
, Eeprom3 As Eram Word , Eeprom4 As Eram Word , Eeprom5 As Eram Word ,
Eeprom6 As Eram Word , Eeprom7 As Eram Word

Dim Href0 As Word , Href1 As Word , Href2 As Word , Href3 As Word ,


Href4 As Word , Href5 As Word , Href6 As Word , Href7 As Word
Dim Lref0 As Word , Lref1 As Word , Lref2 As Word , Lref3 As Word ,
Lref4 As Word , Lref5 As Word , Lref6 As Word , Lref7 As Word

Dim A As Byte
Sensor0 Alias Sensor.0
Sensor1 Alias Sensor.1
Sensor2 Alias Sensor.2
Sensor3 Alias Sensor.3
Sensor4 Alias Sensor.4
Sensor5 Alias Sensor.5
Sensor6 Alias Sensor.6
Sensor7 Alias Sensor.7
'=====================================================================
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
Cursor Off
'Deflcdchar 0 , 32 , 10 , 21 , 17 , 17 , 17 , 10 , 4
'=====================================================================
Inisialisasi:

73
Vref0 = Eeprom0
Vref1 = Eeprom1
Vref2 = Eeprom2
Vref3 = Eeprom3
Vref4 = Eeprom4
Vref5 = Eeprom5
Vref6 = Eeprom6
Vref7 = Eeprom7

'========================
Atur:
Cls
Locate 1 , 1
Lcd " ROBOMAN "
Locate 2 , 1
Lcd " set start"
Do
If Tombol1 = 0 Then
Call Setting
End If

If Tombol4 = 0 Then
Set Portc.7
Cls
Goto Utama
End If
Waitms 50
Loop
'================================== mulai =======================
Utama:
Do

Call Bacaadc
Call Ceksensor
Cls
Locate 2 , 5
Lcd Bin(sensor)

Select Case Pilihan


Locate 1 , 1
Case 1 : Lcd "DATAADC0= " ; Dataadc0
Case 2 : Lcd "DATAADC1= " ; Dataadc1
Case 3 : Lcd "DATAADC2= " ; Dataadc2
Case 4 : Lcd "DATAADC3= " ; Dataadc3
Case 5 : Lcd "DATAADC4= " ; Dataadc4
Case 6 : Lcd "DATAADC5= " ; Dataadc5
Case 7 : Lcd "DATAADC6= " ; Dataadc6
Case 8 : Lcd "DATAADC7= " ; Dataadc7
End Select

Call Ceksensor

74
If Sensor = &B10000000 Or Sensor = &B01000000 Or Sensor =
&B00100000 Or Sensor = &B11000000 Or Sensor = &B11100000 Or Sensor =
&B11110000 Then
Dirkiri1 = 0 ‘robot belok kiri
Dirkiri2 = 1
Dirkanan1 = 1
Dirkanan2 = 0
Pwm1a = 200
Pwm1b = 0

Elseif Sensor = &B00000001 Or Sensor = &B00000010 Or Sensor =


&B00000100 Or Sensor = &B00000011 Or Sensor = &B00000111 Or Sensor =
&B00001111 Then
Dirkiri1 = 0 ‘robot belok kanan
Dirkiri2 = 1
Dirkanan1 = 1
Dirkanan2 = 0
Pwm1a = 0
Pwm1b = 200

Elseif Sensor = &B00011000 Or Sensor = &B00111100 Or Sensor =


&B00001000 Or Sensor = &B00010000 Then
Dirkiri1 = 0
Dirkiri2 = 1 ‘robot jalan Lurus
Dirkanan1 = 1
Dirkanan2 = 0
Pwm1a = 200
Pwm1b = 200

Elseif Sensor = &B00000000 Then


Dirkiri1 = 1
Dirkiri2 = 0 ‘robot jalan mundur
Dirkanan1 = 0
Dirkanan2 = 1
Pwm1a = 100
Pwm1b = 100

End If
Loop
'===========================================
Sub Bacaadc:
Start Adc
Dataadc0 = Getadc(0)
Dataadc1 = Getadc(1)
Dataadc2 = Getadc(2)
Dataadc3 = Getadc(3)
Dataadc4 = Getadc(4)
Dataadc5 = Getadc(5)
Dataadc6 = Getadc(6)
Dataadc7 = Getadc(7)
Stop Adc

75
End Sub
'============================================
Sub Kalibrasi
Cls
Lcd "proses kalibrasi"

Do
Call Bacaadc

If Dataadc0 < Href0 Then Lref0 = Dataadc0


If Dataadc1 < Href1 Then Lref1 = Dataadc1
If Dataadc2 < Href2 Then Lref2 = Dataadc2
If Dataadc3 < Href3 Then Lref3 = Dataadc3
If Dataadc4 < Href4 Then Lref4 = Dataadc4
If Dataadc5 < Href5 Then Lref5 = Dataadc5
If Dataadc6 < Href6 Then Lref6 = Dataadc6
If Dataadc7 < Href7 Then Lref7 = Dataadc7

If Dataadc0 > Lref0 Then Href0 = Dataadc0


If Dataadc1 > Lref1 Then Href1 = Dataadc1
If Dataadc2 > Lref2 Then Href2 = Dataadc2
If Dataadc3 > Lref3 Then Href3 = Dataadc3
If Dataadc4 > Lref4 Then Href4 = Dataadc4
If Dataadc5 > Lref5 Then Href5 = Dataadc5
If Dataadc6 > Lref6 Then Href6 = Dataadc6
If Dataadc7 > Lref7 Then Href7 = Dataadc7

Waitms 50
Loop Until Tombol1 = 0

Vref0 = Lref0 + Href0


Vref1 = Lref1 + Href1
Vref2 = Lref2 + Href2
Vref3 = Lref3 + Href3
Vref4 = Lref4 + Href4
Vref5 = Lref5 + Href5
Vref6 = Lref6 + Href6
Vref7 = Lref7 + Href7

Vref0 = Vref0 / 2
Vref1 = Vref1 / 2
Vref2 = Vref2 / 2
Vref3 = Vref3 / 2
Vref4 = Vref4 / 2
Vref5 = Vref5 / 2
Vref6 = Vref6 / 2
Vref7 = Vref7 / 2

Eeprom0 = Vref0
Eeprom1 = Vref1
Eeprom2 = Vref2
Eeprom3 = Vref3

76
Eeprom4 = Vref4
Eeprom5 = Vref5
Eeprom6 = Vref6
Eeprom7 = Vref7

Kalibrasi_x:
Cls
Lcd "kalibrasi sukses"
Wait 2

Do
Call Ceksensor
Cls
Lcd Bin(sensor)
Waitms 50
Loop Until Tombol1 = 0
Goto Setting

End Sub

Sub Ceksensor

Call Bacaadc

If Dataadc0 > 922 Then


Sensor.0 = 1
End If
If Dataadc0 < 922 Then
Sensor.0 = 0
End If
If Dataadc1 > 900 Then
Sensor.1 = 1
End If
If Dataadc1 < 900 Then
Sensor.1 = 0
End If
If Dataadc2 > 890 Then
Sensor.2 = 1
End If
If Dataadc2 < 890 Then
Sensor.2 = 0
End If
If Dataadc3 > 989 Then
Sensor.3 = 1
End If
If Dataadc3 < 989 Then
Sensor.3 = 0
End If
If Dataadc4 > 960 Then
Sensor.4 = 1
End If
If Dataadc4 < 960 Then

77
Sensor.4 = 0
End If
If Dataadc5 > 994 Then
Sensor.5 = 1
End If
If Dataadc5 < 994 Then
Sensor.5 = 0
End If
If Dataadc6 > 989 Then
Sensor.6 = 1
End If
If Dataadc6 < 989 Then
Sensor.6 = 0
End If
If Dataadc7 > 967 Then
Sensor.7 = 1
End If
If Dataadc7 < 967 Then
Sensor.7 = 0
End If

End Sub
'=======================================

Liatadc:
Do
Call Bacaadc
Call Ceksensor
Cls
Locate 2 , 5
Lcd Bin(sensor)

Select Case Pilihan


Locate 1 , 1
Case 1 : Lcd "DATAADC0= " ; Dataadc0
Case 2 : Lcd "DATAADC1= " ; Dataadc1
Case 3 : Lcd "DATAADC2= " ; Dataadc2
Case 4 : Lcd "DATAADC3= " ; Dataadc3
Case 5 : Lcd "DATAADC4= " ; Dataadc4
Case 6 : Lcd "DATAADC5= " ; Dataadc5
Case 7 : Lcd "DATAADC6= " ; Dataadc6
Case 8 : Lcd "DATAADC7= " ; Dataadc7
End Select

If Tombol3 = 0 Then
Waitms 200
Incr Pilihan
If Pilihan > 8 Then Pilihan = 1
End If

If Tombol2 = 0 Then
Waitms 200

78
Decr Pilihan
If Pilihan < 1 Then Pilihan = 8
End If

If Tombol1 = 0 Or Tombol4 = 0 Then Goto Setting

Waitms 100
Loop
'========================================
Setting:

Cls
Locate 1 , 1
Lcd "ADC SENSOR PID"

Do
Waitms 200

If Tombol1 = 0 Then
Waitms 200
Goto Liatadc
End If

If Tombol2 = 0 Then
Waitms 200
Call Kalibrasi
End If

If Tombol4 = 0 Then
Waitms 200
Goto Atur
End If

Waitms 50
Loop
'================ selesai =====================

79
b. Program Robot Line Follower dengan PID Control
$regfile = "m32def.dat"
$crystal = 11059200

Dirkiri1 Alias Portd.3


Dirkiri2 Alias Portd.2
Dirkanan1 Alias Portd.6
Dirkanan2 Alias Portd.7

Config Portd.3 = Output


Config Portd.2 = Output
Config Portd.6 = Output
Config Portd.7 = Output
Config Portc.7 = Output

Tombol1 Alias Pinb.3


Tombol2 Alias Pinb.2
Tombol3 Alias Pinb.1
Tombol4 Alias Pinb.0

Config Pinb.0 = Input


Config Pinb.1 = Input
Config Pinb.2 = Input
Config Pinb.3 = Input

Set Portb.0
Set Portb.1
Set Portb.2
Set Portb.3
Reset Portc.7

Config Timer1 = Pwm , Pwm = 8 , Prescale = 64 , Compare A Pwm =


Clear Down , Compare B Pwm = Clear Down
Config Adc = Single , Prescaler = 8 , Reference = Avcc

Declare Sub Pwm(byval Kiri As Byte , Byval Kanan As Byte)


Declare Sub Isibobot
Declare Sub Bacaadc
Declare Sub Kalibrasi
Declare Sub Ceksensor
Declare Sub Setting
Declare Sub Aturpid
Declare Sub Liatadc
Declare Sub Cekregister
Declare Sub Maju_dikit

Dim Sensor As Byte


Dim Pilihan As Byte
Dim Kecepatan As Byte
Dim Regkan As Byte

80
Dim Regkir As Byte
Dim Pwm_ka_max As Integer , Pwm_ki_max As Integer , Pwm_ka As
Integer , Pwm_ki As Integer
Dim Kp As Byte , Kd As Byte , Ki As Byte , Sum_error As Integer ,
Diff As Integer , Bobot As Integer , Bobot_lalu As Integer
Dim Kpeeprom As Eram Byte
Dim Kdeeprom As Eram Byte
Dim Kieeprom As Eram Byte
Dim Keceeprom As Eram Byte

Dim Prop As Integer , Deriv As Integer , Integ As Integer , Integral


As Single , X As Byte

Dim Vref0 As Word , Vref1 As Word , Vref2 As Word , Vref3 As Word ,


Vref4 As Word , Vref5 As Word , Vref6 As Word , Vref7 As Word
Dim Dataadc0 As Word , Dataadc1 As Word , Dataadc2 As Word ,
Dataadc3 As Word , Dataadc4 As Word , Dataadc5 As Word , Dataadc6 As
Word , Dataadc7 As Word
Dim Eeprom0 As Eram Word , Eeprom1 As Eram Word , Eeprom2 As Eram
Word , Eeprom3 As Eram Word , Eeprom4 As Eram Word , Eeprom5 As Eram
Word , Eeprom6 As Eram Word , Eeprom7 As Eram Word

Dim Href0 As Word , Href1 As Word , Href2 As Word , Href3 As Word ,


Href4 As Word , Href5 As Word , Href6 As Word , Href7 As Word
Dim Lref0 As Word , Lref1 As Word , Lref2 As Word , Lref3 As Word ,
Lref4 As Word , Lref5 As Word , Lref6 As Word , Lref7 As Word

Dim A As Byte

Sensor0 Alias Sensor.0


Sensor1 Alias Sensor.1
Sensor2 Alias Sensor.2
Sensor3 Alias Sensor.3
Sensor4 Alias Sensor.4
Sensor5 Alias Sensor.5
Sensor6 Alias Sensor.6
Sensor7 Alias Sensor.7

'================================================================
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
Cursor Off
'Deflcdchar 0 , 32 , 10 , 21 , 17 , 17 , 17 , 10 , 4
'================================================================
Inisialisasi:
Kecepatan = Keceeprom
Pwm_ka_max = Kecepatan
Pwm_ki_max = Kecepatan
Bobot = 0
Bobot_lalu = 0

81
Vref0 = Eeprom0
Vref1 = Eeprom1
Vref2 = Eeprom2
Vref3 = Eeprom3
Vref4 = Eeprom4
Vref5 = Eeprom5
Vref6 = Eeprom6
Vref7 = Eeprom7

Kp = Kpeeprom
Kd = Kdeeprom
Ki = Kieeprom

Call Pwm(0 , 0)
'========================
Atur:
Cls
Locate 1 , 1
Lcd " KAIZEN "
Locate 2 , 1
Lcd " set start"
Do
If Tombol1 = 0 Then
Call Setting
End If

If Tombol4 = 0 Then
Set Portc.7
Cls
Goto Utama
End If
Waitms 50
Loop
'==================<mulai>========================================

Utama:
Call Ceksensor
If Sensor = &B00000000 Then
If Regkan > Regkir Then
Call Maju_dikit
Goto Belokkanan
End If
If Regkan < Regkir Then
Call Maju_dikit
Goto Belokkiri
End If
End If

Call Isibobot
If Bobot = 0 Then Sum_error = 0

82
Isi_pwm:
' kanan=max-(bobot*kp)-((bobot-bobot_lalu)*kd);
' kiri=max+(bobot*kp)+((bobot-bobot_lalu)*kd);
' bobot_lalu=bobot;
Prop = Kp * Bobot
Diff = Bobot - Bobot_lalu
Deriv = Kd * Diff

Sum_error = Sum_error + Bobot


Integral = Ki * Sum_error
Integral = Integral / 8
Integ = Integral

Pwm_ka = Pwm_ka_max - Prop


Pwm_ki = Pwm_ki_max + Prop
Pwm_ka = Pwm_ka - Deriv
Pwm_ki = Pwm_ki + Deriv
Pwm_ka = Pwm_ka - Integ
Pwm_ki = Pwm_ki + Integ

Bobot_lalu = Bobot

If Pwm_ka >= 0 And Pwm_ki >= 0 Then Gosub Maju


If Pwm_ka < 0 And Pwm_ki >= 0 Then Gosub Kanan ' batasan PWM
If Pwm_ka >= 0 And Pwm_ki < 0 Then Gosub Kiri

If Pwm_ka < 0 Then Pwm_ka = 0 - Pwm_ka


If Pwm_ki < 0 Then Pwm_ki = 0 - Pwm_ki

If Pwm_ka > Pwm_ka_max Then Pwm_ka = Pwm_ka_max


If Pwm_ki > Pwm_ki_max Then Pwm_ki = Pwm_ki_max

Pwm1a = Pwm_ka ' isi PWMnya


Pwm1b = Pwm_ki

X = 0
Response:
Incr X
Call Ceksensor

If Sensor = &B10000000 Or Sensor = &B11110000 Or Sensor =


&B11111000 Or Sensor = &B11111100 Then Goto Belokkiri
If Sensor = &B00000001 Or Sensor = &B00001111 Or Sensor =
&B00011111 Or Sensor = &B00111111 Then Goto Belokkanan
If Sensor = &B00011000 Then Goto Lurus
If Sensor = &B11100011 Or Sensor = &B11100001 Or Sensor =
&B11000001 Then Goto Belokkiri
If Sensor = &B11000111 Or Sensor = &B10000111 Or Sensor =
&B10000011 Then Goto Belokkanan

If Sensor = &B00000000 Then


If Regkan > Regkir Then

83
Call Maju_dikit
Goto Belokkanan
End If
If Regkan < Regkir Then
Call Maju_dikit
Goto Belokkiri
End If
Else
'Goto Utama
End If

Waitms 1
If X = 3 Then Goto Utama
Goto Response

'===========< sub movement >=======================================


Lurus:
Set Dirkanan1
Reset Dirkanan2
Set Dirkiri1
Reset Dirkiri2

Call Pwm(kecepatan , Kecepatan)


Goto Utama

Belokkiri:
Do
Set Dirkanan1
Reset Dirkanan2
Reset Dirkiri1
Set Dirkiri2
Call Pwm(150 , 150)
Call Ceksensor
Loop Until Sensor <> 0
Reset Regkir
Reset Regkan
Goto Utama

Belokkanan:
Do
Reset Dirkanan1
Set Dirkanan2
Set Dirkiri1
Reset Dirkiri2
Call Pwm(150 , 150)
Call Ceksensor
Loop Until Sensor <> 0
Reset Regkan
Reset Regkir
Goto Utama

84
Sub Maju_dikit
Do
Set Dirkanan1
Reset Dirkanan2

Set Dirkiri1
Reset Dirkiri2
Call Pwm(180 , 180)
Call Ceksensor
Loop Until Sensor = 0
End Sub

'=================================================================
Maju:
Set Dirkanan1
Reset Dirkanan2

Set Dirkiri1
Reset Dirkiri2
Return

Kanan:
Reset Dirkanan1
Set Dirkanan2

Set Dirkiri1
Reset Dirkiri2
Return

Kiri:
Set Dirkanan1
Reset Dirkanan2

Reset Dirkiri1
Set Dirkiri2
Return

'==================< sub pwm >===================================


Sub Pwm(byval Kiri As Byte , Byval Kanan As Byte)
Pwm1a = Kanan
Pwm1b = Kiri
End Sub

'===============< sub isi bobot >================================


Sub Isibobot:
Select Case Sensor
'Case &B00000001 : Bobot = 10
Case &B00000011 : Bobot = 9
Case &B00000111 : Bobot = 8
Case &B00000010 : Bobot = 7
Case &B00000110 : Bobot = 6

85
Case &B00001110 : Bobot = 5
Case &B00000100 : Bobot = 4
Case &B00001100 : Bobot = 3
Case &B00011100 : Bobot = 2
Case &B00001000 : Bobot = 1
Case &B00011000 : Bobot = 0
Case &B00010000 : Bobot = -1
Case &B00111000 : Bobot = -2
Case &B00110000 : Bobot = -3
Case &B00100000 : Bobot = -4
Case &B01110000 : Bobot = -5
Case &B01100000 : Bobot = -6
Case &B01000000 : Bobot = -7
Case &B11100000 : Bobot = -8
Case &B11000000 : Bobot = -9
'Case &B10000000 : Bobot = -10
End Select
End Sub

'===========================================
Sub Bacaadc:
Start Adc
Dataadc0 = Getadc(0)
Dataadc1 = Getadc(1)
Dataadc2 = Getadc(2)
Dataadc3 = Getadc(3)
Dataadc4 = Getadc(4)
Dataadc5 = Getadc(5)
Dataadc6 = Getadc(6)
Dataadc7 = Getadc(7)
Stop Adc
End Sub
'============================================
Sub Kalibrasi
Cls
Lcd "proses kalibrasi"

Do
Call Bacaadc

If Dataadc0 < Href0 Then Lref0 = Dataadc0


If Dataadc1 < Href1 Then Lref1 = Dataadc1
If Dataadc2 < Href2 Then Lref2 = Dataadc2
If Dataadc3 < Href3 Then Lref3 = Dataadc3
If Dataadc4 < Href4 Then Lref4 = Dataadc4
If Dataadc5 < Href5 Then Lref5 = Dataadc5
If Dataadc6 < Href6 Then Lref6 = Dataadc6
If Dataadc7 < Href7 Then Lref7 = Dataadc7

If Dataadc0 > Lref0 Then Href0 = Dataadc0


If Dataadc1 > Lref1 Then Href1 = Dataadc1
If Dataadc2 > Lref2 Then Href2 = Dataadc2

86
If Dataadc3 > Lref3 Then Href3 = Dataadc3
If Dataadc4 > Lref4 Then Href4 = Dataadc4
If Dataadc5 > Lref5 Then Href5 = Dataadc5
If Dataadc6 > Lref6 Then Href6 = Dataadc6
If Dataadc7 > Lref7 Then Href7 = Dataadc7

Waitms 50
Loop Until Tombol1 = 0

Vref0 = Lref0 + Href0


Vref1 = Lref1 + Href1
Vref2 = Lref2 + Href2
Vref3 = Lref3 + Href3
Vref4 = Lref4 + Href4
Vref5 = Lref5 + Href5
Vref6 = Lref6 + Href6
Vref7 = Lref7 + Href7

Vref0 = Vref0 / 2
Vref1 = Vref1 / 2
Vref2 = Vref2 / 2
Vref3 = Vref3 / 2
Vref4 = Vref4 / 2
Vref5 = Vref5 / 2
Vref6 = Vref6 / 2
Vref7 = Vref7 / 2

Eeprom0 = Vref0
Eeprom1 = Vref1
Eeprom2 = Vref2
Eeprom3 = Vref3
Eeprom4 = Vref4
Eeprom5 = Vref5
Eeprom6 = Vref6
Eeprom7 = Vref7

Kalibrasi_x:
Cls
Lcd "kalibrasi sukses"
Wait 2

Do
Call Ceksensor
Cls
Lcd Bin(sensor)
Waitms 50
Loop Until Tombol1 = 0
Goto Setting

End Sub

Sub Ceksensor

87
'Reset Regkan
'Reset Regkir

Call Bacaadc

If Dataadc0 > Vref0 Then


Sensor.0 = 1
Set Regkan.3
End If
If Dataadc0 < Vref0 Then
Sensor.0 = 0
End If

If Dataadc1 > Vref1 Then


Sensor.1 = 1
Set Regkan.2
End If
If Dataadc1 < Vref1 Then
Sensor.1 = 0
End If

If Dataadc2 > Vref2 Then


Sensor.2 = 1
Set Regkan.1
End If
If Dataadc2 < Vref2 Then
Sensor.2 = 0
End If

If Dataadc3 > Vref3 Then


Sensor.3 = 1
Set Regkan.0
End If
If Dataadc3 < Vref3 Then
Sensor.3 = 0
End If

If Dataadc4 > Vref4 Then


Sensor.4 = 1
Set Regkir.0
End If
If Dataadc4 < Vref4 Then
Sensor.4 = 0
End If

If Dataadc5 > Vref5 Then


Waitms 1

88
Sensor.5 = 1
Set Regkir.1
End If
If Dataadc5 < Vref5 Then
Waitms 1
Sensor.5 = 0
End If

If Dataadc6 > Vref6 Then


Waitms 1
Sensor.6 = 1
Set Regkir.2
End If
If Dataadc6 < Vref6 Then
Waitms 1
Sensor.6 = 0
End If

If Dataadc7 > Vref7 Then


Waitms 1
Sensor.7 = 1
Set Regkir.3
End If
If Dataadc7 < Vref7 Then
Waitms 1
Sensor.7 = 0
End If

End Sub
'=======================================

Liatadc:
Do
Call Bacaadc
Call Ceksensor
Cls
Locate 2 , 5
Lcd Bin(sensor)

Select Case Pilihan


Locate 1 , 1
Case 1 : Lcd "DATAADC0= " ; Dataadc0
Case 2 : Lcd "DATAADC1= " ; Dataadc1
Case 3 : Lcd "DATAADC2= " ; Dataadc2
Case 4 : Lcd "DATAADC3= " ; Dataadc3
Case 5 : Lcd "DATAADC4= " ; Dataadc4
Case 6 : Lcd "DATAADC5= " ; Dataadc5
Case 7 : Lcd "DATAADC6= " ; Dataadc6
Case 8 : Lcd "DATAADC7= " ; Dataadc7
End Select

89
If Tombol3 = 0 Then
Waitms 200
Incr Pilihan
If Pilihan > 8 Then Pilihan = 1
End If

If Tombol2 = 0 Then
Waitms 200
Decr Pilihan
If Pilihan < 1 Then Pilihan = 8
End If

If Tombol1 = 0 Or Tombol4 = 0 Then Goto Setting

Waitms 100
Loop
'========================================
Setting:

Cls
Locate 1 , 1
Lcd "ADC SENSOR PID"

Do
Waitms 200

If Tombol1 = 0 Then
Waitms 200
Goto Liatadc
End If

If Tombol2 = 0 Then
Waitms 200
Call Kalibrasi
End If

If Tombol3 = 0 Then
Waitms 200
Goto Aturpid
End If

If Tombol4 = 0 Then
Waitms 200
Goto Atur
End If

Waitms 50
Loop
'=====================================

Aturpid:

90
Do
Cls
Lcd "KP= " ; Kp

If Tombol3 = 0 Then
Incr Kp
Waitms 100
If Kp > 255 Then
Kp = 0
End If
End If

If Tombol2 = 0 Then
Decr Kp
Waitms 100
If Kp < 0 Then
Kp = 255
End If
End If

If Tombol1 = 0 Then
Kpeeprom = Kp
Exit Do
End If
Waitms 50

Loop

Waitms 200

Do
Cls
Lcd "KI= " ; Ki

If Tombol3 = 0 Then
Incr Ki
Waitms 100
If Ki > 255 Then
Ki = 0
End If
End If

If Tombol2 = 0 Then
Decr Ki
Waitms 100
If Ki < 0 Then
Ki = 255
End If
End If

If Tombol1 = 0 Then
Kieeprom = Ki

91
Exit Do
End If
Waitms 50
Loop

Waitms 200

Do

Cls
Lcd "KD= " ; Kd

If Tombol3 = 0 Then
Incr Kd
Waitms 100
If Kd > 255 Then
Kd = 0
End If
End If

If Tombol2 = 0 Then
Decr Kd
Waitms 100
If Kd < 0 Then
Kd = 255
End If
End If

If Tombol1 = 0 Then
Kdeeprom = Kd
Exit Do
End If
Waitms 50

Loop

Waitms 200

Do
Cls
Lcd "kec= " ; Kecepatan

If Tombol3 = 0 Then
Incr Kecepatan
Waitms 100
If Kecepatan > 255 Then
Kecepatan = 0
End If
End If

If Tombol2 = 0 Then
Decr Kecepatan

92
Waitms 100
If Kecepatan < 5 Then
Kecepatan = 255
End If
End If

If Tombol1 = 0 Then
Keceeprom = Kecepatan
Goto Setting
End If
Waitms 50
Loop
'==================< selesai >============

5.2.4 System Kalibrasi Robot


Perlu diperhatikan bahwa robot adalah suatu rangkaian pasif bukan-lah suatu alat
yang otomatis bisa berjalan tanpa pengecekan terlebih dahulu, maka dari itu perlunya kalibrasi
terhadap program di mikrokontroler untuk mengolah data masukan dari sensor, pada bagian
program robot line follower tanpa PID control terdapat program berikut

Sub Ceksensor

Call Bacaadc

If Dataadc0 > 922 Then


Sensor.0 = 1
End If
If Dataadc0 < 922 Then
Sensor.0 = 0
End If
If Dataadc1 > 900 Then
Sensor.1 = 1
End If
If Dataadc1 < 900 Then
Sensor.1 = 0
End If
If Dataadc2 > 890 Then
Sensor.2 = 1
End If
If Dataadc2 < 890 Then
Sensor.2 = 0
End If
If Dataadc3 > 989 Then
Sensor.3 = 1
End If
If Dataadc3 < 989 Then

93
Sensor.3 = 0
End If
If Dataadc4 > 960 Then
Sensor.4 = 1
End If
If Dataadc4 < 960 Then
Sensor.4 = 0
End If
If Dataadc5 > 994 Then
Sensor.5 = 1
End If
If Dataadc5 < 994 Then
Sensor.5 = 0
End If
If Dataadc6 > 989 Then
Sensor.6 = 1
End If
If Dataadc6 < 989 Then
Sensor.6 = 0
End If
If Dataadc7 > 967 Then
Sensor.7 = 1
End If
If Dataadc7 < 967 Then
Sensor.7 = 0
End If

End Sub

Penggalan program tersebut merupakan program utama atau program yang diambil
dari port ADC mikrokontroler, jadi jika terdapat masalah pada saat berjalannya robot mungkin
jadi penggalan program tersebut mengalami masalah, bagaimana cara untuk kalibrasinya?,
diambil contoh program yang pertama

If Dataadc0 > 922 Then


Sensor.0 = 1
End If
If Dataadc0 < 922 Then
Sensor.0 = 0
End If

Pada program tersebut terdapat angka 922, dari mana angka ini? Angka ini berasal
dari proses kalibrasi, program tersebut maksudnya adalah mengeksekusi nilai yang diambil oleh
port ADC 0 atau portA.0 pada mikrokontroller.

94
Untuk cara kalibrasinya pertama hubungkan rangkaian sensor yang telah dibuat ke
port ADC atau port A.0 sampai port A.7, dan juga hubungkan port VCC – GND pada rangkaian
sensor sehingga Led putih Super Bright atau infrared dapat menyala, jika menggunakan Led
infrared untuk melihat apakah dia menyala atau tidak bisa menggunakan kamera handphone
yang diarahkan ke Led Infrared tersebut, jika Infrared tersebut normal maka ia akan menyala
terang saat kamera handphone diarahkan padanya.
Setelah rangkaian sensor dan minimum system aktif, maka pada tampilan LCD
terdapat dua pilihan yaitu menu “start” dan “set”, pilihlah menu “set”, maka akan masuk ke
bagian kalibrasi ADC, tekanlah tombol 1 yaitu tombol pada portB.3 maka akan Nampak listADC
yang mana fungsinya untuk melihat nilai ADC yang diterima oleh mikrokontroller.
Siapkanlah dua buah kertas, yaitu satu kertas berwarna putih polos, dan satu kertas
berwarna hitam polos untuk digunakan untuk melihat nilai ADC yang diterima. Taruhlah
rangkaian sensor pada kertas putih dan catat hasilnya untuk ADC.0, kemudian taruh rangkaian
sensor pada kertas hitam, maka akan terlihat perbedaan nilai ADC yang diterima, begitupula
dengan pengecekan ADC.1 sampai ADC.7, misal nilai ADC.0 yang didapat pada kertas putih
adalah 822 dan pada kertas hitam adalah 1022, dari nilai ini dapat diklasifikasikan yaitu dengan
mengambil nilai tengah dari keduanya, dari range 1022 sampai 822 diambil nilai tengah yaitu
922, sehingga jika nilai kurang dari 922 adalah untuk nilai putih dan nilai lebih dari 922 adalah
untuk nilai hitam, begitu pula dengan kalibrasi port ADC yang lain.
Pada program yang ditampilkan adalah program untuk nilsi kalibrasi ADC seperti
yang tertera pada tabel berikut:

Tabel 5.2.2 Tabel Kalibrasi ADC Sensor


Port ADC Nilai ADC pada Nilai ADC pada Nilai tengah
Kertas Putih Kertas Hitam

ADC.0 822 1022 922


ADC.1 800 1000 900
ADC.2 780 1020 890
ADC.3 800 1020 989
ADC.4 810 1021 960

95
ADC.5 812 1024 994
ADC.6 811 1023 989
ADC.7 811 1012 967

Sehingga dari data table diatas jika sensor mengenai medan berwarna hitam akan
dihasilkan nilai 1 dan jika mengenai medan putih akan dihasilkan nilai 0, karena terkena
eksekusi program yang di Bold berikut

If Dataadc0 > 922 Then


Sensor.0 = 1
End If
If Dataadc0 < 922 Then
Sensor.0 = 0
End If

5.2.5 Cara Penggunaan Robot

Cara penggunaan robot line follower ini pertama pilih tampilan pada menu “Set”,
maka akan masuk ke menu kalibrasi, jika sensor sudah membaca dengan baik pada track,
langkah kedua yaitu menyimpan nilai kalibrasi tersebut dengan menekan tombol 2, setelah itu
kembali ke menu awal dengan menekan tombol 4, sehingga akan tampak tampilan awal “set”
dan “start”, pilihlah menu “start” yang menandakan robot siap untuk dijalankan.

NOTE:
Jika mengalami kesulitan dalam penulisan program robot line follower diatas karena terlalu
panjang, Anda dapat meminta program tersebut pada penulis dengan mengirimkan ke E-mail =
yanuarm@hotmail.com dijamin gratis dan akan diberikan program tersebut secepatnya

96
5.3 Membuat Robot Balancing / Robot Keseimbangan

Membuat robot keseimbangan, apa itu robot keseimbangan?, sebelum dijelaskan


lebih lanjut mengenai pembuatannya, sebaiknya harus mengetahui terlebih dahulu definisi dan
maksud dari robot keseimbangan itu sendiri, robot keseimbangan adalah robot yang dapat berdiri
dengan seimbang menggunakan dua roda sebagai tumpuan, sehingga robot tidak akan jatuh
tersungkur ke bawah melainkan robot akan berusaha untuk berdiri dan menyeimbangkan
keadaan, itulah gambaran dari robot keseimbangan, untuk gambarnya seperti gambar 5.3a
Komponen untuk pembuatan robot keseimbangan ini tidak lah banyak hanya
memerlukan sedikit kreatifitas dalam penyusunan hardware agar bisa didapat keseimbangan
yang tepat dan maksimal, komponennya antara lain sensor accelerometer MMA7361, roda mobil
RC atau lainnya yang berdiameter besar, rangkaian minimum system ATMega16, dan motor
driver dua arah.
Sensor MMA7361
Motor Driver

Minimum System Body


Body Motor Driver

Minimum System

Roda
Roda

Gambar 5.3a Tampilan Robot Balancing Tampak Depan dan Samping

5.3.1 Fungsi dan Tujuan

Fungsi dari pembuatan robot balancing ini yaitu untuk dapat mengetahui bagaimana
cara untuk membuat suatu robot balancing dari proses pembuatan hardware, pembuatan
software, dan penyusunan hardware pada robot, untuk tujuan dari pembuatan robot yaitu agar
robot ini dapat dikembangkan kearah yang lebih bermanfaat bagi manusia terutama untuk
membantu keseharian hidup manusia.

97
5.3.2 Prinsip kerja Robot

Prinsip kerja robot ini hanyalah sederhana, yaitu robot akan berusaha untuk
menyeimbangkan keadaan akan sudut kemiringan yang diterima, dan juga robot akan bergerak
maju dan mundur untuk mendapatkan titik keseimbangan.
Robot ini menggunakan system minimum ATMega16 sebagai otak dan pusat kendali
robot, memang kapasitas volume flash dari ATMega16 ini kecil dari pada ATmega32 namun
cukup untuk menjalankan program robot balancing ini secara bagus dan tepat. Robot ini juga
menggunakan sensor kemiringan yaitu sensor accelerometer MMA7361, yang mana sensor ini
bisa mendeteksi kemiringan sumbu X, sumbu Y dan sumbu Z, dengan range atau panjang nilai
setiap sumbu yaitu 1 sampai 5.
Robot ini juga menggunakan motor driver dua arah atau bi-direction, yaitu motor
driver yang dapat mengendalikan motor DC kearah depan dan belakang, sehingga akan membuat
robot dapat berjalan ke depan dan mundur kebelakang guna memperoleh titik seimbang, untuk
titik seimbang pada robot yaitu 3, dari range nilai 1 sampai 5 diambil nilai tengahnya yaitu 3,
artinya jika mikrokonroler mendeteksi nilai 3 pada sensor maka robot telah menemukan titik
keseimbangannya, maka robot akan diam sejenak dan berusaha untuk tidak jatuh, berikut ini
adalah bagan dari prinsip kerja keseleluruhan kerja robot.

Sensor Accerometer
lerometer Motor Driver dua
MMA7361 arah / bi-direction

Minimum System Motor DC


ATMega16 12 V

Jadi robot ini hanya mengandalkan sensor accelerometer MMA7361 sebagai mata
dari robot, yang mana data dari sensor akan dikirimkan ke system minimum untuk diolah
sehingga mendapatkan nilai dan kondisi-kondisi untuk mengendalikan motor DC melalui motor
driver, sebenarnya cara kerja robot keseimbangan ini bisa dibilang sederhana, yaitu jika robot
mengalami kemiringan sumbu x = 2 dengan kata lain robot akan jatuh ke depan, maka robot
akan otomatis berjalan maju / kedepan supaya tidak jatuh begitu pula sebaliknya, dengan

98
pergerakan kedepan dan kebelakang itu lah cara robot untuk menyeimbangkan dirinya agar tidak
jatuh tersungkur ke depan atau ke belakang.

X = 4 atau 5
X = 2 atau 1 X=3

maju mundur

diam

5.3.3 Rangkaian Hardware

Seperti yang telah dijelskan sebelumnya, robot ini hanya diperlukan beberapa
komponen hardware dan rangkaian hardware, untuk komponen hardware yang diperlukan yaitu
sensor accelerometer MMA7361, motor DC, system penyangga dan roda RC atau sejenisnya
yang berdiameter besar, untuk rangkaian hardaware hanya diperlukan rangkaian minimum
system dan rangkaian motor driver dua arah / bi-direction. Berikut adalah penjelasan masing-
masing komponennya.

a. Sensor Accelerometer MMA7361

Sensor Accelerometer MMA7361 ini mudah untuk digunakan, karena dia hanya
memerlukan catu daya VCC 5v dan GND untuk tiap-tiap sumbu yang akan digunakan, dan juga
tiap-tiap sumbu telah tersedia port Vout yang akan digunakan untuk pengolahan ke
mikrokontroller. Untuk gambar dan konfigurasinya seperti Gambar 5.3b

99
Gambar 5.3b Tampilan Sensor MMA7361 dan Konfigurasi Port-nya

Untuk menghubungkan antara sensor MMA7361 dengan mikrokontroller seperti pada


gambar 5.3c yang mana hanya port Xout, Yout dan Zout yang akan digunakan oleh
mikrokontroller untuk pengambilan data, port yang lain hanya perlu dihubungkan ke VCC dan
GND mikrokontroller.

Xout ke Port A.0

Yout ke Port A.1

Zout ke Port A.2

Gambar 5.3c Konfigurasi Sensor ke Mikrokontroller

100
b. Rangkaian Minimum System ATMega16

Bahan-Bahan :

1. Crystal 12Mhz x 1 buah


2. ATMega16 + Socket 40 pin x 1 buah
3. Capasitor 22p x 2 buah
4. LCD Display x 1 buah
5. Resistor 4K7 x 1buah
6. Capasitor 104p x 4 buah
7. IC7805T x 1 buah
8. Capasitor polar 100uF x 1 buah
9. Capasitor polar 10uF x 1 buah
10. Capasitor 103p x 1 buah
11. Pinheader Male Secukupnya
12. Pinheader Female Secukupnya

Ke sensor

Downloader

LCD

Regulator

Ke Motor driver

Gambar 5.3d Minimum System ATMega16

101
c. Rangkaian Motor Driver Dua arah / Bi-direction

Motor Driver yang dipakai untuk robot balancing adalah motor driver dua arah,
seperti yang telah dijelaskan sebelumnya, yaitu terdapat dua buah tipe motor driver yaitu satu
arah dan dua arah, untuk motor driver dua arah ada dua jenis yaitu motor driver dua arah
menggunakan transistor MOSFET dan jenis lainnya yaitu menggunakan L298, pada pembahasan
motor driver kali ini menggunakan motor driver dua arah dengan L298, berikut adalah gambar
dari skematiknya.

5v 12v

12v 12v Motor DC

Gambar 5.3e Skematik Rangkaian Motor Driver 2 arah dengan L298

Bahan-Bahan :
1. 2 Buah Capasitor 104p
2. 8 Buah Dioda 1N4004
3. 1 Buah L298

102
Untuk system pemasangan motor driver ke rangkaian minimum system dapat dilihat
pada Gambar 5.3f, terdapat fungsi yang pada masing-masing port yang terdapat pada L298 maka
dari itu perlunya ketelitian dan keterampilan dalam menyambungkannya

ke PortD.5
ke PortD.4

ke PortD.2
ke PortD.3
ke PortD.1
ke PortD.0

Gambar 5.3f Sistem Pemasangan Motor Driver ke Mikrokontroller

Perlu diperhatikan pada ENABLE_A dan ENABLE_B, pada port tersebut adalah port
untuk PWM dari mikrokontroler yang masuk ke L298, apa fungsi dari PWM?, fungsi dari PWM
disini yaitu untuk mengatur kecepatan putaran motor, sehingga jika ingin motor DC berjalan
kencang maka isilah dengan nilai maksimal yaitu PWM = 255, jika ingin pelan isilah nilai PWM
= 50 atau 100, untuk pada program terletak pada bagian berikut.

Pwm1a = 100
Pwm1b = 100

Artinya PWM A diberikan nilai 100 dan PWM B diberikan nilai 200 juga, untuk
fungsi dari keempat input dari L298 yaitu untuk mengendalikan arah putaran motor (maju atau
mundur), berikut adalah table konfigurasi dari motor driver.

Tabel 5.3.1 Konfigurasi Input Motor Driver


PORT Maju Mudur Belok Kiri Belok Kanan
Enable_A 255 255 0 255
Enable_B 255 255 255 0
Input 1 0 1 0 0

103
Input 2 1 0 1 1
Input 3 1 0 1 1
Input 4 0 1 0 0

5.3.4 Program Bascom AVR

'------------------
'balancer Robot
'by yanuar mukhammad
'------------------
$regfile = "m32def.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 Timer1 = Pwm , Pwm = 8 , Prescale = 64 , Compare A Pwm = Clear
Down , Compare B Pwm = Clear Down
Config Adc = Single , Prescaler = Auto , Reference = Avcc

Dirkiri1 Alias Portd.0


Dirkiri2 Alias Portd.1
Dirkanan1 Alias Portd.2
Dirkanan2 Alias Portd.3

Config Portd.0 = Output


Config Portd.1 = Output
Config Portd.2 = Output
Config Portd.3 = Output

Dim Adcx As Word


Dim Adcy As Word
Dim Sumbux As Single
Dim Sumbuy As Single
Dim Adcz As Word
Dim Sumbuz As Single

'------------------------
Deflcdchar 0 , 31 , 31 , 31 , 31 , 31 , 31 , 31 , 31
Deflcdchar 1 , 31 , 17 , 17 , 17 , 17 , 17 , 17 , 31
Cls
Cursor Off
Start Adc
Do
Adcx = Getadc(0) 'ambil nilai adc 0
Sumbux = Adcx / 100
Adcy = Getadc(1) 'ambil nilai adc 1
Sumbuy = Adcy / 100

104
Adcz = Getadc(2) 'ambil nilai adc 2
Sumbuz = Adcz / 100

Locate 1 , 1
Lcd "x=" ; Fusing(sumbux , "#.#")
Locate 2 , 1
Lcd "y=" ; Fusing(sumbuy , "#.#")
Locate 2 , 8
Lcd "z=" ; Fusing(sumbuz , "#.#")

If Sumbuy < 3.8 Then


Dirkiri1 = 0
Dirkiri2 = 1
Dirkanan1 = 1
Dirkanan2 = 0
Pwm1a = 50
Pwm1b = 50

Elseif Sumbuy > 3.8 Then


Dirkiri1 = 1
Dirkiri2 = 0
Dirkanan1 = 0
Dirkanan2 = 1
Pwm1a = 50
Pwm1b = 50

Elseif Sumbuy = 3.8 Then


Dirkiri1 = 0
Dirkiri2 = 0
Dirkanan1 = 0
Dirkanan2 = 0
Pwm1a = 0
Pwm1b = 0

End If

Loop
'------------------------ end

105
5.3.5 Sistem Penggunaan Robot

Perlu diperhatikan bahwa sebelum penggunaan robot ini harus dikalibrasi sedikit
pada tampilan nilai sensor pada LCD display, jadi sebelum robot digunakan baiknya sensor
dikalibrasi dengan cara memiringkan sensor kearah sumbu x dan y agar terlihat perbedaan antara
kedua nilai sumbu tersebut, jika sudah tepat dan cocok seperti yang ada di program Bascom,
maka robot siap digunakan.
Cara penggunaan robot ini hanya perlu meletakkan robot pada suatu dataran yang
tidak memiliki kemiringan seperti di lantai atau di atas meja yang datar, maka robot akan
berfungsi sebagaimana mestinya.

106
5.4 Membuat Robot Remote Control Dengan Remote TV
Disini akan dibahas mengenai pembuatan robot yang pergerakannya dikontrol
menggunakan remote TV, yang mana robot ini menggunakan mikrokontroler ATMega16
sebagai otak pengolah data, seperti halnya mobil remote control yang menggunakan remote
control sebagai alat pengendalinya. Untuk gambar jadinya seperti berikut ini

Gambar 5..4a Bentuk dari Robot Remote Control dengan Remote TV

5.4.1 Fungsi Dan Tujuan


Tujuan dibuatnya robot ini adalah untuk mengetahui sistem kerja dari robot yang
dikendalian oleh remote TV. yang mana remote TV yang sebenarnya digunakan untuk
mengatur kondisi TV, sekarang diubah menjadi alat untuk mengendalikan jalannya robot.
Untuk fungsinya yaitu untuk dikembangkan menjadi robot yang bermanfaat bagi manusia

5.4.2 Prinsip kerja Robot


Prinsip kerja dari robot ini yaitu menggunakan sebuah remote TV sebagai
transmitter data dari tombol yang ditekan pada remote, dan sebagai receivernya yaitu sebuah
rangkaian TSOP yang dipasang pada rangkaian minimum system, sehingga data transmitter
dari remote TV dapat dibaca oleh mikrokontroler ATMega16 melalui rangkaian TSOP.
Sistem pembacaan dari mikrokontroler terlebih dahulu haruslah ditampilkan pada
layar LCD, agar dapat diketahui angka / data dari setiap tombol dari remote TV yang ditekan.
Maka dari itu rangkaian minimum system menggunakan layar LCD sebagai media penampil

107
data dari remote TV. Terdapat sebuah buzzer pada rangkaian minimum system yang mana
untuk memberikan suatu sinyal atau bell untuk robot, sehingga robot makin terlihat lebih
canggih dan bagus. Berikut adalah bagan dari system robot remote control berbasis remote
TV ini.

Remote Rangkaian Minimum LCD dan


TV TSOP System BUZZER
ATMega16

Motor MOTOR
Driver DC

Jadi data yang dikirimkan oleh Remote TV, ditangkap oleh rangkaian TSOP yang
kemudian dikirimkan ke rangkaian minimum system ATMega16 sebagai media pengolah
data. Data yang terbaca akan dilakukan eksekusi yaitu bisa dengan menampilkan data pada
layar LCD, bisa menghidupkan buzzer dan juga bisa membuat motor driver menggerakkan
motor DC. Sehimgga jika motor DC bergerak, akan membuat robot berjalan.

5.4.3 Rangkaian Hardware


Untuk membuat rangkaian hardware pada robot ini, hanya memerlukan beberapa
komponen alat yang digunakan yaitu remote TV, rangkaian TSOP, minimum system, motor
driver, dan rangkaian buzzer.
a. Remote TV
Remote TV yang digunakan yaitu remote TV Sony, yang mana remote TV Sony
telah diketahui mengenai data tiap-tiap tombolnya, dan sistem password datanya. Untuk
menggunakan tipe remote TV yang lain juga bisa, namun terlebih dahulu dibaca mengenai
data password yang terkandung di Timer 0 mikrokontroler, kemudian jika telah diketahui
data password remote itu, tinggal menampilkan hasil decoder perintah tiap tombol dari
mikrokontroler ke layar LCD. Berikut adalah tampilan dari remote Sony yang digunakan.

Gambar 5.4b Bentuk Dari Remote TV SONY

108
b. Rangkaian TSOP
Seperti yang telah dijelaskan sebelumnya, ragkaian TSOP merupakan rangkaian
yang berfungsi sebagai receiver data dari remote TV, sehingga data dari remote TV bisa
diterima dan dibaca dengan baik oleh mikrokontroler. Berikut adalah bentuk dari TSOP dan
konfigurasinya.

Gambar 5.4c Bentuk dari TSOP Gambar 5.4d Konfigurasi dari TSOP

TSOP jika tanpa rangkaian pendukungnya tidak akan dapat berfungsi,


dikarenakan TSOP memerlukan suatu sinyal yang outputnya bisa stabil yang berupa output
pulsa, maka dari itu diperlukan suatu rangkaian agar output / pulse sehingga keluarannya
dapat dibaca dengan baik oleh mikrokonroler. Berikut adalah skematik dari rangkaian TSOP.

Ke Minimum System
Pada Pin INT0

Gambar 5.4e Skematik Rangkaian TSOP

Bahan-bahan:
a. Kapasitor polar 10uF x 1 buah
b. Resistor 470ohm x 1 buah

109
c Minimum System ATMega16
Membuat rangkaian minimum sistem sebenarnya tidaklah harus sama persis
dengan yang ada di contoh ini, di contoh ini hanyalah contoh dari sustu minimum system
ATMega16 seperti yang telah dijelaskan sebelumnya, untuk itu bisa dimodifikasi sendiri
mengenai port I/O yang akan digunakan.

Daya Motor Motor Driver Pulse

BUZZER

LCD

REGULATOR

Gambar 5.4f Skematik Minimum System ATMega16 TSOP Port

Minimum system yang digunakan sebenarnya sama dengan yang telah dijelaskan
sebelumnya yaitu minimim sytem ATMega16 karena menggunakan ATMega16 sebagai
sistem kendalinya. Untuk bahan-bahannya sama dengan yang telah dijelaskan pada bab
minimum system, hanya dimodifikasi pada bagian port I/O untuk rangkaian buzzer dan
rangkaian TSOP. Pada gambar 5.4f terdapat port LCD display yang digunakan untuk
menampilkan data dari proses decoder mikrokontroler. Terdapat pula rangkaian regulator
dimaksudkan agar robot bisa menggunakan battery 9v. untuk rangkaian TSOP dipasangkan
pada pin16 yaitu pada PORT INT0 karena sistem keluaran TSOP yang berbentuk pulse
sehingga harus dilakukan decoder terlebih dahulu melalui port INT0 dan pengaturan Timer.
Port untuk buzzer terletak pada portB.0. untuk PortB.1 dan portB.2 untuk motor driver pulse.

110
d. Rangkaian Buzzer
Rangkaian Buzzer berfungsi untuk memberikan suara pada saat port yang
dipasang buzzer aktif atau bernilai 1 sehingga terdapat tegangan dari mikrokontroler yang
bisa membangkitkan suara pada buzzer. Berikut adalah gambar dari buzzer dan skematiknya.

Ke portB.0

Gambar 5.4g Rangkaian buzzer Gambar 5.4h Bentuk Buzzer

Bahan-bahan:
a. Buzzer x 1 buah
b. Resistor 2k2 ohm x 1 buah
c. Transistor BC141 x 1 buah

Dari Gambar 5.4g terdapat transistor BC141 yang mana fungsinya pada
rangkaian buzzer ini adalah sebagai saklar atau seperti tombol ON/OFF, jadi pada bagian
collector dan emitter tidak terhubung jika pada bagian base tidak terdapat tegangan, maka
buzzer tidak akan berbunyi, karena ground rangkaian terputus, namun jika terdapat tegangan
pada bagian base, maka collector dan emitter akan terhubung, sehingga buzzer akan berbunyi
karena buzzer mendapat ground rangkaian

e. Motor Driver
Motor driver terdapat dua jenis yaitu motor driver yang bisa menjalankan motor
DC dua atah dan satu arah. Jika dua arah berarti motor DC bisa menjalankan maju dan
mundur, namun jika satu arah maka hanya bisa maju saja atau mundur saja. Pada robot ini
menggunakan tipe driver motor yang satu arah. Seperti pada gambar 5.9.

111
Ke portB.1 dan ke portB.2
Gambar 5.4i Motor Driver Satu Arah

Bahan-Bahan
a. motor DC 12v x 2 buah
b. Transistor BC141 x 2 buah
c. Resistor 2k2 ohm x 2 buah
d. Pinheader tunggal
e. Dioda 1N4001 x 2 buah

Tabel 5.4.1 Cara kerja Pulsa Motor Driver


PortB.1 PortB.2 Keterangan
1 1 -----
0 0 Berhenti
1 0 Belok ke arah kanan
0 1 Belok ke arah kiri

5.4.4 Program BASCOM-AVR


'==========================================================================
'Programmer: Yanuar Mukhammad
'E-mail : Yanuarm@hotmail.com
'==========================================================================
$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 Timer0 = Timer , Prescale = 256
Stop Timer0

112
Config Pind.3 = Input
Set Portd.3
Pin_ir Alias Pind.3
Config Int1 = Falling
On Int1 Isr_int1
$baud = 9600
Ddrb.0 = 1
Ddrb.1 = 1
Ddrb.2 = 1
Dim Data_ir As Word
Dim Cnt_ir As Byte
Dim Flag_ir_start As Bit
Dim Flag_ir_ok As Bit
Dim Suhu_ref As Word
Dim Suhu As Word
Cls
Cursor Off
Locate 1 , 3
Lcd "SONY DECODER"
Wait 1
Enable Interrupts
Enable Int1
Do
If Flag_ir_ok = 1 Then
Reset Flag_ir_ok
Disable Int1
Gosub Isr_int1
Print "Data= " ; Data_ir
Cls
Cursor Off
Locate 1 , 3
Lcd "Data= " ; Data_ir
If Data_ir = 128 Then
Locate 1 , 1
Lcd "**BUZZER***"
Portb.0 = 1
Else
Portb.0 = 0
End If
If Data_ir = 244 Then
Cls
Lcd "MOTOR MAJU"
Portb.1 = 1
Portb.2 = 1
End If
If Data_ir = 179 Then
Cls
Lcd "MOTOR KIRI"
Portb.1 = 0
Portb.2 = 1
End If
If Data_ir = 180 Then
Cls
Lcd "MOTOR KANAN"
Portb.1 = 1
Portb.2 = 0
End If
If Data_ir = 149 Then
Cls
Lcd "STOP"
Portb.1 = 0

113
Portb.2 = 0
End If
Reset Flag_ir_ok
Enable Int1
End If
Wait 1
Loop
Isr_int1:
Timer0 = 0
Start Timer0
Bitwait Pin_ir , Set
Stop Timer0
If Cnt_ir = 0 Then
If Timer0 > 110 And Timer0 < 120 Then
Set Flag_ir_start
Incr Cnt_ir
End If
End If
If Flag_ir_start = 1 And Cnt_ir > 0 Then
Decr Cnt_ir
If Timer0 < 32 Then
Data_ir.cnt_ir = 0
Else
Data_ir.cnt_ir = 1
End If
Cnt_ir = Cnt_ir + 2
If Cnt_ir > 11 Then
Shift Data_ir , Right , 1
Reset Flag_ir_start
Set Flag_ir_ok
Cnt_ir = 0
End If
End If
Return

5.4.5 Sistem Penggunaan Robot


Untuk penggunaan robot ini hanya menekan tombol pada remote SONY seperti
gambar 5.4j, untuk robot maju hanya perlu menekan tombol maju, agar berjalan ke kiri
tinggal tekan ke kiri begitu pula dengan ke arah kanan.

Maju

Belok ke kiri Belok Ke kanan

Gambar 5.4j Sistem Kendali Remote TV

114
5.5 Membuat Robot Remote Control Dengan Bluetooth
Pada bagian ini akan dibahas mengenai pembuatan dari robot yang jalannya
dikendalikan oleh komputer melalui media bluetooth. Jadi sistemnya yaitu menggerakkan
robot melalui komputer secara wireless. Robot ini menggunakan mikrokontroler ATMega8
sebagai otak dan pusat pengendali aktifitas dari robot tersebut. Berikut adalah gambar dari
robot tersebut.

Gambar 5.5a Bentuk dari Robot Bluetooth

Untuk robot ini menggunakan pengendali komputer, sehingga diperlukan


komunikasi serial untuk dapat berkomunikasi antara mikrokontroler dengan komputer, jika
yang dibahas sebelumnya yaitu komunikasi serial menggunakan kabel USB dan Kabel serial,
namun pada robot ini menggunakan komunikasi serial secara wireless, dengan menggunakan
dua buah bluetooth device sebagai transmitter / master dan receiver / slave.

5.5.1 Fungsi Dan Tujuan


Tujuan dibuatnya robot ini yaitu untuk mengetahui komunikasi serial secara
wireless antara komputer dengan mikrokontroler melalui perantara bluetooth. Untuk fungsi
yaitu agar dapat dikembangkan menjadi suatu sistem alat canggih yang lain yang berbasis
komunikasi bluetooth.

5.5.2 Prinsip kerja Robot


Prinsip kerja dari robot ini yaitu menggunakan bluetooth device sebagai media
komunikasi dari komputer dengan mikrokontroler ATMega8, yang mana komputer hanya
menekan tombol angka 1 pada keyboard komputer untuk robot berjalan lurus, tombol angka 2
untuk robot berbelok ke kiri, tombol angka 3 untuk robot belok ke kanan, dan tomnol angka 4
untuk robot dapat berhenti. Sebagai master atau transmitter dari komputer menggunakan

115
bluetooth USB dongle, dan untuk slave / receiver-nya menggunakan modul bluetooth JY-
MCU v1.03. untuk lebih jelasnya perhatikan bagan berikut ini.

Wireless
KOMPUTER MINIMUM MOTOR
USB BT JY-MCU SYSTEM DRIVER
DONGLE V.103

Kabel konektor USB male to female Rx, Tx, Vcc, Gnd


MOTOR
DC

Pada bagan diatas dapat diperhatikan mengenai komunikasi serial secara wireless
ini, karena ini merupakan titik terawan untuk adanya error saat komunikasi data. Komputer
yang digunakan haruslah support dengan bluetooth hardware device, dan terdapat software
yang biasa digunakan untuk komunikasi bluetooth yaitu Bluesoleil, yang mana software ini
sudah banyak beredar di internet dan termasuk software yang umum digunakan untuk
komunikasi serial secara wireless dengan bluatooth device.

5.5.3 Rangkaian Hardware


Rangkaian hardware pada robot ini cukup simple dan mudah untuk
pembuatannya, karena hanya menggunakan beberapa item penyusun, yaitu modul bluetooth
JY-MCU v1.03, USB bluetooth dongle, rangkaian minimum system ATMega8 dan rangkaian
motor driver.
a. USB Bluetooth dongle
Media komunikasi dari komputer menuju ke mikrokontroler memerlukan
perantara yaitu menggunakan USB Bluetooth dongle. Device ini bisa melakukan pengiriman
dan penerimaan data dari bluetooth yang dituju, sehingga untuk komunikasi bolak balik
cukup mendukung. Beriku gambar dari device ini.

Gambar 5.5b Bentuk USB BT Dongle

116
Jarak maksimal dari bluetooth untuk device ini yaitu sekitar 10 meter, jadi jika
robot lebih dari 10 meter maka akan tidak terkendali karena bluetooth tidak bisa menjangkau
receiver / slave yang terdapat pada mikrokontroler. Perlu dipehatikan untuk pemasangan USB
bluetooth dongle, pemasangan secara langsung ke laptop atau komputer PC melalui port USB
tidak akan bisa, maksudnya USB Bluetooth dongle tidak akan bisa aktif, maka dari itu
diperlukan adanya kabel penghubung yang berupa kabel USB male to female untuk dapat
mengaktifkan device BT Dongle ini.

b. Bluetooth JY-MCU
Sebagai slave atau receiver dari USB bluetooth dongle, maka lebih tepat
menggunakan modul slave yang bernama JY-MCU v1.03, untuk versi bisa apa saja, namun
yang dipakai pada pembahasan kali ini yaitu JY-MCU yang versi 1.03. berikut adalah bentuk
dari modulnya.

Gambar 5.5c Bentuk JY-MCU v1.03

Pemasangan dari modul ini ke mikrokontroler hanya memasangkan pin RX JY-


MCU ke TX pin mikrokontroler, begitula dengan TX masuk ke pin Rx mikrokontroller, VCC
dan GND. yang digunakan hanyalah 4 buah jalur yaitu RX, TX, GND dan VCC. Berikut
bagan dan konfigurasi koneksinya

JY-MCU Minimum System


RX, TX, VCC, GND
Ver1.03 ATMega8

JY-MCU Bluetooth RX TX Minimum System


TX RX
VCC VCC
GND GND

117
c. Motor Driver
Motor driver yang digunakan untuk robot ini yaitu motor driver berjenis satu arah,
yang mana telah dibahas sebelumnya. Motor driver ini hanya dapat membuat motor DC
bergerak maju, belok ke kanan dan kekiri tanpa bisa bergerak mundur / kebelakang.Berikut
adalah gambar dari motor driver tersebut.

Ke portB.0 dan ke portB.1


Gambar 5.5d Motor Driver Satu Arah
d. Minimum System ATMega8

Ke JY-MCU

Motor Driver

Downloader

Gambar 5.5e Skematik Minimum System ATMega8

118
Pada gambar 5.5e terdapat pinheader yang digunakan untuk JY-MCU yaitu pada
JP1, dan untuk JP3 digunakan untuk ke motor driver. JP2 digunakan untuk menghubungkan
ke downloader.

5.5.4 Program BASCOM-AVR


'==========================================================================
'Programmer: Yanuar Mukhammad
'E-mail : Yanuarm@hotmail.com
'==========================================================================
$regfile = "m8def.dat"
$crystal = 12000000
$baud = 9600
Config Portb.0 = Output
Config Portb.1 = Output
Enable Interrupts
Dim Perintah As String * 1
Do
Perintah = Waitkey()
Select Case Perintah
Case "1" : ‘untuk robot berjalan maju
Portb.0 = 1
Portb.1 = 1
Case "2" : ‘untuk robot belok ke kiri
Portb.0 = 0
Portb.1 = 1
Case "3" : ‘untuk robot belok ke kanan
Portb.0 = 1
Portb.1 = 0
Case "4" : ‘untuk robot stop
Portb.0 = 0
Portb.1 = 0
End Select
Loop

5.5.5 Cara Penggunaan Robot


Untuk penggunaan robot ini yaitu yang pertama yang harus dipersiapkan adalah
software serial “Hypoterminal” yang mana penggunaannya telah dibahas pada bab
sebelumnya.
Setelah itu mengaktifkan software “Bluesoleil” yang digunakan untuk
mengaktifkan USB Bluetooth Dongle agar bisa konek pada computer, karena Software
“Bluesoleil” terdapat driver yang digunakan untuk mengidentifikasi keberadaan adanya USB
Bluetooth Dongle. Aplikasi pada robot ini menggunakan software Bluesoleil versi

119
6.2.227.11. Penggunaan software Bluesoleil ini cukup mudah yaitu aktifkan softwarenya
sehingga nampak seperti gambar berikut.

Port Serial

Gambar 5.5f Tampilan Software Bluesoleil

Setelah mengaktifkan Software Bluesoleil akan nampak device dari JY-MCU


yaitu bernama “linvor”, langkah berikutnya yaitu melakukan pairing kedua device, yaitu
device JY-MCU dengan komputer, untuk password dari JY-MCU yaitu 1234. Indikator jika
device JY-MCU telah aktif yaitu pada icon “linvor” di Bluesoleil akan berwarna hijau dan
akan tertampil icon pairing pada icon Linvor.
Kemudian aktifkan Port Serial Device Linvor di Software Bluesoleil yang
menandakan bahwa Port Serial telah siap digunakan, jika Port Serial aktif akan terlihat nomor
Port COMM yang digunakan dan juga Device Linvor dan icon Port Serial akan berwarna
hijau jika telah terkoneksi,
Jika software baru saja diinstall langkah pertama yang harus dilakukan yaitu men-
chek list semua fitur yang disediakan oleh software dengan cara klik kanan icon “linvor”,
pilih properties, kemudian akan tampak seperti gambar 5.5g, setelah itu buka tab
“autorizetion” dan lakukan check list pada semua fitur yang disediakan seperti Gambar 5.5h
setelah itu tekan tombol “APPLY” lalu tekan“OK”.
Pada bagian Hypoterminal, cek pada Port COMM yang digunakan, untuk
mengeceknya pada bagian “device and printer” untuk windows. Jika sudah mengetahui port
COMM yang digunakan seperti pada gambar 5.5i, maka tekan tombol Connect. Maka
Hypoterminal akan Connect ke JY-MCU dan JY-MCU akan menghidupkan led yang tadinya
berkedip (blink) menjadi nyala led yang menyala terus (continue).

120
Gambar 5.5g Tampilan Menu General

Gambar 5.5h Tampilan Menu Authorization

Gambar 5.5i Tampilan Layar Hypoterminal

Jika telah connect, tekan tombol angka 1 pada keyboard untuk menjalankan robot,
tombol angka 2 dan 3 untuk belok ke kanan dan kiri, tombol angka 4 untuk robot berhenti.

121
5.6 Membuat Robot Remote Control Dengan Visual Basic dan APC220
Membuat robot pada bagian ini membahas tentang bagaimana cara membuat
robot secara wireless menggunakan komunikasi serial dengan mikrokontroler ATMega8535,
jika sebelumnya dibahas tentang komunikasi serial menggunakan Hypoterminal, sekarang
Hypoterminal dimodifikasi menggunakan software visual basic 6.0, sehingga control robot
dari komputer menggunakan visual basic. Berikut adalah gambar robot tersebut.

Gambar 5.6a Bentuk dari Robot Control dengan VB

Robot ini menggunakan APC220 sebagai media untuk komunikasi secara


wireless, sehingga dibanding dengan komunikasi serial dengan bluetooth, menggunakan
APC220 memiliki kelebihan, yaitu jarak maksimal yang dapat dikendalikan oleh APC220
adalah 1000 meter atau 1 kilometer, jika bluetooth hanya menjangkau jarak maksimal 10
meter.
Tidak hanya itu, robot ini juga menggunakan komunikasi visual basic dari
komputer PC / laptop dan tidak menggunakan Hypoterminal, inilah yang membedakan robot
ini dengan pembahasan robot sebelumnya. Namun untuk sistematika dari penggunaan robot
ini sama dengan robot yang menggunakan bluetooth yaitu komputer hanya mengirimkan data
angka 1, angka 2, angka 3, dan angka 4 untuk kendali jalannya robot tersebut.

5.6.1 Fungsi Dan Tujuan


Fungsi dari pembuatan robot ini adalah agar dapat dikembangkan untuk alat-alat
canggih lainnya, yang menggunakan methode yang sama. Tujuannya dari pembuatan robot
ini adalah untuk mengetahui kinerja APC220 pada komunikasi serial secara wireless dan
mengetahui pembuatan dari visual basic untuk serial mikrokontroler.

122
5.6.2 Prinsip kerja Robot
Prinsip kerja robot ini menggunakan dua buah item yaitu APC220 dan software
visual basic 6.0 yang berada pada komputer. Untuk bagian komunikasi serial menggunakan
sepasang APC220 yang berfungsi sebagai master / transmiter dan slave / receiver.
Software visual basic pada komputer terdapat dua buah tombol interface, yang
mana jika tombol maju ditekan, komputer akan mengirimkan angka 1 kepada APC220
transmiter yang berada pada USB port komputer, kemudian dari APC220 transmiter diterima
oleh APC220 receiver yang berada pada rangkaian minimum system, sehingga dari APC220
receiver dikirimkan ke mikrokontroler untuk pemrosesan data, berikut bagan skemanya.

Wireless

Komputer USB to Minimum Motor Motor


serial APC APC System Driver DC
Converter 220 220

Master Slave
Data yang dikirimkan oleh komputer yang berupa angka 1, 2, 3 dan 4 ditangkap
oleh APC220 slave yang kemudian dikirimkan ke minimum system, dari minimum system
mengirimkan data ke motor driver, sehingga jika motor driver telah diberi logika maka akan
menggerakkan motor, yang mana mengindikasikan jalannya robot.

5.6.3 Rangkaian Hardware


Rangkaian penyusun dari robot ini tidaklah banyak hanya memerlukan beberapa
rangkaian dan modul penyusun yaitu sepasang modul APC220, minimum system, motor
driver, dan software Visusl Basic 6.0.
a. APC220 Master / Slave
Komponen yang utama dari komunikasi serial secara wireless pada bab ini adalah
APC220, yang mana APC220 memiliki beberapa kelebihan yaitu jarak jangkau yang jauh
sekitar 1 km dan juga kedua APC220 ini bisa digunakan baik itu sebagai master / transmiter
ataupun slave / receiver. Untuk bagian master dari APC220 yang digunakan pada USB port
komputer menggunakan serial to USB konverter yang disediakan saat pembelian, karena
sistem output dari APC220 berbentuk serial, dan komputer port berbentuk USB, sehingga
harus menggunakan konverter untuk bisa berhubungan dengan komputer. Berikut gambar
dari APC220 ini.

123
Gambar 5.6b Bentuk dari APC220

Pada saat pembelian APC220 terdapat 2 buah modul ini, dan ditambah dengan
serial to USB konverter, sehingga tidak perlu membeli 2 buah modul, seperti halnya Xbee
yang harus membeli 2 buah untuk dapat melakukan komunikasi. Untuk menghubungkan
modul ini ke komputer dan ke mikrokontroler adalah seperti bagan berikut.

APC220 Komputer /
Serial to USB converter
master Laptop

USB Port

APC220 Minimum
RX, TX, VCC, GND
Slave System

Jadi untuk menghubungkan APC220 ke mikrokontroler hanya menggunakan port


RX, TX, VCC, dan GND pada minimum system. Jika ingin menghubungkan ke komputer
menggunakan serial to USB converter, agar bisa masuk ke USB port komputer.

b. Motor Driver
Motor driver yang digunakan untuk robot ini yaitu motor driver berjenis satu
arah, yang mana telah dibahas sebelumnya. Motor driver ini hanya dapat membuat motor DC
bergerak maju, belok ke kanan dan kekiri tanpa bisa bergerak mundur / kebelakang.Berikut
adalah gambar dari motor driver tersebut.

124
Ke portB.0 dan ke portB.1
Gambar 5.6c Motor Driver Satu Arah

d. Minimum System ATMega8535

Downloader

Motor driver

LCD

Ke APC220 slave

Gambar 5.6d Skematik Minimum System ATMega8535

125
5.6.4 Membuat Tampilan Interface Dengan Visual Basic 6.0
Pada robot ini menggunakan tampilan interface yang menggunakan software
visual basic 6.0, seperti yang terlihat pada gambar dibawah ini.

Gambar 5.6e Tampilan Interfae Control Robot Dengan VB 6.0

Keterangan :

Item Setting
Tombol 1 Caption : Mulai
Name : start
Tombol 2 Caption : Stop
Name : berhenti
Tombol 3 Caption : Exit
Name : Command2
Tombol 4 Caption : Up
Name : atas
Tombol 5 Caption : Left
Name : kiri
Tombol 6 Caption : Right
Name : kanan
Tombol 7 Caption : Down
Name : bawah
MSCOMM Name : MSComm2
Timer1 Name : TimerBaca
Interval : 1000
Enabled : False
ComboBox Text : PilihCOM
Name : ComboCOM

126
TextBox Name : Text1
Text : None
MultiLine : True

Program Visual Basic untuk tampilan diatas :

Option Explicit
Dim arrdata()
Dim TotalBaca As Integer
Dim BMI As Single
Dim Keterangan As String
Const MAKSBACA = 10
‘-----------------------------
Private Sub atas_Click()
MSComm2.Output = "1" + Chr(13) ‘mengirimkan angka 1 ke serial
End Sub
‘-----------------------------
Private Sub bawah_Click()
MSComm2.Output = "2" + Chr(13) ‘mengirimkan angka 2 ke serial
End Sub
‘-----------------------------
Private Sub berhenti_Click()
start.Enabled = True
berhenti.Enabled = False
TimerBaca.Enabled = False
End Sub
‘-----------------------------

Private Sub Command1_Click()


MSComm2.Output = "3" + Chr(13) ‘mengirimkan angka 3 ke serial
End Sub
‘-----------------------------
Private Sub Command2_Click()
Unload Me
End Sub
‘-----------------------------
Private Sub Command3_Click()
MSComm2.Output = "4" + Chr(13) ‘mengirimkan angka 4 ke serial
End Sub
‘-----------------------------
Private Sub Form_Load()
Dim i As Byte
For i = 1 To 16
ComboCOM.AddItem (i)
Next i
End Sub
‘----------------------------
Private Sub start_Click()
Dim u As Integer
On Error GoTo ada_eror
MSComm2.CommPort = ComboCOM.Text
MSComm2.Settings = "9600,N,8,1"
MSComm2.RThreshold = 15
MSComm2.InputLen = 15

127
MSComm2.InputMode = comInputModeText
MSComm2.PortOpen = True
ReDim arrdata(1 To MAKSBACA + 1)
For u = 1 To MAKSBACA
arrdata(u) = 0
Next
TotalBaca = 0
start.Enabled = False
berhenti.Enabled = True
TimerBaca.Enabled = True
ada_eror:
If ComboCOM.ListIndex < 1 Then
MsgBox "COM berada di Nomor : " & Err.Number & vbCrLf &
Err.Description, vbCritical + vbOKOnly, "ERROR"
start.Enabled = True
berhenti.Enabled = True
ComboCOM.Text = "Pilih COM"
End If
End Sub
‘-----------------------------------
Private Sub TimerBaca_Timer()
Dim strInput As String
Dim strPotong As String
Dim singleInput As Single
Dim u As Integer
strInput = MSComm2.Input
strPotong = strInput
Text1.Text = Text1.Text + strPotong + vbCrLf
singleInput = Val(strPotong)
If TotalBaca >= MAKSBACA Then
TimerBaca.Enabled = False
If MSComm2.PortOpen = True Then MSComm2.PortOpen = False
Call berhenti_Click
End If
End Sub

5.6.5 Program BASCOM-AVR


'==========================================================================
'Programmer: Yanuar Mukhammad
'E-mail : Yanuarm@hotmail.com
'==========================================================================
$regfile = " m8535.dat"
$crystal = 12000000
$baud = 9600
Config Portb.0 = Output
Config Portb.1 = Output
Enable Interrupts
Dim Perintah As String * 1
Do
Perintah = Waitkey()
Select Case Perintah
Case "1" : ‘untuk robot berjalan maju
Portb.0 = 1
Portb.1 = 1
Case "2" : ‘untuk robot belok ke kiri

128
Portb.0 = 0
Portb.1 = 1
Case "3" : ‘untuk robot belok ke kanan
Portb.0 = 1
Portb.1 = 0
Case "4" : ‘untuk robot stop
Portb.0 = 0
Portb.1 = 0
End Select
Loop

5.6.6 Cara Penggunaan Robot


Untuk penggunaan robot ini menggunakan interface dari visual basic 6.0 yang
mana penggunaannya yaitu pertama memilih port COMM yang digunakan, setelah itu tekan
tombol Mulai, sehingga port COMM akan aktif, seperti gambar 5.6f.

Gambar 5.6f Interface Start Gambar 5.6g Interface Control Robot

Setelah port COMM aktif, langkah berikutnya yaitu mengendalikan arah gerak
dari robot. Tombol “UP” agar robot berjalan maju, tombol “LEFT” untuk belok kiri, tombol
“RIGHT” untuk belok kanan dan “DOWN” agar robot berhenti seperti gambar 5.6g. jika
ingin mengakhiri program dapat menekan tombol exit.

129
5.7 Membuat Robot Penerang Ruangan
Membuat robot penerang ruangan ini sangatlah simple dan mudah untuk dibuat,
karena menggunakan mikro servo dan ATMega8 sebagai otak untuk kendali robot. Robot ini
berbeda dengan robot yang pernah dibuat sebelumnya, karena pada robot ini tidak
menggunakan motor driver dan roda untuk berjalan, namun hanya menggunakan sebuah
mikro servo sebagai pengendali arah gerakan dari muka robot, dimana pada muka robot
terdapat sebuah led putih super bright yang terang jika menyala.

Gambar 5.7a Bentuk Robot Penerang Ruangan

Sistem kendali robot ini menggunakan komunikasi serial secara nirkabel yaitu
menggunakan kabel DKU-5 sebagai penghubung dari mikrokontroler menuju ke komputer.
Dibagian bawah dari kepala robot terdapat sebuah mikro servo yang digunakan agar robot
bisa berputar ke arah yang dituju melalui komputer. Berikut adalah rancangan yang lebih
detail mengenai robot ini.

Lampu LED Super Bright Putih

Mikro Servo

Kepala Robot

Badan Robot

Tampak Depan Tampak Atas

130
5.7.1 Fungsi Dan Tujuan
Tujuan dari pembuatan robot ini adalah untuk mengetahui cara kerja dari mikro
servo dan sistem kerja dari komunikasi serial secara nirkabel dengan DKU-5, untuk
fungsinya agar dapat dipelajari dan dikembangkan menjadi teknologi canggih yang terpadu
lainnya.

5.7.2 Prinsip kerja Robot


Prinsip kerja robot ini hanya memutarkan kepala robot ke suatu sudut tertentu
yang mana besar sudutnya telah ditentukan melalui program pada BASCOM-AVR. Masalah
pencahayan ruangan, terdapat satu buah led super bright putih 5 mm yang cukup untuk
menerangkan ruangan biarpun tidak begitu terang sekali untuk ukuran ruangan tipe sedang.
Sebagai kendali dari robot ini yaitu menggunakan sebuah komputer, yang mana
sebagai media untuk penghubung dari komputer ke mikrokontroler menggunakan perantara
kabel serial DKU-5 seperti yang telah dijelaskan pada bab sebelumnya. Berikut bagan dari
sistem kerjanya.

Mikro servo
Komputer Minimum
Kabel DKU-5
System
LED SB 5mm

USB Port RX, TX, GND

Sebagai program serial dari komputer menggunakan Hypoterminal, prinsip


kerjanya sama dengan konsep penggerak robot yang sebelumnya dibahas, yaitu komputer
melalui port serial memberikan angka 1, angka 2, angka3 dan angka 4 yang masing-masing
angka tersebut akan diolah dan dilakukan eksekusi.

5.7.3 Rangkaian Hardware


Robot ini hanya menggunakan beberapa komponen penyususn yang berupa kabel
DKU-5, led super bright 5mm, minimum system ATMega8 dan mikro servo.
a. Kabel DKU-5 Nokia
kabel DKU-5 disini digunakan sebagai media penghubung untuk komunikasi
secara serial dari komputer ke mikrokontroler ATMega8, yang mana sebenarnya kabel ini
adalah kabel data dari handphone Nokia yang dimodifikasi sehingga bisa untuk melakukan

131
komunikasi serial antara komputer dengan mikrokontroler. Seperti yang telah dijelaskan
sebelumnya pada bab komunikasi serial.
b. Led Super Bright 5 mm
Posisi led 5mm super bright disini sebagai alat untuk menerangi ruangan, led ini
bisa dimatikan dan dihidupkan melalui Hyperterminal pada komputer, sehingga bisa
dikendalikan secara bersamaan dengan arah putar mikro servo, berikut konfigurasi led dan
bentuk dari led ini.

Gambar 5.7b Tampilan Led 5 mm dan konfigurasinya

Led super bright 5 mm memerlukan rangkaian yang digunakan untuk


menghidupkannya, yang mana hanya memerlukan VCC, GND dan satu buah resistor 330
ohm, skematiknya seperti gambar berikut,

Ke PortC.0

Gambar 5.7c Skematik Rangkaian Led

Bahan-Bahan:
a. Led 5 mm Super Bright Putih x 1 buah
b. Resistor 330 ohm x 1 buah
c. Pinheader 1 pin

Terdapat JP1 yang digunakan untuk masuk ke port minimum system pada
portC.0. VCC adalah tegangan masukan sebesar 5 volt, fungsi resistor agar mencegah
terjadinya panas pada area led saat aktif dalam waktu yang lama karena terkena arus langsung

132
c. Mikro Servo
Mikro Servo pada robot ini digunakan sebagai penggerak dari kepala robot,
sehingga kepala robot dapat bergerak sesuai arah dan sudut yang telah ditentukan dari
program yang telah dibuat. Cara kerja mikro servo adalah dengan memberikan sinyal yang
berupa sudut misalnya 50, 100, 150, 90 dalam derajat. Berkut tampilan dari mikro servo.

Gambar 5.7d Mikro servo dan Horn Servo

Untuk menghubungkan mikro servo dengan mikrokontroler hanya menggunakan


tiga jalur yaitu jalur VCC, GND dan Data, untuk kabel merah adalah untuk VCC, hitam
untuk GND, dan data pada kabel warna Orange. Setiap pabrikan akan memiliki konfigurasi
warna jalur yang berbeda maka harus didefinisikan mengenai 3 jalur tersebut sebelum
memasangnya. Berikut bagan pemasangannya pada minimum system.

VCC
Mikro Minimum
servo GND system

PORTD.7

Konfigurasi mikro servo yang masuk ke minimum system yaitu hanya satu jalur
yaitu jalur data, pada robot ini digunakan portD.7 untuk kendali mikro servo dari
mikrokontroler ATMega8.

d. Minimum System ATMega8


Minimum system ATMega8 digunakan sebagai otak robot dan pengendali
rangkaian, sehingga minimum system berperan penting dan vital pada robot ini. Berikut
adalah gambar dari minimum system yang digunakan.

133
Ke Rangkaian LED

Ke kabel DKU-5

Ke Mikro servo

Downloader

Gambar 5,7e Skematik Minimum System ATMega8

5.7.4. Program BASCOM-AVR


'==========================================================================
'Programmer: Yanuar Mukhammad
'E-mail : Yanuarm@hotmail.com
'==========================================================================
$regfile = " m8def.dat"
$crystal = 12000000
$baud = 9600
Config Servos = 1 , Servo1 = Portd.7 , Reload = 10
Config Portc.0 = Output
Config Portd.7 = Output
Enable Interrupts
Dim Perintah As String * 1
Do
Perintah = Waitkey()
Select Case Perintah
Case "1" : ‘hidupkan led
Portc.0 = 0
Case "2" : ‘matikan led
Portc.0 = 1
Case "3" : ‘menggerakkan servo
Servo(1) = 100
Case "4" : ‘menggerakkan servo
Servo(1) = 50
Case "5" : ‘menggerakkan servo

134
Servo(1) = 220
Case "6" : ‘menggerakkan servo
Servo(1) = 10
End Select
Loop

5.7.5 Cara Penggunaan Robot


Cara penggunaan robot ini pertama mengaktifkan dahulu program Hypoterminal
dengan memastikan bahwa kabel DKU-5 sudah terpasang dan terdeteksi oleh komputer
dengan baik, kedua, pada Hypoterminal dipilih port COMM yang merupakan serial dari
DKU-5, jika telah terpilih maka tekan tombol connect. Seperti pada gambar berikut.

Gambar 5.7f Tampilan Hypoterminal saat aktif

Tekan tombol angka 1 pada keyboard komputer untuk menghidupkan led dan
tombol angka 2 untuk mematikan led. Untuk menggerakkan mikro servo tekan tombol angka
3, 4, 5 dan 6 yang masing-masing memiliki arah hadap tersendiri.

135
BAB 6
Alat Instrumentasi

6.1 Pengenalan Tentang Alat Instrumentasi


Apa itu alat instrumentasi?, pertanyaan yang pertama kali muncul. Alat
instrumentasi adalah alat yang menggunakan rangkaian elektronika yang dibuat untuk suatu
tujuan tertentu. Pada bab ini akan dibahas mengenai bagaimana cara membuat suatu alat
elektronika yang menggunakan pengendali mikrokontroler ATMega sebagai otak rangkaian.
Dalam kehidupan sehari-hari, alat instrumentasi yang berbasis elektronika sangat
diperlukan untuk kebutuhan, baik itu untuk lingkungan kerja maupun lingkungan pelajar,
seperrti halnya adanya alat pengukur suhu ruangan, sms gateway, detektor gas lpg, dan lain-
lain, sehingga sangat bermanfaat sekali jika bisa membuatnya sendiri, karena harga dari kita
buat sendiri suatu alat harganya akan jauh berbeda dengan kita beli, jika termometer digital
harga kita beli Rp. 125.000,00 namun jika kita buat hanya mencapai Rp. 60.000,00, sangat
jauh berbeda.
Komponen utama penyususn dari suatu alat elektronika biasanya yaitu
mikrokontroler, sensor, modul, dan device yang dikontrol seperti led, LCD, buzzer, motor dc,
motor servo dan lain-lain.
Tujuan dari pembahasan pembuatan alat elektronika ini agar kita bisa membuat
secara mandiri dalam membuat sustu alat yang berbasis elektronika, agar kita tidak selalu
mengandalkan sifat konsumerisme, jika semua yang kita inginkan terbuat dari tangan kita
sendiri rasanya akan berbeda dengan kita beli, karena alat yang kita buat itu adalah hasil
karya dari buah tangan kita, sehingga akan lebih bernilai.
Membuat suatu rangkaian instrument yang berbasis elektronika sebenarnya
tidaklah sulit, karena hanya memerlukan beberapa komponen utama, seperti bagian proses,
bagian input dan output, halnya manusia yang mengalami input data yaitu belajar, bagian
proses artinya berfikir dan menguasai, dan bagian output adalah kita bertindak seperti apa
yang dipelajari.
Yang diharapkan dari pembahasan pada bab ini adalah dapat digunakan sebagai
bahan acuan dalam membuat peralatan elektronika canggih lainnya, baik itu yang bermetode
sama ataupun berbeda, sehingga akan tercipta teknologi yang baru.

136
6.2 Membuat Termometer Digital Dengan LM35 Dan Interface Visual Basic
Membuat alat instrumentasi berbasis elektronika kali ini membahas mengenai
pembuatan termometer digital yang dilengkapi dengan interface dari software visual basic
6.0, sehingga dapat dilakukan monitoring suhu ruangan maupun suhu keadaan di luar
ruangan dengan menggunakan komputer.
Alat ini menggunakan ATmega16 yang bertindak sebagai otak dan pengendali
rangkaian. Untuk sensor suhu sendiri menggunakan sensor suhu LM35 yang terbukti
keakuratannya dalam hal pengukuran suhu. Berikut adalah gambar rangkaiannya

Gambar 6.2a Tampilan Alat Monitoring Suhu

Sebagai tampilan dari suhu terdapat dua buah interface yaitu pada LCD display
dan pada interface di visual basic, sehingga akan lebih memudahkan dalam melakukan
pengambilan data dan pemantauan data.

6.2.1 Fungsi dan Tujuan


Fungsi dan tujuan dibuatnya alat ini adalah untuk mengetahui kinerja dari sensor
LM35 sebagai sensor suhu. Fungsinya untuk mengetahui tingkat suhu disuatu tempat atau
ruangan secara teratur dan terus menerus.
6.2.2 Prinsip Kerja Alat
Prinsip kerja alat ini yaitu sensor suhu LM35 sebagai input data utama dari
keadaan suhu yang terdeteksi, karena sensor LM35 termasuk dalam karakteristik sensor yang
mengeluarkan tegangan yang kecil paling besar sekitar 0,5 volt tiap kenaikannya, kondisi ini
akan sulit dibaca oleh mikrokontroler karena kecil sekali tegangan keluaran dari LM35, maka
dari itu dibuatlah rangkaian penguat tegangan yang menggunakan IC LM358 sebagai
pengkondisi sinyal. Dari pengkondisi sinyal dibaca oleh mikrokontroler pada bagian port

137
ADC, setelah itu Mikrokontroler akan menampilkannya ke LCD dan ke komputer melalui
komunikasi serial.
Untuk komunikasi serial menggunakan rangkaian RS232 sebagai media untuk
melakukan komunikasi data seperti yang telah dijelaskan pada bab komunikasi serial, namun
disini komunikasi tidak menggunakan port serial sehingga harus terdapat konverter serial to
USB converter saat menghubungkan ke komputer. Berikut bagan alurnya.

LM35 Pengkondisi Minimum RS232 Serial to Komputer


sinyal
System usb
konverter

ADC Port RX, TX GND

LCD Kabel Serial Kabel USB / Printer


Display

Mikrokontroler hanya bertugas untuk menmpilkan data yang ditangkap oleh sensor
kemudian ditampilkan ke layar LCD dan pada interface visual basic.

6.2.3 Rangkaian Hardware


Rangkaian penyusun dari alat ini tidak banyak, hanya memerlukan beberapa
rangkaian penyusun yaitu rangkaian sensor LM35, rangkaian pengkondisi sinyal, dan
rangkaian minimum system.
a. Sensor LM35
Sensor LM35 hanya menggunakan vcc, gnd dan data, seperti gambar 6.2b yang
mana hanya perlu disambungkan port data output ke input data rangkaian pengkondisi sinyal.

GND

Data

VCC

Gambar 6.2b Bentuk dan konfigurasi LM35

138
b. Rangkaian Pengkondisi Sinyal
Rangkaian pengkondisi sinyal digunakan untuk memperbesar output tegangan
dari sensor yang memiliki tegangan output yang kecil, sehingga perlu diperbesar agar
mikrokontroler dapat dengan jelas membaca data tersebut.

Ke output LM35

Ke ADC port

GND

Gambar 6.2c Rangkaian Pengkondisi Sinyal

Bahan-Bahan :
a. IC LM358 x 1 buah
b. Resistor 4,85k x 1 buah
c. Resistor 1,21 M x 1 buah
d. Resistor 100k x 1 buah
e. Variabel Resistor 100k x 1 buah
f. Pinheader tunggal

Pengkondisi sinyal terdapat dua buah input yaitu input + dan -, yang digunakan
untuk input dari sensor LM35 adalah input + dan input – dihubungkan dengan GND. pada
output tegangan dari pengkondisi sinyal masuk ke ADC port dari mikrokontroler.

c. Rangkaian Minimum System ATMega16


Rangkaian minimum system yang digunakan untuk alat ini adalah rangkaia
minimum system ATMega16 yang hanya memerlukan beberapa port yaitu portC untuk LCD,
portA untuk input dari sensor, dan pin RX, TX untuk komunikasi serial. Berikut gambar
skematiknya

139
Ke pengkondisi sinyal

Downloader

Lcd

Komunikasi Serial

Gambar 6.2d Skematik Minimum System ATMega16

6.2.4 Program Interface Visual Basic


Program yang digunakan untuk interface pada alat ini menggunakan software
Visual Basic 6.0 yang mana software ini sangat cocok sekali untuk berbagai macam proyek
komnikasi serial dalam mikrokontroler. Berikut adalah gambar interfacenya.

SAVE

Gambar 6.2e Tampilan Output Interface

140
Keterangan :

Item Setting
Tombol 1 Caption : Mulai
Name : start
Tombol 2 Caption : Stop
Name : berhenti
Tombol 3 Caption : Exit
Name : Command2
MSCOMM Name : MSComm2
Timer1 Name : TimerBaca
Interval : 1000
Enabled : False
ComboBox Text : PilihCOM
Name : ComboCOM
TextBox Name : Text1
Text : None
MultiLine : True
Label Name : Label1
Caption : None
Tombol 4 Caption : SAVE
Name : simpan

Program Visual Basic untuk tampilan diatas :


Option Explicit
Dim arrdata()
Dim TotalBaca As Integer
Dim BMI As Single
Dim Keterangan As String
Const MAKSBACA = 10
‘-----------------------------
Private Sub simpan_Click()
Open "C:\Users\asus\Desktop" & "\project.txt" For Append As #1
Print #1, "======================"
Print #1, “Data Suhu dengan LM35”
Print #1, Label1.Caption
Print #1, "======================"
Print #1,
Print #1,
Close #1
End Sub
‘-----------------------------
Private Sub berhenti_Click()
start.Enabled = True
berhenti.Enabled = False
TimerBaca.Enabled = False
End Sub
‘-----------------------------
Private Sub Command2_Click()

141
Unload Me
End Sub
‘-----------------------------
Private Sub Form_Load()
Dim i As Byte
For i = 1 To 16
ComboCOM.AddItem (i)
Next i
End Sub
‘----------------------------
Private Sub start_Click()
Dim u As Integer
On Error GoTo ada_eror
MSComm2.CommPort = ComboCOM.Text
MSComm2.Settings = "9600,N,8,1"
MSComm2.RThreshold = 15
MSComm2.InputLen = 15
MSComm2.InputMode = comInputModeText
MSComm2.PortOpen = True
ReDim arrdata(1 To MAKSBACA + 1)
For u = 1 To MAKSBACA
arrdata(u) = 0
Next
TotalBaca = 0
start.Enabled = False
berhenti.Enabled = True
TimerBaca.Enabled = True
ada_eror:
If ComboCOM.ListIndex < 1 Then
MsgBox "COM berada di Nomor : " & Err.Number & vbCrLf &
Err.Description, vbCritical + vbOKOnly, "ERROR"
start.Enabled = True
berhenti.Enabled = True
ComboCOM.Text = "Pilih COM"
End If
End Sub
‘-----------------------------------
Private Sub TimerBaca_Timer()
Dim strInput As String
Dim strPotong As String
Dim singleInput As Single
Dim u As Integer
strInput = MSComm2.Input
strPotong = strInput
Text1.Text = Text1.Text + strPotong + vbCrLf
Label1.Caption = Text1.text
singleInput = Val(strPotong)
If TotalBaca >= MAKSBACA Then
TimerBaca.Enabled = False
If MSComm2.PortOpen = True Then MSComm2.PortOpen = False
Call berhenti_Click
End If
End Sub

142
NOTE:

Pada potongan program: "C:\Users\asus\Desktop" & "\project.txt"


Ubahlahlah program tersebut sesuai dengan keadaan komputer Saudara, jika pada contoh
program, penulis menyimpannya pada desktop komputer, sehingga muncul alamat folder
seperti yang tertera diatas, "\project.txt" adalah nama file yang akan dibuat pada saat
tombol “SAVE” pada program interface visual basic ditekan, ubahlah nama file sesuai
dengan nama project yang Saudara buat.

6.2.5 Program BASCOM-AVR


'==========================================================================
'Programmer: Yanuar Mukhammad
'E-mail : Yanuarm@hotmail.com
'==========================================================================
$regfile = "m16def.dat"
$crystal = 12000000
'==========================
Config Lcdpin = Pin , E = Portc.1 , Rs = Portc.0 ,
Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5
Config Lcd = 16 * 2
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
'--------------------------
Dim Suhu_ref As Word
Dim Suhu As Word
'--------------------------
Deflcdchar 0 , 12 , 18 , 18 , 12 , 32 , 32 , 32 , 32
'--------------------------
Cls
Cursor Off
'--------------------------
Do
Suhu_ref = Getadc(7) ‘ambil data ADC portA.7
Suhu = Suhu_ref * 5 ‘kalibrasi dari LM35
Suhu = Suhu / 10 ‘jika kurang tepat disesuaikan dengan termometer digital
Suhu = Suhu – 225 ‘yang dijual dipasaran

Locate 1 , 1
Lcd "**THERMOMETER***"
Locate 2 , 1
Lcd "Suhu="
Locate 2 , 6
Lcd " "
Locate 2 , 6
Lcd Suhu
Locate 2 , 9

143
Lcd Chr(0)
Locate 2 , 10
Lcd "C"
Locate 2 , 11
Lcd " "

Print Suhu

Wait 1
Loop

6.2.6 Cara Penggunaan Alat


Cara penggunaan alat ini pertama aktifkan interface visual basic, setelah itu
konekkan melalui serial port. Pada layar LCD minimum system akan nampak data yang
dibaca oleh mikrokontroler dari sensor. Data yang masuk ke interface visual basic haruslah
sama dengan data tampilan pada layar LCD. Jika ingin menyimpan data tersebut pada
komputer maka tekan tombol “SAVE” pada program interface visual basic.
Untuk kalibrasi LM35 disesuaikan dengan alat yang sebenarnya, yaitu
termometer digital yang dijual dipasaran, untuk membandingkan ke-valid-an data yang
diperoleh.

144
6.3 Membuat Termometer Digital Dengan DHT11
Pada bagian ini akan dibahas mengenai pembuatan termometer digital
menggunakan sensor DHT11 sebagai pendeteksi kondisi suhu. Alat ini tidaklah jauh berbeda
dengan pembahasan alat yang dibuat sebelumnya, perbedaannya hanya pada sensor, jika
sebelumnya membahas tentang sensor LM35 namun kali ini membahas tentang sensor
DHT11 sebagai detektor suhu. Kelebihan dari sensor DHT11 ini dibanding dengan LM35
yaitu jika DHT11 ini bisa mengukur dua data sekaligus yaitu suhu dan kelembaban, jika
LM35 hanya fokus pada suhu saja. Berikut adalah gambar dari alat pendeteksi suhu dengan
DHT11.

Gambar 6.3a Tampilan Alat Monitoring Suhu

Alat Monitoring suhu ini menggunakan mikrokontroler ATMega16 sebagai


pengendali utama rangkaian, dan sensor DHT11, dilengkapi dengan layar LCD yang
digunakan untuk menampilkan kadar suhu dan kadar kelembaban.

6.3.1 Fungsi dan Tujuan


Tujuan dibuatnya alat ini adalah untuk mengetahui kinerja dari sensor DHT11
sebagai sensor pendeteksi suhu dan kelembaban. Fungsi dibuatnya alat ini untuk mengukur
kadar / tingkat suhu disuatu tempat atau ruangan agar dapat mengetahui kondisi suhu setiap
waktu.
6.3.2 Prinsip Kerja Alat
Prinsip kerja alat ini adalah sensor suhu DHT11 mendeteksi tingkat / kadar suhu
dan kelembaban diudara, kemudian sensor tersebut mengirimkan ke mikrokontroler berupa
tegangan outputnya, pada mikrokontroler data tersebut dipecah menjadi dua yaitu data untuk

145
suhu dan data untuk kelembaban, setelah diketahui data untuk suhu dan kelembabannya,
mikrokontroler menampilkan kedua data tersebut ke layar LCD. Berikut bagan alirnya.

Sensor Minimum
LCD
DHT11 System
display
PORTB.2

Terlihat pada bagan bahwa tugas dari mikrokontroler hanya menampilkan data
dari sensor DHT11 yang berupa suhu dan kelembaban ke layar LCD, yang perlu diperhatikan
adalah dari sensor DHT11 ke mikrokontroler melalui portB.2 bukan port ADC.

6.3.3 Rangkaian Hardware


Rangkaian hardware untuk alat ini hanyalah rangkaian hardware untuk sensor
DHT11 dan minimum system ATMega16.
a. Rangkaian Sensor DHT11
DHT11 merupakan sensor yang telah teruji keakuratannya dalam pengukuran suu
dan kelembaban suatu udara. DHT11 memiliki perbedaan dari sensor-sensor yang lain antara
lain dapat mengukur dua faktor sekaligus dalam satu sensor yaitu suhu dan kelembaban, serta
harganya yang terjangkau. Untuk gambar dari sensor DHT11 seperti Gambar 6.3b

Gambar 6.3b Bentuk fisik Sensor DHT11

Sensor DHT11 terdapat empat buah kaki, yaitu VCC, Data, NC dan GND, namun
yang digunakan untuk dihubungkan ke mikrokontroler hanyalah 3 kaki yaitu VCC, Data dan
GND, untuk kaki NC tidak digunakan, berikut skemanya.

GND DHT11
Data PortB2 Minimum

VCC system

146
Sensor DHT11 memerlukan resistor 10K pada kaki VCC dan Data untuk
menghindari arus langsung yang masuk ke sensor sebelum masuk ke mikrokontroler.
Rangkaiannya seperti berikut

Data

Gambar 6.3c Rangkaian DHT11

b. Minimum System ATMega16

Ke DHT11

Downloader

LCD

Gambar 6.3d Skematik Minimum System ATMega16

JP2 pada rangkaian minimum system digunakan untuk input data dari sensor
DHT11 yang mana melalui portB.2. untuk LCD tetap pada portC dan downloader pada JP1.

147
6.3.4 Program BASCOM-AVR
'==========================================================================
'Programmer: Yanuar Mukhammad
'E-mail : Yanuarm@hotmail.com
'==========================================================================
$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
Cursor Off
Cls
Declare Sub Get_th(t As Byte , H As Byte)
Config Serialin = Buffered , Size = 128
Config Serialout = Buffered , Size = 128
Dht_put Alias Portb.2
Dht_get Alias Pinb.2
Dht_io_set Alias Ddrb.2
Dim T As Byte
Dim H As Byte
Dim Crc As Byte
Dim Mybyte As Byte
Dim Sensor_data As String * 40
Dim Tmp_str8 As String * 8
Dim Count As Byte

Enable Interrupts

Set Dht_io_set
Set Dht_put

Lcd "Yanuar M."


Lowerline
Lcd "DHT11 sensor"

Do
Waitms 1500
Call Get_th(t , H)
Cls
Lcd "TMP: " ; T ; "C"
Lowerline
Lcd "PHP: " ; H ; "%"

Loop

Sub Get_th(t As Byte , H As Byte)

Count = 0
Sensor_data = ""
Set Dht_io_set
Reset Dht_put
Waitms 25

Set Dht_put

148
Waitus 40
Reset Dht_io_set
Waitus 40
If Dht_get = 1 Then
H = 1
Exit Sub
End If

Waitus 80
If Dht_get = 0 Then
H = 2
Exit Sub
End If

While Dht_get = 1 : Wend

Do
While Dht_get = 0 : Wend
Waitus 30
If Dht_get = 1 Then
Sensor_data = Sensor_data + "1"
While Dht_get = 1 : Wend
Else
Sensor_data = Sensor_data + "0"
End If
Incr Count
Loop Until Count = 40

Set Dht_io_set
Set Dht_put

Tmp_str8 = Left(sensor_data , 8)
H = Binval(tmp_str8)

Tmp_str8 = Mid(sensor_data , 17 , 8)
T = Binval(tmp_str8)

Tmp_str8 = Right(sensor_data , 8)
Crc = Binval(tmp_str8)

Mybyte = T + H
If Mybyte <> Crc Then
H = 3
End If
End Sub

6.3.5 Cara Penggunaan Alat


Alat diberi tegangan 12v atau 9v jika terdapat rangkaian regulator, jika tidak
maka menggunakan vcc sebesar 5v untuk mengaktifkan alat. Pada saat diaktifkan, LCD akan
otomatis menampilkan data Suhu dan kelembaban

149
6.4 Membuat Alat Pendeteksi Maling/Pencuri
Setiap orang yang memiliki rumah pasti menginginkan agar rumahnya aman dan
terhindar dari yang namanya maling/pencuri, maka dari itu diperlukan suatu alat pengaman
yang berfungsi untuk mengamankan kondisi rumah saat malam hari, karena pada malam hari
biasanya penghuni rumah terlelap tidur, dari kondisi seperti itu maka pada bagian ini sengaja
membahas mengenai pembuatan alat yang berfungsi untuk mengamankan rumah pada saat
kondisi malam hari, berikut gambar alatnya.

Gambar 6.4a Tampilan Alat Pendeteksi Maling

Alat ini menggunakan sensor PIR Motion Detector yang digunakan untuk
mendeteksi adanya panas tubuh manusia dan gerakan pada jarak 1 meter, sehingga jika
terdeteksi oleh sensor maka buzzer akan hidup dan berdering.
6.4.1 Fungsi dan Tujuan
Tujuan dari pembuatan alat ini dimaksudkan untuk mengetahui cara kerja dari
sensor PIR Motion Detector dan dapat membuat sendiri suatu sistem pengaman rumah.
Fungsinya yaitu untuk mengamankan rumah dari maling dan bahaya yang lain pada saat
rumah dalam kondisi malam hari.
6.4.2 Prinsip Kerja Alat
Prinsip kerja alat ini yaitu sensor mendeteksi adanya orang di suatu titik, sensor
PIR ini mendeteksi orang melalui sumber panas yang dihasilkan oleh makhluk hidup dan
juga mendeteksi adanya gerakan, jadi selain manusia, hewan pun bisa terdeteksi, setelah
sensor aktif maka akan mengirimkan tegangan output yang akan ditangkap oleh mikrontroler,
oleh mikrokontroler memberikan perintah kepada buzzer untuk berbunyi. Untuk lebih
jelasnya dapat melihat bagan berikut ini

150
Sensor Minimum Buzzer
PIR System

Alat ini menggunakan ATMega16 sebagai pengendali dan pengatur perintah, data
dari PIR sensor dibaca oleh port ADC mikrokontroler, jika terdeteksi ada orang yang lewat
suatu titik maka Sensor PIR akan bernilai >1 maka akan menghidupkan buzzer, jika tidak
PIR akan bernilai 0 yang artinya kondisi aman.
6.4.3 Rangkaian Hardware
Rangkaian hardware untuk penyusunan alat ini terdiri dari tiga item yaitu sensor
PIR Motion Detector, Minimum System ATMega16 dan rangkaian buzzer.
a. PIR Motion Detector
PIR (Passive Infra Red) Motion Detektor adalah sensor yang digunakan untuk
mendeteksi suatu makhluk hidup yang memiliki panas tubuh dan juga mendeteksi adanya
gerakan, sensor ini optimal pada jarak kurang dari 1 meter, namun tergantung jenis dari
sensor PIR itu sendiri, ada yang bisa optimal kurang dari satu meter, ada yang lebih dari satu
meter dan bahkan sampat 3 meter pun ada, tergantung merk dan kualitas sensor PIR itu.
berikut gambarnya

Gambar 6.4b Bentuk Fisik sensor PIR Motion Detektor

Sensor PIR ini hanya memiliki tiga buah kaki yaitu kaki VCC, Data Dan GND,
sehingga mudah untuk digunakan untuk komunikasi dengan mikrokontroler melalui port
ADC, untuk tegangan keluaran dari PIR ini dideteksi oleh portA.0, sehingga jika nilai dari
portA.0 / ADC 0 lebih dari 1 maka akan menghidupkan rangkaian buzzer.

b. Rangkaian Buzzer
Rangkaian Buzzer digunakan sebagai rangkaian output dari mikrokontroler, agar
terdapat perbedaan antara saat sensor bernilai 0 dan saat sensor bernilai >1. Buzzer yang

151
digunakan untuk alat ini adalah buzzer 5 Volt yang suaranya sangalah nyaring, jadi jika ada
maling akan terdegar hingga membangunkan yang sedang tidur di kamar. Berikut gambar
dari rangkaian buzzer tersebut.

PortB.0

Gambar 6.4c Rangkaian Buzzer

c. Rangkaian Minimum System ATMega16

Ke Sensor PIR

Downloader

Ke BUZZER

LCD

Gambar 6.4d Rangkaian Minimum System ATMega16

152
6.4.4 Program BASCOM-AVR
'==========================================================================
'Programmer: Yanuar Mukhammad
'E-mail : Yanuarm@hotmail.com
'==========================================================================
$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
$baud = 9600
$hwstack = 32
$swstack = 10
$framesize = 50

Dim Dummy As Integer


Dim Potvalue As Integer

Deflcdchar 0 , 31 , 31 , 31 , 31 , 31 , 31 , 31 , 31
Deflcdchar 1 , 31 , 17 , 17 , 17 , 17 , 17 , 17 , 31
Cls
Cursor Off

Config Pinb.0 = Output


Config Timer1 = Pwm , Prescale = 64 , Pwm = 8 , Compare A Pwm =
Clear Down , Compare B Pwm = Clear Down

Ddrb.0 = 1
Enable Interrupts
Enable Timer1
Config Adc = Single , Prescaler = 64
Start Adc
Ocr1ah = 0
Ocr1ah = 0

Do
Potvalue = Getadc(0)
Dummy = Potvalue / 2
Dummy = Dummy / 2
Ocr1bl = Dummy

Locate 2 , 2
Lcd "PIR="
Locate 2 , 8
Lcd " "
Locate 2 , 8
Lcd Dummy

'---- Buzzer
If Dummy >= 0 Then
Portb.0 = 1
End If

153
If Dummy = 0 Then
Portb.0 = 0
End If
Loop
End

6.4.5 Cara Penggunaan Alat


Cara penggunaan alat ini pertama letakkan alat ini di tempat yang dimungkinkan
ada orang atau maling yang masuk, setelah itu letakkan alat itu didekat titik deteksi, jika
semua telah selesai aktifkan alat tersebut dikala malam, supaya lebih aman letakkan buzzer
dikamar tidur penghuni, agar saat buzzer berbunyi penghuni rumah dapat bangun dari
tidurnya.

154
6.5 Membuat Jam Digital
Pada bagian ini akan dibahas bagaimana cara membuat jam digital sederhana
menggunakan mikrokontroler ATMega16 sebagai kendali utama rangkaian. Pada alat ini
hanya menampilkan tanggal dan waktu tanpa bisa disetting, jadi kalau mau disetting tanggal
dan waktunya harus melalui program utama. Berikut adalah tampilan dari alat tersebut.

Gambar 6.5a Bentuk dari jam digital Sederhana

Alat ini dilengkapi dengan layar LCD yang difungsikan untuk menampilkan
tanggal dan jam sekarang, tidak hanya itu, alat ini juga terdapat sebuah buzzer yang
digunakan sebagai alarm, jadi jika telah mencapai waktu tertentu buzzer akan berbunyi.
6.5.1 Fungsi dan Tujuan
Fungsi dari dibuatnya alat ini adalah untuk menampilkan waktu / jam secara terus
menerus, dan menampilkan tanggal yang ter-update, dan tujuan dari pembuatan alat ini
adalah untuk mengetahui bagaimana cara kerja dari rangkaian RTC (Real Time Clock) pada
suatu system.
6.5.2 Prinsip Kerja Alat
Prinsip kerja dari alat ini yaitu rangkaian RTC mengeluarkan clock pulse untuk
mengaktifkan detik pada mikrokontroler sehingga mikrokontroler dapat melakukan pencacah
secara terus menerus biarpun saat alat ini dimatikan. Mikrokontroler ATMega16 berfungsi
untuk mengatur pencacah dari RTC dan menampilkannya pada layar LCD, dan juga untuk
mengaktifkan rangkaian buzzer pada waktu tertentu, berikut adalah bagannya.

Rangkaian Minimum LCD BUZZER


RTC System

155
6.5.3 Rangkaian Hardware
Alat jam digital ini tersusun dari beberapa item utama yaitu minimum system,
rangkaian RTC dan Rangkaian buzzer.
a. Minimum System ATMega16

Downloader

LCD

RTC

Buzzer
Gambar 6.5b Skematik Minimum System ATMega16

Pada Port SCL dan SDA pada mikrokontroler ATMega16 digunakan sebagai
input dari rangkaian RTC untuk mengaktifkan pencacah pada mikrokontroler, dan untuk
buzzer berada pada portD.0.

b. Rangkaian RTC
Rangkaian RTC adalah rangkaian yang sangat penting didalam pembuatan jam
digital, fungsi dari rangkaian RTC ini adalah untuk melakukan pencacahan detik pada jam
saat alat tidak dalam kondisi aktif atau mati, jadi biarpun alat mati, saat dihidupkan jam dan
tanggal masih update. Berkut adalah skematik dari RTC.

156
Ke pin SCL
Ke pin SDA

Gambar 6.5c Skemarik Real Time Clock

Bahan-bahan:
a. Crystal 32.768KHz x 1 buah
b. Battery 3v x 1 buah
c. IC DS1307 x 1 buah
d. Resistor 10kohm x 2 buah
Untuk dapat berkomunikasi dengan minimum system, rangkaian RTC
menggunakan dua buah pin yaitu pin SCL dan SDA, tepatnya pada portC.0 dan portC.1
untuk melakukan pencacahan. Berikut adalah konfigurasi rangkaian RTC ke mikrokontroler.
VCC SCL
Rangkaian RTC Minimum
Battery SDA System

Daya yang digunakan oleh RTC untuk mengaktifkan clock pulse yaitu berasal
dari battery 3V yang terpasang pada IC DS1307. VCC digunakan hanya untuk memberikan
tegangan saat alat aktif, jika alat dalam kondisi off maka yang melakukan suplay tegangan
adalah battery 3v, agar terus melakukan pencacahan walaupun alat dalam keadaan mati.

b. Rangkaian Buzzer
Rangkaian buzzer yang digunakan adalah rangkain buzzer 12v atau 5v yang
suaranya dapat membangunkan orang yang sedang tidur, ini dimaksudkan agar alarm dapat
berfungsi sebagai alat untuk membangunkan orang tidur pada jam tertentu. Berikut adalah
rangkaian buzzer tersebut.

157
Ke PortD,0

Gambar 6.5d Skematik Rangkaian Buzzer

6.5.4 Program BASCOM-AVR


'==========================================================================
'Programmer: Yanuar Mukhammad
'E-mail : Yanuarm@hotmail.com
'==========================================================================
$regfile = "m16def.dat"
$crystal = 12000000
$baud = 9600

Config Lcdpin = Pin , Rs = Portc.2 , E = Portc.3 , Db4 = Portc.4 ,


Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7
Config Lcd = 16 * 2

$lib "ds1307clock.lib"

Config Sda = Portc.1


Config Scl = Portc.0
Const Ds1307w = &HD0
Const Ds1307r = &HD1
Config Clock = User
Dim Weekday As Byte
Dim Char As String * 10 , Tanda As String * 1
Dim Jam As String * 10 , Menit As String * 10 , Detik As String * 10
Dim Hari As String * 10 , Bulan As String * 10 , Tahun As String *
10
Dim A As Byte , B As Byte , C As Byte
Dim X As Byte , Y As Byte , Z As Byte
Dim Waktu As String * 10
Dim Tanggal As String * 10

Time$ = "13:30:00" ‘setting waktu awal


Date$ = "02-20-12" ‘setting tanggal awal

158
Ddrd.0 = 1

Print "Tanggal: " ; Date$


Print "Waktu:" ; Time$
Cls
Cursor Off
Locate 1 , 1
Lcd "Tanggal: " ; _day ; "-" ; _month ; "-" ; _year
Locate 2 , 1
Lcd "Waktu : " ; _hour ; ":" ; _min ; ":" ; _sec
Wait 1

Mulai:
Do
Print "Tanggal: " ; Date$
Print "Waktu:" ; Time$
Cls
Cursor Off
Locate 1 , 1
Lcd "Tanggal: " ; _day ; "-" ; _month ; "-" ; _year
Locate 2 , 1
Lcd "Waktu : " ; _hour ; ":" ; _min ; ":" ; _sec
Wait 1

If _hour = 4 Then ‘setting waktu alarm


Portd.0 = 1
Else
Portd.0 = 0
End If

Loop
End

'Pengambilan data RTC DS1307


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:

159
_day = Makebcd(_day) : _month = Makebcd(_month) : _year =
Makebcd(_year)
I2cstart
I2cwbyte Ds1307w
I2cwbyte 4
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

Perlu diperhatikan bahwa saat melakukan download program ke mikrokontroler,


terlebih dahulu setting waktu awal dan setting tanggal awal, diedit sesuai dengan tanggal dan
waktu sekarang, setelah didownload, maka lakukanlah download yang kedua dengan
menghilangkan kode berikut.
Time$ = "13:30:00" ‘setting waktu awal
Date$ = "02-20-12" ‘setting tanggal awal

Karena jika kode tersebut tidak dihilangkan akan melakukan looping ke tanggal dan
waktu awal ketika alat dimatikan, sehingga akan membuat program dan alat tidak berfungsi
maksimal.
Kode program yang digunakan untuk membunyikan alarm yang berupa buzzer
yaitu pada :
If _hour = 4 Then
Portd.0 = 1
Else
Portd.0 = 0
End If

Program tersebut maksudnya yaitu menghidupkan buzzer saat jam menunjukkan


4 pagi, maka alarm akan berfungsi dan aktif. Jika menginginkan rangkaian buzzer aktif pada
jam / waktu yang lain maka dapat dirubah sesuai kebutuhan.

160
6.5.5 Cara Penggunaan Alat
Cara penggunaan dari alat ini hanya menghidupkan alat dengan tegangan 12 v
atau 9 v jika terdapat regulator, namun jika tidak ada rangkaian regulator dapat menggunakan
5v. pada saat alat ini diaktifkan , akan tertera waktu awal dan tanggal awal pada layar LCD
seperti yang telah disetting sebelumnya pada program BASCOM-AVR.

161
6.6 Membuat RFID dengan RDM 630 dan Interface Visual Basic
Sudah tahu apa itu RFID?, RFID adalah sebuah alat yang diguanakan untuk
mendeteksi kode yang terdapat pada tag card, bisa dikatakan Alat pembaca kode kartu tag.
Biasanya RFID digunakan untuk pengaman rumah atau penghitung barang. RFID tanpa tag
card tidak akan berfungsi, karena tag card tersebut difungsikan untuk dibaca oleh RFID, kartu
tag ini bukan kartu sembarangan, kartu tag adalah kartu khusus yang dibuat untuk dideteksi
oleh RFID yang mana kartu tag ini telah didefinisikan suatu kode didalamnya. Kartu tag yang
satu dengan yang lainnya jika dilihat dari bentuk akan sama namun kode yang terdapat
didalamnya akan berbeda.
RFID yang akan dibahas pada bab ini menggunakan RDM630, modul ini sangat
cocok untuk proyek RFID tanpa mikrokontroler, karena modul ini memang disetting untuk
berhubungan secara langsung dengan komputer atau device lain, namun jika ingin
menghubungkan modul ini dengan mikrokontroler atau arduino juga bisa. Modul RDM630
membutuhkan tag card yang digunakan sebagai object yang akan dibaca. Modul ini berfungsi
hanya membaca kode yang terdapat pada tag card.
Pada bab ini akan dibahas mengenai koneksi modul RDM630 ke komputer, yang
mana dikomputer telah terdapat interface yang terbuat dari visual basic 6.0 yang
dimaksudkan untuk menampilkan pembacaan dari modul RDM630 pada tag card. Berikut
adalah gambar dari alat RFID berbasis modul RDM630.

Gambar 6.6aBentuk dari alat RFID berbasis RDM630

6.6.1 Fungsi dan Tujuan


Fungsi dibuatnya alat ini adalah untuk mengetahui suatu nilai yang terdapat pada
tag card / kartu, dan tujuannya adalah untuk mengetahui bagaimana cara komunikasi antara
dua device yaitu modul RFID RDM630 dengan komputer.

162
6.6.2 Prinsip Kerja Alat
Prinsip kerja dari alat ini menampilkan hasil pembacaan dari modul RDM630
terhadap tag card. Hasil pembacaan ditampilkan ke interface visual basic 6.0 melalui
komunikasi serial, bisa menggunakan serial secara nirkabel atau wireless. alat ini tidak
menggunakan mikrokontroler untuk mengolah data, jadi yang bertindak sebagai pengatur alat
dan otak adalah modul RDM630 itu sendiri. Berikut adalah bagan dari prinsip kerja alat ini.

Tag Card Modul Komputer


RDM630 Kabel DKU-5

RX, TX , GND USB port

Dari modul RDM630 menggunakan 3 jalur data yaitu RX, TX dan GND. fitur
yang disediakan oleh modul RDM630 ke komputer hanyalah port RX dan TX, sehingga
modul hanya bisa berkomunikasi dengan device lain menggunakan 2 port ini.

6.6.3 Rangkaian Hardware


Rangkaian hardware untuk membuat alat ini hanyalah 3 item yaitu modul
RDM6300, Tag card dan sebuah kabel untuk komunikasi serial.
a. Modul RDM630
Modul RDM630 adalah modul yang digunakan untuk membaca kode dari tag
card. Modul ini tidak bisa menampilkan secara mandiri mengenai kode yang dibacanya
sehingga memerlukan device lain sebagai penampil. Terdapat 2 port yang digunakan untuk
komunikasi ke device lain yaitu port Rx dan TX. Berikut adalah gambar dari modul RDM630
dan konfigurasinya.

GND VCC Led RX TX

Reader

Gambar 6.6b Bentuk dari modul RDM630 dan konfigurasinya

163
Port 1 dan 2 pada P2 digunakan untuk menghubungkan modul RDM630 ke
reader, untuk readernya telah disediakan pada saat pembelian modul ini yang mana reader
berupa lilitan kawat tembaga yang telah didesain khusus untuk membaca tag card. Modul ini
membutuhkan tegangan input VCC sebesar 5v untuk mengaktifkan readernya. Pada baris port
P3 terdapat satu pin yang digunakan sebagai led, maksudnya yaitu untuk sebagai indikator
kalau modul telah siap untuk membaca tag card.

b. Tag Card
Tag card adalah sebuah instrument yang didalamnya berisi kode-kode tertentu
yang bisa dibaca oleh suatu alat tertentu, Tag card biasanya memiliki 2 bentuk yaitu
berbentuk kartu dan berbentuk gantungan kunci, namun pada alat ini menggunakan tag card
yang bentuk kartu.

Gambar 6.6c bentuk dari Tag card yang berupa kartu

Setiap tag card memiliki konfigurasi kode yang berbeda-beda, variabel kodenya
yaitu melingkupi huruf A - Z dan dicampur angka 1 – 9 sehingga kemungkinan untuk kode
tersebut ada yang sama pada satu kartu dengan kartu lainnya sedikit sekali.

6.6.4 Interface Visual Basic


Interface visual basic digunakan untuk menampilkan hasil pembacaan dari reader
modul RDM630, karena modul RDM630 tidak memiliki device yang digunakan untuk
menampilkan data pembacaannya, maka dari itu membutuhkan device lain untuk
menampilkan datanya melalui port RX dan TX.

164
Interface visual basic ini menggunakan 2 buah form, form pertama digunakan
untuk melakukan koneksi dengan port serial, dan form kedua digunakan untuk menampilkan
dara dari data reader modul RDM630, berikut tampilannya fom1 dan form2nya.

Gambar 6.6d Tampilan Interface Form 1

Keterangan:
Item Keterangan
ComboBox Name = Combo1
Text = Com
ComboBox Name = Combo2
Text = Setting
Tombol1 Name = cmdConnect
Caption = Connect
Tombol2 Name = cmdDisconnect
Caption = Disconnect
Tombol3 Name = Command1
Caption = Close
Tombol4 Name = Command2
Caption = Monitor
Timer Name = Timer1
Interval = 1000
MSCOMM Name = MSComm1

165
Kode Program :

Private Sub cmdConnect_Click()


Dim port As Integer
On Error GoTo errcode

If MSComm1.PortOpen = False Then


MSComm1.CommPort = Combo1.ListIndex + 1
MSComm1.RThreshold = 1
MSComm1.InputLen = 0
MSComm1.Settings = Combo2.List(Combo2.ListIndex) & ",N,8,1"
MSComm1.PortOpen = True
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 Command1_Click()


Unload Me
Unload Form2
End Sub

Private Sub Command2_Click()


Form2.Show
End Sub

Private Sub Form_Load()


Dim i As Byte
For i = 1 To 16
Combo1.AddItem (i)
Next i
With Combo2
.AddItem "2400"
.AddItem "4800"
.AddItem "9600"
.AddItem "19200"
.AddItem "38400"
.AddItem "56600"

166
End With
Timer1.Enabled = False
cmdConnect.Enabled = True
cmdDisconnect.Enabled = False
End Sub

Private Sub Timer1_Timer()


MSComm1_OnComm
End Sub

Gambar 6.6e Tampilan Interface Form2

Keterangan:
Item Keterangan
TextBox Name = Text1
Text = none
Timer Name = Timer2
Interval = 1000

Kode Program:
Private Sub Form_Load()
Form2.Timer2.Enabled = True
End Sub

Private Sub Text1_Change()


'Timer1.Enabled = False

' MSComm1.InBufferCount = 0
'FGerbang_Keluar.Focus()
'Timer2.Enabled = False
End Sub

Private Sub Timer2_Timer()


Dim data As String
Dim buffer As String
If Form1.MSComm1.InBufferCount > 0 Then

167
buffer = Form1.MSComm1.Input
data = Mid$(buffer, 2, 12)
'If data <= 12 Then

'MSComm1.InBufferCount = 0
' My.Computer.Audio.Play(My.Resources.try_again,
AudioPlayMode.Background)
'MsgBox("Ulangi")
'Else
'With Text1
'.SelStart = Len(.Text)
'.SelText = data
'End With
'Else
Form2.Text1.Text = data
Form1.MSComm1.Output = "A" & Chr$(13)
'MSComm1.InBufferCount = 0
End If
'End If
End Sub

6.6.5 Cara Penggunaan Alat


Cara penggunaan alat ini pertama hubungkan port RX, TX dan GND ke kabel
DKU-5 atau yang lain, setelah itu nyalakan modul RDM630 dengan diberi tegangan 5v. pada
layar komputer tampilkan program interface dari VB 6.0 yang telah dibuat. Konekkan dengan
port serial yang terkait, jika berhasil konek maka tekan tombol monitor untuk membuka
form2, pada form 2 terdapat textbox yang digunakan untuk menampilkan hasil pembacaan
dari modul RDM630.
Dekatkan Tag card pada reader modul RDM630 yang berupa lilitan kawat,
setelah itu akan terlihat kode yang tersimpan pada kartu tag tersebut pada textbox form2.

168
6.7 Membuat RFID Dengan Reader ID-12

Seperti yang telah dijelaskan sebelumnya, bahwa fungsi dari RFID adalah untuk
membaca rangkaian kode-kode yang terdapat pada tag card. Variasi kode dari tag card
mencakup nilai 1-9 dan huruf A-Z sehingga setiap tag card kecil kemungkinan berkode sama.
Pembahan RFID pada bab ini mengunakan ID-12 yang dikomunikasikan ke
mikrokontroler, kemudian mikrokontroler akan mengeksekusi data tersebut dengan
menghidupkan led merah atau hijau, jika kartu tersebut telah terdaftar maka akan bernilai
hijau jika didekatkan ke ID-12, jika belum terdaftar maka akan menghidupkan lampu merah.
Berkut adalah tampilan dari alat RFID menggunakan ID-12.

Gambar 6.7a Bentuk Dari RFID menggunakan ID-12

ID-12 pada alat ini berfungsi sebagai reader untuk membaca kode-kode yang
terdapat pada suatu tag card, kemudian dari hasil pembacaan ID-12 dikirimkan ke
mikrokontroler untuk pemrosesan data. Perbedaan RFID menggunakan ID-12 dengan
RDM630 yaitu jika ID-12 membutuhkan suatu rangkaian untuk bisa mengaktifkannya,
rangkaian tersebut telah didesain khusus untuk ID-12, jadi jika hanya ID-12 saja tanpa
rangkainnya tidak akan bisa aktif, berbeda dengan RDM630, yang mana modul ini langsung
bisa digunakan tanpa memerlukan rangkaian tambahan dan readernya pun telah ada pada saat
pembelian modul ini.

6.7.1 Tujuan dan Fungsi


Tujuan dari pembuatan alat ini adalah untuk mengetahui cara kerja dari ID-12
yang berkoordinasi dengan mikrokontroler ATMega8535. Fungsinya adalah untuk bisa
sebagai bahan pembelajaran dan pengembangan mengenai teknologi RFID lebih lanjut.

169
6.7.2 Prinsip Kerja Alat
Prinsip kerja dari alat ini adalah mengeksekusi data yang dibaca oleh reader ID-
12 ke 3 buah led, jika tampilan default yaitu lampu putih menyala sebagai tanda bahwa alat
siap membaca tag card yang didekatkan. Terdapat led hijau dan merah untuk sebagai
indikator bahwa tag card tersebut telah terdaftar atau belum, jika belum terdaftar maka akan
menghidupkan lampu merah, sebaliknya jika terdaftar akan menghidupkan lampu hijau.
Berikut skema kerjanya.

Tag Card Reader MinSys 3 buah


ID-12 ATMega8535 LED

Tag card dibaca oleh reader ID-12, dari ID-12 dikirmkan data ke mikrokontroler
ATMega8535, disini data diproses dan dipilah sesuai dengan program, dari mikrokontroler
dikeluarkan ke dua buah indikator led yaitu led merah dan led hijau.

6.7.3 Rangkaian Hardware


Rangkaian hardware penyusun alat ini adalah rangkaian reader ID-12, minimum
system ATMega8535 dan 3 buah led sebagai output.
a. Rangkaian Reader ID-12
Reader ID-12 bertugas untuk membaca kode-kode yang terdapat pada tag card,
yang mana jika reader ID-12 ini berdiri sendiri dia tidak akan bisa aktif, karena reaer ID-12
ini bukanlah sebuah modul melainkan komponen yang memerlukan rangkaian untuk
mengaktifkannya. Berikut adalah bentuk dan skematiknya.

TX ke Minsys

S3 RX ke komputer

Ke RS232

S1 S2

Gambar 6.7b Bentuk ID-12 dan Skematik Rangkaiannya

170
Bahan-bahan:
a. ID-12 x 1 buah
b. push button x 3 buah
c. Resistor 100 ohm x 2 buah
d. Resistor 1Kohm x 2 buah
e. Led biru 3 mm x 1 buah
f. Buzzer 5v x 1 buah
g. Transistor BC337 x 1 buah
h. DB9 x 1 buah (opsional)

Perlu diperhatikan untuk konfigurasi dari rangkaian ID-12, pada skematik


rangkaian terdapat tiga buah saklar, yang mana tiap saklar tersebut memiliki fungsi yang
berbeda-beda yaitu saklar 1 (S1) untuk kode ASCII, saklar 2 (S2) untuk kode Wiegand26 dan
yang satu lagi saklar 3 (S3) untuk Magnet Emulation, pada penjelasan dibagian ini
menggunakan saklar ASCII yang terhubung ke GND, atau dengan kata lain output reader
ID-12 berjenis ASCII, biasanya pengguna reader ID-12 menggunakan fungsi saklar ASCII
sebagai output keluaran dari ID-12 ini, lalu bagaimana caranya agar rangkaian reader ID-12
berformat output kode ASCII? Berikut table penjelasannya.

Terlihat dengan jelas bahwa output dari rangkaian reader ID-12 dapat berupa
ASCII, Magnet Emulation dan Wiegand, maka dari perlunya memahami konfigurasi ini
terlebih dahulu agar hasil output ID-12 tidak error, untuk menghasilkan output kode ASCII
pada rangkaian reader ID-12 dapat menghubungkan saklar 1 ke GND, dan saklar yang lain
dibiarkan terbuka, hanya saklar 1 saja yang dihubungkan ke GND, seperti yang terlihat pada
table diatas, berikut adalah penjelasan lengkapnya.

1. ASCII = Saklar 1 terhubung ke GND, saklar 2 dan 3 terbuka / tidak terhubung ke GND

2. Magnet Emulation = Saklar 3 terhubung ke GND, saklar 1 dan 2 terbuka / tidak terhubung
ke GND / 0 V

171
3. Wiegand26 = Saklar 2 terhubung ke GND, saklar 1 dan 3 terbuka / tidak terhubung ke
GND / 0 V

Selain ID-12 ini dapat mengeluarkan tiga buah jenis output, RFID dengan reader
ID-12 ini juga dapat melakukan dua buah komunikasi data yaitu komunikasi dari rangkaian
ID-12 ke mikrokonroler menggunakan port D0, dan komunikasi data dari ID-12 ke komputer
menggunakan port D1. Berikut ilustrasinya.

Minimum
Rangkaian
System
Reader ID-12
D0 RX

RX
Komputer
Rangkaian
Reader ID-12 Kabel DKU-5
D1 Port USB

Seperti pada ilustrasi bahwa yang berperan untuk berkomunikasi dari rangkaian
ID-12 ke device lain adalah port D0 dan D1 yang mana port ini sebenarnya adalah port RX
dan TX sehingga port ini memang di fungsikan untuk berhubungan device lain.
Saat rangkaian ID-12 ini membaca suatu kode dari tag card, rangkaian ID-12 ini
akan menghidupkan led yang terpasang pada rangkaian, saat led menyala, saat itu pula buzzer
akan berbunyi untuk menandakan bahwa ID-12 mendapatkan suatu data yang siap dikirimkan
ke device lain.

b. Minimum System ATMega8535


Seperti biasa minimum system ATMega8535 ini berfungsi sebagai otak dan
pemrosesan data dari reader ID-12 untuk dikeluarkan dalam bentuk nyala led. Pada minimum
sistem ini disambungkan ke tiga buah led yang berwarna putih, hijau dan merah. Berikut
adalah skematik minimim sistemnya yang terhubung ke rangkaian ID-12.

172
Downloader

LED

Regulator
LCD

Gambar 6.7c Tampilan Skematik ATMega16 / 8535 / 32

Bahan-Bahan :

1. Crystal 12Mhz x 1 buah


2. ATMega16 + Socket 40 pin x 1 buah
3. Capasitor 22p x 2 buah
4. LCD Display x 1 buah
5. Resistor 4K7 x 1buah
6. Capasitor 104p x 4 buah
7. IC7805T x 1 buah
8. Capasitor polar 100uF x 1 buah
9. Capasitor polar 10uF x 1 buah
10. Capasitor 103p x 1 buah
11. Pinheader Male Secukupnya
12. Pinheader Female Secukupnya

173
Untuk menghubungkan antara rangkaian RFID dengan minimum system
ATMega16 dapat dilihat pada Gambar 6.7d, yang diperlukan hanyalah kabel penghubung
antara D0 pada ID-12 dengan port RX pada mikrokontroller

Led Output

Gnd

LCD

Buzzer

S3 Serial untuk ke komputer

S1 S2

Gambar 6.7d Skematik Minimum System yang Terhubung ke Rangkaian ID-12

Port yang digunakan untuk komunikasi ke rangkaian reader ID-12 adalah port RX,
karena port ini adalah port untuk input, yang mana dapat menerima data dari device lain.
Pada portB.0, portB.1 dan portB.2 disambungkan rangkaian led yang difungsikan untuk
sebagai indikator dari pembacaan reader ID-12.

174
6.7.4 Program BASCOM-AVR
$regfile = "m16def.dat"
$crystal = 12000000
$baud = 9600
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 Portb = Output
Portb = 0
Led1 Alias Portb.0 ‘led hijau
Led2 Alias Portb.1 ‘led merah
Led3 Alias Portb.2 ‘led putih
Dim Y As String * 20 , Id As String * 10
Dim X As Integer

Locate 1 , 1
Lcd “Tutorial RFID”
For X = 1 To 20
Shiftlcd Left
Waitms 100
Next
Cls

Portb.2 = 1 ‘untuk menyalakan lampu putih sebagai default

Do
Y = Inkey()
Input Y Noecho
Id = Mid(y , 8 , 7)
‘mengambil data ke 8 sampai tujuh data selanjutnya
‘Id = Right(y , 7)
Cls
Cursor Off
Locate 1 , 1
Lcd “Dekatkan Kartu”
Locate 2 , 5
Lcd Id
Wait 2
Select Case Id

Case “AED523D” : ‘jika yang terdeteksi kode AED523D


Led1 = 1 ‘ led hijau menyala
Led2 = 0
Led3 = 0
Cls
Cursor Off
Locate 1 , 3
Lcd “Terdaftar”
Wait 2

Case “AF13F4C” : ‘jika yang terdeteksi kode AF13F4C


Led1 = 0
Led2 = 1 ‘led merah menyala
Led3 = 0

175
Cls
Cursor Off
Locate 1 , 3
Lcd “Belum terdaftar”
Wait 2
End Select
Loop

6.7.5 Cara Penggunaan Alat

Untuk cara penggunaan alat ini sangatlah mudah, hanya perlu mendekatkan tag
card bisa berupa kartu atau gantungan kunci ke reader ID-12, maka reader akan membaca
kode yang tersimpan didalam tag card tersebut dan akan mengirimkannya ke mikrokontroler
untuk diolah datanya, jika kode kartu ” AED523D “ maka led hijau akan menyala, jika
“AF13F4C” maka led merah yang akan menyala.

176
6.8 Membuat Fusebit AVR Doctor

Pernah mengalami mikrokontroler error? atau mikrokontroler tidak mau berjalan


semestinya?, komponen elektronika yang berhubungan dengan listrik pasti akan sering sekali
mengalami error dan biasanya komponen tersebut relatif sudah lama tidak dipakai atau
dipakai terus-terusan, nah kejadian ini-lah yang akan diantisipasi pada pembahasan kali ini,
yang mana pada pembahasan kali ini membahas tentang bagaimana membuat AVR Doctor
yang digunakan untuk memperbaiki mikrokontroler yang error saat beroperasi. Error dari
mikrokontroler sangat bervariasi untuk kejadian yang sering sekali dialami yaitu masalah
terkuncinya port atau bahasa lainnya terkena “lock”, jadi saat mikrokontroler didownload
sebuah program dia masih bisa menerima, namun saat proses outputnya atau eksekusi data ke
suatu port dia tidak mau melakukannya, hasilnya port tersebut seperti tidak berfungsi, nah
disinilah fungsi dari AVR Doctor dibutuhkan.
AVR Doctor ini bisa membuka kembali port mikrokontroler yang ter-lock oleh
suatu system internal mikrokontroler dan juga bisa menyembuhkan ketika suatu
mikrokontroler tidak mau didownload sebuah program, itu artinya port MISO, MOSI, SCK
ada yang mengalami “lock” sehingga tidak bisa difungsikan port-nya. Berikut ini adalah
gambar dari sebuah Fusebit AVR Doctor.

Gambar 6.8a Bentuk dari AVR Fusebit Doctor

177
AVR Fusebit Doctor ini bisa menyembuhkan berbagai tipe mikrokontroler,
terutama yang bertipe AVR, berikut adalah tipe-tipe mikrokontroler yang bisa disembuhkan
oleh alat ini.

1kB:
AT90s1200, Attiny11, Attiny12, Attiny13, Attiny15
2kB:
Attiny2313, Attiny26, Attiny261, Attiny28, AT90s2333, Attiny22, Attiny25, AT90s2323, AT90s2343
4kB:
Atmega48, Atmega48P, Attiny461, Attiny43U, Attiny4313, Attiny48, AT90s4433, AT90s4414,
AT90s4434, Attiny45
8kB:
Atmega8515, Atmega8535, Atmega8, Atmega88, Atmega88P, AT90pwm1, AT90pwm2,
AT90pwm2B, AT90pwm3, AT90pwm3B, AT90pwm81, AT90usb82, Attiny861, Attiny88, Attiny85
16kB:
Atmega16, Atmega16U4, Atmega16M1, Atmega161, Atmega162, Atmega163, Atmega164,
Atmega164P, Atmega165, Atmega168, Atmega168P, Atmega169, AT90pwm216, AT90pwm316,
AT90usb162
32kB:
Atmega32, Atmega32U4, Atmega32M1, Atmega324, Atmega324P, Atmega325, Atmega3250,
Atmega325P, Atmega3250P, Atmega328, Atmega328P, Atmega329, Atmega3290, AT90can32
64kB:
Atmega64, Atmega64M1, Atmega649, Atmega6490, Atmega640, Atmega644, Atmega644P,
Atmega645, Atmega6450, AT90usb646, AT90usb647, AT90can64
128kB:
Atmega103, Atmega128, Atmega1280, Atmega1281, Atmega1284, Atmega1284P, AT90usb1286,
AT90usb1287, AT90can128
256kB:
Atmega2560, Atmega2561

6.8.1 Fungsi Dan Tujuan


Fungsi dibuatnya alat ini adalah untuk menyembuhkan mikrokontroler terutama
yang bertipe AVR dari terkuncinya suatu port mikrokontroler atau kata lainnya terkena
“lock”, dengan begitu mikrokontroler diharapkan bisa digunakan kembali tanpa harus
membeli baru. Untuk tujuannya agar mengetahui bagaimana cara penyembuhan dari keadaan
port mikrokontroler yang mengalami “lock”.

6.8.2 Prinsip Kerja Alat


Prinsip kerja dari alat ini yaitu merepair fusebit atau internal clock yang membuat
suatu port mengalami lock. Untuk penggunaannya hanyalah menekan tombol start yang
diikuti dengan nyala-nya led berwarna hijau, yang mengindikasikan bahwa fusebit telah

178
disembuhkan dan bisa kembali digunakan, jika led tidak menyala berarti mikrokontroler
tersebut tidak error pada fusebitnya namun komponen internalnya ada yang rusak sehingga
tidak bisa diperbaiki dengan alat ini. Alat ini dilengkapi dengan sebuah led merah sebagai
indikator bahwa alat ini siap digunakan.

6.8.3 Rangkaian Hardware

Rangkaian penyusun untuk membuat alat ini tidaklah banyak hanya memerlukan
beberapa komponen yang biasa digunakan seperti kapasitor, resistor, led dan lainnya. Berikut
adalah skematiknya.

Gambar 6.8b Skematik AVR Fusebit Doctor

Gambar skematik untuk lebih jelas dan detailnya diatas dapat diperoleh di web
sumbernya langsung yaitu http://www.instructables.com/id/How-to-fix-dead-atmega-and-
attiny-avr-chips/#step1. Alat ini terdapat satu buah ATMega8 yang digunakan sebagai dokter
untuk menyembuhkan mikrokontroler yang terkena “lock” pada sistem internalnya.
ATMega8 ini tidak berjalan sendiri melainkan harus dimasukkan sebuah program untuk bisa
melakukan penyembuhan atau perbaikan, program ini sudah tersedia satu paket dengan
skematik dan gambar rangkaianya saat paket ini didownload, nama dari program ini adalah
atmega_fusebit_doctor_2.01_BETA.HEX. untuk skematik yang ada di paket dalam bentuk

179
rar ini menggunakan software EAGLE, yang mana software ini biasa digunakan untuk
pembuatan PCB, untuk lebih jelas tentang software EAGLE ini dibahas pada bab pembuatan
PCB.

Bahan – bahan:
a. Socket IC 28pin x 2 buah
b. Socket IC 40pin x 1 buah
c. Socket IC 20pin x 1 buah
d. ATMega8 x 1 buah
e. IC Regulator 7805 x 1 buah
f. Led 3mm merah x 1 buah
g. Led 3mm hijau x 1 buah
h. Transistor BC557 x 2 buah
i. Transistor BC547 x 1 buah
j. Resistor 1Kohm x 19 buah
k. Resistor 4K7ohm x 2 buah
l. Resistor 330ohm x 1 buah
m. Resistor 10Kohm x 1 buah
n. Resistor 100ohm x 1 buah
o. Push button x 1 buah
p. Kapasitor 10uF/16v x 1 buah
q. Kapasitor 100uF/25v x 1 buah
r. Kapasitor 10nF x 1 buah
s. Pinheader tunggal x 1 buah

Perlu diperhatikan bahwa pada JP1 terdapat dua buah pin yang mana biasanya
port ini tidak disambungkan jadi masih tetap dalam posisi terpisah dan terbuka untuk
melindungi program yang ada didalamnya saat dilakukan repairing fusebit. Untuk JP2
digunakan untuk menampilkan proses repairing fusebit pada komputer, sehingga dapat
diketahui mengenai sistem dan data pemrosesan yang dilakukan oleh AVR Fusebit Doctor
ini.

180
6.8.4 Cara Penggunaan Alat
Cara penggunaan alat ini pertama masukkan mikrokontroler yang ter-lock
kedalam socket yang tepat misalnya ATMega8 ke socket 28pin, ATMega16 ke socket 40pin
dst, kemudian aktifkan alat ini dengan memberikan tegangan 12 v atau 9 v ke port input yang
berupa T-Blok sehingga akan nampak led merah menyala sebagai tanda bahwa alat ini sudah
siap untuk digunakan, langkah berikutnya yaitu menekan tombol start untuk memulai
repairing fusebit, saat tombol ditekan maka akan menyala blink atau berkedip sesaat yang
artinya proses repairing telah selesai dilakukan dan fusebit berhasil diperbaiki atau
disembuhkan, namun jika tombol start ditekan tanpa menghidupkan led hijau berarti
mikrokonroler tersebut mengalami kerusakan tidak pada fusebitnya namun sistem internal
yang lain.

181
6.9 Membuat Alat Pengukur Berat Badan
Pernah mengalami masalah berat badan? Atau tidak tahu tentang bagaimana cara
menetukan berat badan yang ideal?, nah disinilah jawabannya. Pada bagian ini akan dibahas
mengenai bagaimana cara membuat alat yang dapat mengukur apakah berat badan kita sudah
ideal atau belum, dengan alat ini juga didapatkan klasifikasi tentang berat badan seseorang,
misalnya orang tersebut kekurangan berat badan, ideal ataukah mengalami obesitas. Berikut
adalah gambar dari alat tersebut.

Gambar 6.9a Bentuk dari Alat Pengukur Berat Badan

Alat ini dilengkapi dengan dua buah tombol yang digunakan untuk melakukan
input data yang berupa tinggi badan dan berat badan, sehingga data tersebut akan dikalkulasi
dan akan didefinisikan apakah orang tersebut mengalami kekurangan berat badan, ideal atau
obesitas. Terdapat sebuah LCD yang digunakan untuk menampilkan deskripsi tentang kriteria
berat badan yang dialami seseorang.
6.9.1 Fungsi dan Tujuan
Tujuan dibuat alat ini adalah untuk mengetahui cara kerja dari penyimpanan data
yang terdapat pada mikrokontroler melalui eram byte. Fungsinya untuk mengetahui berat
ideal seseorang, dan memberikan klasifikasi tentang berat badan yang diderita.
6.9.2 Prinsip Kerja Alat
Prinsip kerja alat ini hanyalah mengolah input, data yang dimasukkan berupa
tinggi badan dan berat badan, kemudian melakukan klasifikasi tentang data tersebut apakah
dikategoriakn berat badan ideal atau tidak. Berikut skemanya.

Data berat Data disimpan Deskripsi hasil


badan dan dan diproses proses
tiinggi badan

182
Alat ini menggunakan ATMega8 sebagai media pemrosesan data dan tempat
penyimpanan, sehingga data yang telah disimpan tersebut dilakukan pemrosesan data. Data
yang telah diproses dilakukan klasifikasi mengenai 4 kriteria yaitu kekeurangan berat badan
jika nilai perpaduan antara tinggi badan dan berat badan kurang dari 18 maka akan dikatakan
kekurangan berat badan, untuk nilai diantara 18 dan 23 dapat dikatakan orang tersebut
memiliki berat ideal, apabila nilainya 23 sampai 27 dikatakan obesitas ringan dan lebih dari
27 dikatakan obesitas berat. Data-data klasifikasi tersebut didapat dari data tentang
pengukuran berat badan ideal yang menggunakan rumus berikut

Rumus BMI = berat badan (kilo gram) dibagi dengan kuadrat tinggi badan (meter)
= satuannya kg/ m2.

Pemrosesan data menggunakan kalkulasi rumus BMI, setelah didapat nilai


hasilnya, akan dilakukan klasifikasi terhadap nilai yang terbaca. Berikut tabel klasifikasinya.

Tabel 5.12 Tabel Klasifikasi Nilai


NILAI KLASIFIKASI
X < 18 Kekurangan Berat Badan
18 < X < 23 Berat Badan Ideal
23 < X < 27 Obesitas Ringan
X > 27 Obesitas berat

6.9.3 Rangkaian Hardware


Rangkaian hardware untuk alat ini hanyalah menggunakan 2 buah item yaitu
minimum system ATMega8, layar LCD dan dua buah tombol push button.
a. Tombol Tekan (push button)
Tombol yang dipakai untuk alat ini adalah tombol tekan, yang mana jika ditekan
dia akan hidup dan dilepas akan mati, seperti halnya tombol reset pada minimum system.
Tombol tekan ini diletakkan pada PortD.5 dan PortD.6 pada minimum system ATMega8,
yang mana tombol ini digunakan untuk memberikan nilai input yang diperlukan untuk
melakukan pemrosesan data. Perlu diperhatikan bahwa pada alat ini tombol akan aktif jika
diberikan GND sehingga nilai aktifnya adalah 0.

183
Untuk bentuk dan tampilan push button adalah seperti Gambar 6.9b dan untuk
konfigurasi ke mikrokontroller seperti Gambar 6.9c

Ke PortD.5 GND

Gambar 6.9b Bentuk dari Push Button


Ke Port D.6 GND
Gambar 6.9c Konfigurasi ke Mikrokontroller

b. Minimum System.

LCD

TOMBOL

VCC 5 volt

Downloader

Gambar 6.9d Skematik Minimum System ATMega8

184
6.9.4 Program BASCOM-AVR
'==========================================================================
'Programmer: Yanuar Mukhammad
'E-mail : Yanuarm@hotmail.com
'==========================================================================
$regfile = "m8def.dat"
$crystal = 12000000
Config Lcdpin = Pin , Rs = Portc.4 , E = Portc.5 , Db4 = Portc.0
Config Lcdpin = Pin , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3
Config Lcd = 16 * 2
Config Pind.5 = Input
Config Pind.6 = Input

Dim Jam As Byte , Men As Byte , Tinggi As Single , X As Single , N


As Single
Dim Datajam As Eram Byte , Datamenit As Eram Byte

Declare Sub Setting


Declare Sub Main
Declare Sub Lanjut
Declare Sub Mulai

Tombol1 Alias Pind.5


Tombol2 Alias Pind.6
Set Portd.5
Set Portd.6

Cls
Cursor Off

Portd.5 = 1
Portd.6 = 1

Upperline
Lcd "Cari berat ideal"
Locate 2 , 1
Lcd " Setting " ; " " ; " Mulai "
Do
If Tombol1 = 0 Then
Bitwait Tombol1 , Set
Call Setting
End If

If Tombol2 = 0 Then
Cls
Upperline
Lcd "Mulai Hitung"
Wait 1
Cls
Lowerline
Lcd "Setting dulu"
Wait 1
Bitwait Tombol1 , Set

185
Call Setting
End If
Loop

Sub Setting
Cls
Upperline
Lcd "Setting centre"
Locate 2 , 2
Lcd " Atur " ; " " ; " Back "
Do
If Tombol1 = 0 Then
Bitwait Tombol1 , Set
Goto Aturjam
End If
If Tombol2 = 0 Then
Bitwait Tombol2 , Set
Call Main
End If
Loop
End Sub
Sub Main
Cls
Upperline
Lcd "Cari berat ideal"
Locate 2 , 1
Lcd " Setting " ; " " ; " Mulai "
Do
Tinggi = Men / 100
X = Tinggi * Tinggi
N = Jam / X

If Tombol1 = 0 Then
Bitwait Tombol1 , Set
Call Setting
End If

If Tombol2 = 0 Then
Bitwait Tombol2 , Set
Call Mulai
End If
Loop
End Sub

Sub Mulai
Upperline
Lcd "berat :" ; Jam
Locate 2 , 1
Lcd "tinggi :" ; Men
Locate 2 , 12
Lcd "Next"
Cls
Do

If Tombol1 = 0 Then
Bitwait Tombol1 , Set

186
Call Setting
End If

If Tombol2 = 0 Then
Bitwait Tombol2 , Set
Goto Lanjut
End If
Loop
End Sub

Lanjut:

Tinggi = Men / 100


X = Tinggi * Tinggi
N = Jam / X

Upperline
Lcd "sdang menghitung"
Wait 1
Cls
Lowerline
Lcd "berat ideal"
Wait 1
Cls
Upperline
Lcd "berat idealmu"
Lowerline
Lcd "adalah :" ; N
Wait 1
Cls

If N < 18 Then
Cls
Upperline
Lcd "Anda Kekurangan"
Lowerline
Lcd "berat badan"
End If

If N >= 18 And N < 23 Then


Cls
Upperline
Lcd "berat Anda"
Lowerline
Lcd "IDEAL"
End If

If N >= 23 And N < 25 Then


Cls
Upperline
Lcd "Anda terkena"
Lowerline
Lcd "Kegemukan"
End If

If N >= 25 And N < 27 Then

187
Cls
Upperline
Lcd "Anda terkena"
Lowerline
Lcd "Obesitas ringan"
End If

If N >= 27 And N < 30 Then


Cls
Upperline
Lcd "Anda terkena"
Lowerline
Lcd "Obesitas sedang"
End If

If N > 30 Then
Cls
Upperline
Lcd "Anda terkena"
Lowerline
Lcd "Obesitas Berat"
End If

If Tombol1 = 0 Then
Bitwait Tombol1 , Set
Call Setting
End If

If Tombol2 = 0 Then
Bitwait Tombol2 , Set
Call Setting
End If
Return

Aturjam:
Jam = Datajam
Cls
Jam = 30
Do

Upperline
Lcd "masukkan Berat"
Lowerline
Lcd "Berat= " ; Jam ; " "

If Tombol1 = 0 Then
Incr Jam
Waitms 50
If Jam > 80 Then
Jam = 0
End If
End If
If Tombol2 = 0 Then
Datajam = Jam
Bitwait Tombol2 , Set
Exit Do

188
End If
Waitms 50
Loop
Waitms 100
Cls

Cls
Men = Datamenit
Tinggi = Men / 100
Men = 140
Do
Upperline
Lcd "masukkan tinggi"
Lowerline
Lcd "Tinggi= " ; Men ; " "

If Tombol1 = 0 Then
Incr Men
Waitms 50
If Men > 200 Then
Men = 0
End If
End If
If Tombol2 = 0 Then
Datamenit = Men
Tinggi = Men / 100
Bitwait Tombol2 , Set
Exit Do
End If
Waitms 50
Loop
Return

6.9.5 Cara Penggunaan Alat


Cara penggunaan alat ini sangatlah mudah, karena terdapat petunjuk untuk
memilihnya, pertama masukkan nilai tinggi badan seseorang, setelah itu tekan tombol next,
maka akan nampak pertanyaan untuk memasukkan nilai berat badan, jika sudah tekan tombol
next, maka akan dilakukan proses perhitungan, dengan hasil akhir adalah berupa pernyataan,
yang menyebutkan mengenai klasifikasi nilai yang didapat.

189
6.10. Membuat Alat Pengukur Jarak Benda Digital

Pada kesempatan kali ini akan dibahas mengenai cara membuat alat yang menyerupai
penggaris, bedanya kalau penggaris bersifat analog, sedangkan alat yang akan dibuat adalah
bersifat digital, teknologi digital sebenarnya lebih memudahkan manusia dalam kehidupan
sehari-hari dari pada teknologi analog, seperti halnya penggaris analog dengan penggaris digital,
jika penggaris analog kita harus melihat secara detail nilai pada penggaris, namun untuk
penggaris digital yang akan dibuat tidaklah perlu untuk melihat detail mengenai hasil
pengukuran karena telah tertera dengan jelas hasil pengukurannya pada layar LCD display.
Untuk gambar ilustrasinya seperti pada Gambar 6.10a

LCD Display

HC-SR04

Gambar 6.10a Ilustrasi Tampilan Pengukur Jarak Digital

Pada alat ini menggunakan sensor jarak HC-SR04 yang mana menurut datasheet jarak
ukur minimal adalah 3 cm dan jarak ukur maksimal adalah 3m, tapi pada alat ini disetting agar
jarak maksimal hanya 99cm dan jarak minimal adalah 1 cm, sehingga jika alat ini digunakan
melebihi dari range tersebut, alat ini tidak akan berfungsi maksimal, karena range jaraknya hanya
dari 1 cm sampai 99cm tidak bisa lebih, karena keterbatasan itulah mengapa alat ini juga bisa
disamakan dengan penggaris analog yang panjangnya 1 meter. Mikrokontroler pada pembuatan
alat ini menggunakan mikrokontroller ATMega16 dan system kerja keseluruhan alat yaitu
mengukur jarak benda yang kurang dari 1 meter.

6.10.1 Fungsi dan Tujuan

Fungsi dibuatnya alat ini adalah untuk mengembangkan teknologi penggaris 1 meter,
yang bersifat analog, sehingga dapat dikonversikan menjadi penggaris digital, karena teknologi
digital lebih memudahkan manusia dari pada teknologi analog. Untuk tujuannya yaitu untuk

190
mengetahui bagaimana sensor HC-SR04 bekerja dan berkolaborasi dengan mikrokontroller
ATMega16

6.10.2 Prinsip Kerja Alat

Prinsip kerja alat ini menyerupai penggaris analog 1 meter, yang mana untuk
mengukur jarak benda yang pada range kurang dari atau sama dengan 1 meter. Alat ini
menggunakan sensor HC-SR04 yang diposisikan sebagai mata atau detector untuk mengukur
jarak suatu benda, setelah sensor mendeteksi jarak suatu benda, maka sensor akan mengirimkan
data ke mikrokontroller ATMega16, kemudian dari ATMega16 data tersebut diolah dan
dikonversikan sehingga menjadi nilai-nilai yang bisa dipahami oleh pengguna, terdapat LCD
display yang difungsikan untuk menampilkan jarak ukur yang ditangkap oleh sensor. Bagan
prinsip kerjanya adalah seperti berikut

Sensor Mikrokonroller LCD Display


HC-SR04 ATMega16

Seperti itulah prinsip kerja dari alat ini, yang tidak lain sama seperti penggaris dengan
panjang 1 meter, untuk kinerja dari sensor HC-SR04 yaitu terdapat trigger dan echo yang mana
keduanya adalah system yang digunakan untuk pengukuran jarak, trigger mengeluarkan
gelombang ultrasonic sehingga jika terdapat benda yang kurang dari 1 meter, gelombang
ultrasonik tersebut akan memantul dari benda ke bagian echo sensor, pengukuran jarak diambil
dari saat trigger mengeluarkan gelombang ultrasonik sampai echo menerima sinyal pantulan dari
gelombang ultrasonik tersebut, terdapat timer yang diaktifkan pada mikrokonroller yang mana
timer tersebut difungsikan untuk mengambil lama waktu antara trigger mengeluarkan gelombang
ultrasonik dan echo menerima gelombang ultrasonik, tugas mikrokonroller adalah mengolah data
dari timer kemudian di konversikan menjadi nilai-nilai yang mudah dipahami oleh pengguna.

191
6.10.3 Rangkaian Hardware

Rangkaian hardware yang diperlukan dalam pembuatan alat ini tidaklah banyak,
hanya memerlukan rangkaian minimum system dengan tampilan LCD, dan hardware sensor
jarak HC-SR04.
a. Sensor HC-SRF04
Prinsip kerja HC-SR04 adalah transmitter memancarkan seberkas sinyal ultrasonic
(40KHz) yang bebentuk pulsatic, kemudian jika di depan HC-SR04 ada objek padat maka
receiver akan menerima pantulan sinyal ultrasonic tersebut. Receiver akan membaca lebar pulsa
(dalam bentuk PWM) yang dipantulkan objek dan selisih waktu pemancaran, dengan pengukuran
tersebut, jarak objek di depan sensor dapat diketahui. Untuk lebih jelasnya, perhatikan Gambar
6.10b di bawah ini :

Gambar 6.10b HC-SR04 Timing Diagram

Untuk mengaktifkan HC-SR04, mikrokontroler harus mengirimkan pulsa positif


minimal 10us melalui pin trigger, maka HC-SR04 akan mengeluarkan sinyal ultrasonic sebesar 8
cycle dan selanjutnya HC-SR04 akan memberikan pulsa 100us-18ms pada outputnya tergantung
pada informasi jarak pantulan objek yang diterima. Berikut ini adalah data perbandingan antara
sudut pantulan dan jarak, untuk mengaktifkan HC-SR04, mikrokontroler harus mengirimkan
pulsa positif minimal 10us melalui pin trigger, maka HC-SR04 akan mengeluarkan sinyal

192
ultrasonic sebesar 8 cycle dan selanjutnya HC-SR04 akan memberikan pulsa 100us-18ms pada
outputnya tergantung pada informasi jarak pantulan objek yang diterima.
Bagaimana konfigurasi sensor HC-SR04 ke mikrokontroller?, sensor HC-SR04
memiliki empat buah kaki yaitu VCC, GND, Trigger dan Echo, tampilannya seperti Gambar
6.10c

Gambar 6.10c Bentuk dan Konfigurasi Sensor HC-SR04


Konfigurasi dari empat kaki sensor HC-SR04 (Trigger, Echo, Vcc dan Gnd) ke
mikrokontroller ATMega16 adalah seperti berikut ini

5 V  ke VCC Minimum System


GND  ke GND Minimum System
Trigger ( T )  ke PortD.4 Mikrokontroller
Echo( R )  ke PortD.5 Mikrokontroller

Deskripsi sensor :
Module main technical parameters:
1.Working Voltage : 5V(DC)
2.Static current: Less than 2mA.
3.Output signal: Electric frequency signal, high level 5V, low level 0V.
4.Sensor angle: Not more than 15 degrees.
5.Detection distance: 2cm-450cm.
6.High precision: Up to 0.3cm
7.Input trigger signal: 10us TTL impulse
8.Echo signal : output TTL PWL signal

193
b. Rangkaian Minimum System ATMega16
Bahan-Bahan :
1. Crystal 12Mhz x 1 buah
2. ATMega16 + Socket 40 pin x 1 buah
3. Capasitor 22p x 2 buah
4. LCD Display x 1 buah
5. Resistor 4K7 x 1buah
6. Capasitor 104p x 4 buah
7. IC7805T x 1 buah
8. Capasitor polar 100uF x 1 buah
9. Capasitor polar 10uF x 1 buah
10. Capasitor 103p x 1 buah
11. Pinheader Male Secukupnya
12. Pinheader Female Secukupnya

Reset Button

5v

LCD

Regulator

ke Sensor HC-SR04
Gambar 6.10d Skematik Minimum System ATMega16

194
6.10.4 Program Bascom AVR

$regfile = "m16def.dat"
$baud = 9600
$crystal = 12000000

Config Timer0 = Timer , Prescale = 256

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 Portd.4 = Output


Config Pind.5 = Input

Declare Sub Cek_jarak

Dim Data_jarak As Word


Dim Data_jarak_olah As Word
Dim Data_jarak_fix As Word

Triger1 Alias Portd.4


Pecho1 Alias Pind.5

Mulai:
Cls
Cursor Off
Locate 1 , 4
Lcd "Pendeteksi"
Locate 2 , 2
Lcd "Jarak Benda"
Wait 1

Do
Call Cek_jarak
Data_jarak = Data_jarak
Data_jarak_olah = Data_jarak * 100
Data_jarak_fix = Data_jarak_olah / 256
Cls
Cursor Off

195
Upperline
Lcd "Jarak Benda="
Lowerline
Lcd Data_jarak_fix ; " cm "
Waitms 1

Loop

Sub Cek_jarak:
Reset Triger1
Waitus 10
Set Triger1
Waitus 20
Reset Triger1

Tcnt0 = 0
Bitwait Pecho1 , Set
Start Timer0

Do
If Pecho1 = 0 Then
Data_jarak = Tcnt0
Stop Timer0
Exit Do
End If

If Tifr.0 = 1 Then
Stop Timer0
Tifr.0 = 1
Data_jarak = &HFF
Exit Do
End If
Loop
Stop Timer0
Waitms 15
End Sub

196
6.10.5 Cara Penggunaan Alat

Cara menggunakan alat ini sangatlah mudah, hanya perlu memberikan input daya 12
volt ke bagian power, kemudian akan nyala LCD display, yang menandakan bahwa alat telah
siap digunakan untuk pengukuran jarak. Hadapkan sensor HC-SR04 ke suatu benda yang
jaraknya kurang dari 1 meter, maka di tampilan LCD display akan nampak hasil pengukurannya,
buktikan jarak yang tertera di dalam tampilan LCD dengan penggaris analog, apakah hasil
pengukurannya sama atau tidak, jika sama berarti alat yang dibuat telah akurat dan bisa
digunakan untuk suatu project pengukuran.

197
6.11 Membuat Detektor Gas LPG (Liquified Petroleum Gas)

Gas LPG (Liquefied Petroleum Gas) dalam kehidupan sehari-hari merupakan


suatu kebutuhan yang sangat penting dan sangat dibutuhkan sebagai pengganti dari kompor
minyak yang bersumber dari minyak tanah. Gas LPG juga sebagai prioritas yang utama
dalam urusan memasak karena tidak adanya pengganti lain dari metode minyak tanah selain
gas LPG.
Kebijakan pemerintah dalam melakukan konversi penggunaan energi dari minyak
tanah ke gas LPG (Liquefied Petroleum Gas) telah banyak mendorong orang untuk memakai
kompor gas LPG sebagai bahan bakar kompor yang digunakan. Seiring kebijakan
pemerintah tersebut ternyata banyak menimbulkan masalah. Meskipun kompor gas LPG
memiliki kelebihan lebih praktis penggunaannya dari kompor minyak tanah, tetapi masih
memiliki kekurangan yaitu bahaya yang ditimbulkannya jika terjadi kebocoran gas yang
berakibat pada ledakan dan menimbulkan kebakaran bahkan korban jiwa
Menurut data BPKN juni 2010 tercatat bahwa tahun 2009 terdapat 30 kasus ledakan
gas LPG yang mana diantara 30 kasus tersebut terdapat 12 orang meninggal dan 48 orang
luka-luka. Untuk periode tahun 2010 tercatat ada 33 kasus ledakan yang diantaranya terdapat
8 korban meninggal dan 44 orang luka-luka. Kebanyakan kasus disebabkan akibat bocornya
gas LPG yang mengakibatkan ledakan dan kebakaran pada tabung.
Untuk itu perlu adanya alat pengaman yang dapat melakukan pengamanan secara
berulang dan terus menerus untuk mencegah terjadinya kebakaran dan kebocoran gas,
dikarenakan waktu orang melakukan aktifitas dengan menggunakan gas LPG tidak tentu,
baik itu dari segi waktu atau pun tempat, maka dari itu perlu adanya sistem yang dapat
melindungi manusia dari bahaya dimanapun berada dan kapanpun waktunya.

6.11.1 Tujuan dan Fungsi


Tujuan dan fungsi yang ingin dicapai pada pembahasan kali ini adalah untuk
membuat suatu alat yang dapat memberikan indikasi akan adanya potensi ledakan dan
kebakaran pada suatu tabung gas LPG, sehingga dimaksudkan untuk bisa mengurangi kasus
ledakan dan kebakaran yang ditimbulkan oleh tabung gas LPG.

6.11.2 Prinsip Kerja Alat


Alat detektor gas LPG ini mendeteksi adanya kadar gas propana dan butana
diudara, kadar minimal yang bisa dideteksi oleh alat ini adalah 500ppm, sehingga jika kadar

198
gas diudara kurang dari 500ppm maka alat ini tidak bisa mendeteksi adanya gas propana dan
butana diudara, ini didapat dari range sensor TGS2610 yaitu 500ppm -10.000ppm. kadar
ppm yang maksimal dan valid untuk alat ini hanyalah sampai 10.000ppm, selebihnya dapat
dikatakan kurang valid.
Alat ini menggunakan sebuah buzzer, 8 buah led sebagai indikator akan adanya
bahaya atau tidaknya suatu ruangan / dapur, buzzer akan berbunyi jika keadaan didalam
ruangan pada kadar lebih dari 10% atau lebih dari 100.000ppm, tepatnya yaitu jika sensor
TGS2610 telah mengeluarkan tegangan output sebesar 4,45 volt. Berikut adalah gambar
detektor gas LPG tersebut.

Gambar 6.11a Bentuk Fisik Dari Detektor Gas LPG

Terdapat 8 buah led yang bervariasi warnanya, ada 2 warna putih, 2 warna biru, 2
warna hijau dan 2 warna merah. Tiap-tiap led mewakili suatu keadaan yang berbeda, jika led
putih akan menyala saat proses heater pada 90 detik yang pertama, kemudian led warna biru
menyala pada heater 90 detik kedua. Led merah menyala pada saat kondisi berbahaya yaitu
tegangan output dari sensor TGS2610 lebih dari atau sama dengan 4,45 volt, sebaliknya led
hijau menyala pada kondisi aman yaitu tegangan output sensor kurang dari 4,45 volt.
Mengapa parameter yang dipakai adalah 4,45volt? Karena angka ini berasal dari
detektor gas LPG yang berada di pasaran yang menggunakan MQ5 sebagai sensor gas LPG.
Buzzer dan led merah pada alat detektor gas LPG dipasaran akan berbunyi saat tegangan
output dari sensor MQ5 lebih dari atau sama dengan 4,45 volt, itulah mengapa menggunakan

199
parameter ini untuk tidak berbeda dengan yang terdapat dipasaran berikut adalah tabel hasil
penelitian alat yang menggunakan TGS2610 dengan MQ5.

Tabel 6.11.1 Tabel Pengujian TGS2610 dengan MQ5


Faktor TGS2610 MQ5
Waktu Tenggang Heater 179 detik 176 detik
Tegangan Bahaya > = 4,45 volt > = 4,45 volt
Tegangan Aman < 4,45 volt < 4,45 volt
Tegangan Minimal 0,08 volt 0,05 volt
Tegangan Maksimal 4,96 volt 4,51 volt

Data itu yang dipakai sebagai acuan dalam pembuatan alat ini yang mana
parameter tegangan aman dan tegangan bahaya telah didapat melalui hasil pengukuran
tegangan output pada MQ5 dengan menggunakan multimeter digital.
Skema kerja alat ini yaitu sensor membaca kadar gas LPG yang terdapat diudara,
kemudian mengeluarkan tegangan output yang diterima oleh mikrokontroler ATMega16
melalui port ADC-nya, setelah data diterima oleh mikrokontroler, data tersebut diolah
menjadi tegangan output dan nilai dalam ppm. Mikrokontroler akan mengaktifkan rangkaian
buzzer jika tegangan output yang terdeteksi yaitu >= 4,45 volt, selain itu rangkaian buzzer ini
akan padam, begitu pula dengan rangkaian led, led merah menandakan tegangan output
sensor >=4,45, dan led hijau menandakan tegangan output sensor < 4,45 v. berikut adalah
skema dari prinsip kerja alat ini.

200
Jadi mikrokontroler ATMega16 menjadi otak dan pengendali dari alat ini yang
mengatur mengenai tampilan LCD dan aktif atau tidak rangkaian led dan buzzer. Berikut
adalah flowchart dari alat ini.

MULAI

Inisialisasi port
LCD dan ADC

Tampil LCD

Heater Led putih dan


biru menyala

Baca sensor gas


TGS2610

Tegangan = VADC / 1023


Tegangan = Tegangan *5,15

Rs = 5,15 – Tegangan
Y = X / Tegangan
Rs = Y * 10000
D = Rs / Ro
E = 112,1 / D
Ppm = E * 1,58

Tampilan Tegangan
dan PPM pada LCD

Tegangan
Tidak
>=4,45 volt
Tegangan Tidak
< 4,45
Ya volt Ya
Led merah menyala dan
Led Hijau Buzzer berbunyi
menyala

Gambar 6.11b Diagram Alir Detektor Gas LPG

201
6.11.3 Rangkaian Hardware

Rangkaian hardware penyusun alat ini tidaklah banyak hanya memutuhkan


minimum system, rangkaian sensor TGS2610, rangkaian buzzer dan rangkaian led.
Semuanya menggunakan komponen yang mudah didapat dipasaran.

a. Minimum System ATMega16

Ke Rangkaian Led

Gambar 6.11c Skematik Minimum System ATMega16

b. Rangkaian TGS2610
komponen yang dibutuhkan untuk membuat sensor TGS2610 ini bisa berfungsi
optimal hanyalah variabel resistor 10Kohm, yang mana variabel resistor ini digunakan untuk
RL (Resistansi Load) untuk sensor TGS2610. Menurut datasheet dari sensor TGS2610, RL
yang digunakan yaitu minimal 0,45Kohm, sehingga jika diberikan 10K sudah termasuk
dalam batas minimal rangkaian. Berikut adalah gambar skematik dari rangkaian TGS2610.

202
PortA.0

Gambar 6.11d Skematik Rangkaian Sensor TGS2610

Sensor TGS2610 memiliki 4 buah kaki, yaitu 2 kaki untuk mengaktifkan heater di
kaki 3 dan 4, pada kaki 1 diberikan GND untuk heater, untuk output tegangan dari sensor ini
ada pada kaki 2 yang langsung dihubungkan ke RL yang berupa variabel resistor 10K.

c. Rangkaian Buzzer
Rangkaian buzzer pada alat ini menggunakan rangakaian buzzer seperti pada alat
yang sebelumnya telah dibahas, yaitu menggunakan resistor 2K2ohm dan transistor BC141
sebagai saklar untuk on/off-kan buzzer. Berikut skematiknya.

Gambar 6.11e Skematik Buzzer

Perancangan rangkaian buzzer ini berfungsi sebagai indikator yang mengunakan


media suara untuk menghasilkan bunyi pada saat data masukan dari sensor TGS2610
mencapai kadar / nilai tertentu.

d. Rangkaian Led
Perancangan rangkaian Led ini berfungsi indikator yang menggunakan media
cahaya untuk mengindikasikan suatu kadar / nilai tertentu yang dicapai oleh sensor TGS2610.
Berjumlah 8 buah dan berbagai macam warna untuk memudahkan didalam pembagian kadar

203
/ nilai yang dibaca oleh sensor TGS2610. gambar dari rangkaian Led ditunjukkan pada
Gambar 6.11f.

Ke PortD.0 - 7

VCC 5 volt

Gambar 6.11f Skematik Rangkaian Led

terdapat 8 buah led dan 8 buah resistor 330 ohm, fungsi dari 8 buah led tersebut
yaitu sebagai indikator dengan 4 variasi warna yaitu putih, hijau, kuning dan merah, untuk
putih dan biru menandakan kondisi awal pemanasan TGS2610, untuk led hijau untuk
menandakan kondisi gas diruangan stabil atau aman, dan untuk led merah artinya kondisi
ruangan sudah dipenuhi oleh gas Propana dan Butana yang sangat berbahaya kalau ada
percikan api statis menyala.

6.11.4 Program Bascom-AVR

'------------------
'Alat Ukur Gas LPG
'by yanuar mukhammad
'------------------
$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
'------------------------ Konfigurasi
Ddrb.0 = 1 ‘portB.0 sebagai output
Ddrd = &B11111111 ‘ portD sebagai output
'------------------------ Type
Dim Gas_ref As Word
Dim Gas As Single
Dim Lpg As String * 5
Dim Vol As String * 5
Dim Tegangan As Single
Dim Teganganx As Single
Dim A As Single
Dim Vo As Single

204
Dim X As Single
Dim Y As Single
Dim Rs As Single
Dim D As Single
Dim E As Single
Dim Ppm As Single
Dim Ro As Single
'------------------------
Deflcdchar 0 , 31 , 31 , 31 , 31 , 31 , 31 , 31 , 31
Deflcdchar 1 , 31 , 17 , 17 , 17 , 17 , 17 , 17 , 31
Cls
Cursor Off
Start Adc
'------------------------
Upperline
Lcd "Detektor Gas Lpg"
Portd = &B11111100 ‘led putih aktif
Wait 90
Cls

Upperline
Lcd "Range Detektor "
Lowerline
Lcd "500 - 10,000 ppm"
Portd = &B11001111 ‘led biru aktif
Wait 90
Cls

Do
Gas_ref = Getadc(0) 'Nilai tegangan ADC dr out sensor
Gas = Gas_ref
Ro = 633750 'kadar Rs dalam udara bersih (ADC minimal)

Teganganx = Gas_ref / 1023


Tegangan = Teganganx * 5.15 ‘untuk nilai menampilkan tegangan

X = 5.15 - Tegangan
Y = X / Tegangan
Rs = Y * 10000 ‘untuk menemukan nilai Rs

D = Rs / Ro
E = 112.1 / D 'dari grafik excel ditemukan 112,1x^-0,68
Ppm = E ^ 1.58 '1/0.63
Vol = Fusing(tegangan , "#.##")
Locate 1 , 1
Lcd "(Vol)="
Locate 1 , 8
Lcd Vol
Locate 2 , 1
Lcd Chr(0)
Locate 2 , 2
Lcd "(PPM)=" ; Fusing(ppm , "#.##")

If Tegangan < 4.45 Then


Portd = &B11110011 ‘led hijau aktif
Portb.0 = 0

205
End If
If Tegangan >= 4.45 Then
Portd = &B00111111 ‘led merah aktif
Portb.0 = 1 ‘buzzer aktif
End If

Loop
'------------------------ end

6.11.5 Penjelasan Program dan Kalibrasi


Pejelasan program dan kalibrasi ini akan membahas bagaimana cara untuk
menampilkan tegangan output sensor dan cara kalibrasi sensor TGS2610.

a. Cara Menampilkan Tegangan Keluaran Pada LCD


Untuk mengetahui bagaimana cara agar didapat kadar PPM dalam udara, yang
harus dilakukan adalah mengetahui tegangan output sensor TGS2610 terlebih dahulu,
sehingga akan didapat nilai Rs dan Ro nya yang kemudian akan diolah ke dalam bentuk
PPM. cara agar bisa menampilkan tegangan output sensor TGS2610 pada LCD yaitu dengan
menggunakan rumus berikut pada program Bascom-AVR

Teganganx = Gas_ref / 1023


Tegangan = Teganganx * 5.15

Jadi tegangan output dari port ADC dibagi dengan nilai 1023 karena
mikrokontroler sebelum menampilkan data ke layar LCD dari port ADC, dia mengalikan
cacahan dengan 1024, cacahan yang dilakukan mokrokontroler lebih detailnya dari 0 sampai
1023, maka dari harus dibagi dengan nilai 1023 agar diketahui nilai yang sebenarnya dari
ADC tanpa dikali dengan pencacah. Data yang telah dibagi kemudian dikalikan tegangan
ADC yaitu tegangan AVCC, biasanya tegangan VCC ini berkisar antara 4,9 v sampai 5,20 v
tergantung dari regulator yang dipakai, jadi akan didapat nilai tegangan output dari suatu
sensor, namun perlu dilakukan kalibrasi terlebih dahulu terhadap data tegangan ini dengan
membandingkan antara tampilan tegangan output pada LCD dengan multimeter, berikut tabel
perbandingan data yang telah diambil dengan menggunakan rumus tegangan diatas.

206
Tabel 6.11.2 Tabel Pengujian Keakuratan Data ADC
Kalibrasi ADC (Volt)
Tegangan ADC Tegangan Multimeter
0,11 0,11
0,14 0,14
0,34 0,33
1,20 1,20
2,37 2,36
4,26 4,26

Dari tabel diatas jelas sekali persamaan yang didapat antara menggunakan rumus
dengan pengukuran secara langsung dengan multimeter, hanya berbeda 0,01 yang artinya
telah layak dipakai untuk suatu pengukuran.

b. Konversi dari Tegangan ke PPM


Konversi dari nilai tegangan yang telah didapat ke PPM memang agak panjang
namun semuanya masih dalam kotegori mudah. Pertama mengambil data dari grafik
datasheet sensor mengenai Rs / Ro terhadap kadar gas PPM seperti grafik berikut ini.

Gambar 6.11g Grafik Sensitivitas Rs/Ro terhadap PPM

207
Dari grafik tersebut jika diambil data per kenaikannya maka akan menghasilkan
seperti data pada tabel berikut.

Tabel 6.11.3 Tabel Sensitivitas Rs/Ro dengan PPM Melalui Grafik


Rs/Ro PPM
2,8 300
2,7 400
2 500
1,9 600
1,8 700
1,7 800
1,6 900
1,5 1000
0,9 2000
0,75 3000
0,6 4000
0,5 5000
0,49 6000
0,4 7000
0,39 8000
0,35 9000
0,3 10000

Dari data tersebut dapat diketahui senstvitas yang sebenarnya dari sensor TGS2610
untuk melakukan konversi ADC ke PPM dengan menghitung tiap kenaikan dari Rs/Ro
terhadap PPM, Data yang telah didapat dikalkulasi menggunakan microsoft excel dan
tampilan grafik sehingga akan menghasilkan tampilan seperti berikut.

Gambar 6.11h Grafik sensitivitas Rs/Ro dengan PPM

208
Dari grafik 5,36 dapat dilihat bahwa terdapat nilai R2= 0,994, yang artinya tingkat
keakuratannya 99,4 % dan selisih antara data kesatu, kedua dan seterusnya tidaklah berbeda
jauh. Nilai y = 112,1 x-0,63 adalah nilai yang akan digunakan untuk konversi tegangan ke
PPM, X mewakili kadar gas dalam PPM dan Y mewakili nilai Rs/Ro, bagaimana cara
menampilkan nilai tersebut pada ms.Excel? berikut caranya.
Pilih Scatter

Gambar 6.11i Tampilan Grafik pada ms.Excel

Setelah dipilih pada menu scatter, maka ms.Excel akan menampilkan grafik yang
telah dipih sebelumnya. Kemudian pada tampilan grafik klik kanan tepat di garis grafiknya,
hingga muncul pilihan seperti berikut.

Gambar 6.11j Tampilan Menu Saat Diklik Kanan Pada Garis Grafik

209
Pilih menu Add trendline.... sehingga akan menampilkan suatu layar setting
untuk menampilkan option trendline. Setelah itu pilih pilihlah option Power pada trendline
option, centang / check pada check list display equation on chart dan display R-squared on
chart. Seperti yang ditunjukkan pada gambar berikut.

Gambar 6.11k Tampilan Format Trendline

Jika langkah-langkah diatas telah dilakukan dengan benar maka akan nampak
nilai persamaan antara faktor Rs/Ro dengan kadar gas PPM dan juga akan nampak tingkat
keakuratan mengenai selisih data yang didapat dari data pertama hingga terakhir.
Langkah kedua setelah tampilan grafik didapat adalah menghitung nilai Ro untuk
mendapatkan nilai Rs/Ro. Nilai Ro dan Rs didapat memalui rumus berikut

Ro adalah nilai resistansi sensor saat kondisi Rs bernilai 1800 ppm, saat kondisi
1800ppm disini diartikan saat kondisi udara normal, tanpa tercampur oleh gas propana dan
butana, karena keadaan 1800ppm adalah keadaan awal atau minimal dari Rs sebelum

210
mendeteksi kadar gas, sehingga jika kondisi awal maka VRl yang dihasilkan adalah 0,08 volt,
nilai tegangan 0,08 volt diambil dari nilai minimal yang dikeluarkan oleh sensor saat Rs
bernilai 1800ppm, sehingga jika dimasukkan ke rumus hasilnya. Vc pada rumus adalah
tegangan AVCC yang digunakan untuk mengaktifkan rangkaian. RL pada rumus adalah
Variabel resistor yang digunakan, untuk alat ini menggunakan RL sebesar 10K.

Ro = 5,15 - 0,08 = 5,07

Ro = 5,07 / 0,08 = 63,375

Ro = 63,375 * 10000

Ro = 633750

Nilai Ro telah didapat yaitu 633750, sehingga dari nilai Ro tersebut bisa digunakan
untuk mencari nilai Rs/Ro, dengan Rs adalah kondisi sensor mendeteksi berbagai variasi
kadar gas diudara, maka dari itu pada program bascom dinyatakan sbb.

Ro = 633750

Teganganx = Gas_ref / 1023


Tegangan = Teganganx * 5.15

X = 5.15 - Tegangan
Y = X / Tegangan
Rs = Y * 10000
D = Rs / Ro

D adalah nilai dari Rs / Ro yang mana nilai D ini yang akan dikonversikan
kedalam PPM melalui rumus konversi yang didapat dari grafik yaitu y = 112,1 x -0,63 berikut
penjelasan dari rumus konversi. Yang perlu diingat yaitu Y mewakili kadar gas dalam PPm
dan X mewakili nilai Rs / Ro.

y = 112,1 x-0,63
y = 112,1 / x 0,63
x 0,63 = 112,1 / y
x 0,63 = (112,1 / y) 1
x 0,63/0,63 = (112,1 / y) 1/0,63
X = (112,1 / y) 1,58

211
Dari proses konversi diatas didapatlah rumus untuk mengubah nilai tegangan
yang telah dirubah kedalam Rs dan Ro menjadi PPM. rumusnya sbb.

PPM = (112,1 / (Rs/Ro) ) 1,58

Diprogram bascom AVR Rs/Ro didefinisikan sebagai variabel D dan hasil dari
pembagian antara 112,1 dengan Rs/Ro didefinisakan dalam variabel E. Berikut program
bascom yang menjelaskan tentang rumus tersebut.

D = Rs / Ro
E = 112.1 / D
Ppm = E ^ 1.58

Kadar PPM yang telah didapat menggunakan rumus yang tertampil pada layar
LCD harus dikalibrasi lagi dengan cara menyesuaikan dengan grafik datasheet apakah benar
atau tidak nilai tampilan dari Rs/Ro berbanding dengan kadar gas PPM. hasil dari kalibrasi
ini seperti berikut.

Tabel 6.11.4 Tabel Pengujian Rs/Ro terhadap PPM Menggunakan Rumus


Rs/Ro PPM
0,83 2307
0,79 2505
0,88 2115
0,93 1929

6.11.6 Cara Penggunaan Alat

Cara penggunaan alat detektor gas LPG ini tidaklah sulit, hanya perlu
memberikan catu daya 12 v atau 9 v jika terdapat rangkaian regulator sehingga lampu led
hijau akan menyala untuk mengindikasikan bahwa kadar ruangan akan gas LPG masih aman.
Saat pengaktifan alat, led putih akan menyala terlebih dahulu selama 90 detik dan
led biru akan menyusul 90 detik juga, sehingga total 180 menit yang mana telah memenuhi
standart untuk heater pada sensor TGS2610.

212
Setelah itu letakkan alat ini didekat tabung gas LPG dengan jarak kurang dari 50
cm, jika terdeteksi ada kadar gas LPG yang bocor maka tampilan nilai tegangan dan nilai
PPM akan naik sesuai dengan kadar gas LPG diruangan tersebut. Buzzer dan led merah akan
aktif jika tegangan keluaran dari sensor > = 4,45 volt sesuai dengan alat yang terdapat
dilapangan yang menggunakan sensor MQ5.

213
6.12 Membuat Alat Pengaman Pintu Dengan Password

Pembahasan kali ini mengenai bagaimana membuat alat sejenis alarm pintu, yang
mana sistem validasinya menggunakan password, sehingga akan tampak seperti pintu ber-
password, alarm pintu berpassword ini menggunakan sebuah keypad matrik, tiga buah led (led
merah, hijau dan biru), sebuah buzzer 5v, dan mikrokontroller ATMega16. Sistem kerja dari alat
ini yaitu user akan men-setting terlebih dahulu mengenai password yang akan digunakan pada
main menu “set”, sehingga mikrokontroller akan menyimpan password tersebut dalam “eeprom”
yang sifatnya non volatile. Untuk proses input data menggunakan keypad matrik yang memiliki
fitur input angka 1 sampai 9. Untuk bentuk dari alatnya adalah seperti gambar 6.12a

Gambar 6.12a Bentuk dari Alat Alarm Pintu Berpassword

Jadi terdapat LCD display yang fungsinya untuk menampilkan input angka yang
dilakukan oleh user, dan juga untuk menampilkan bahwa password yang dimasukkan benar atau
salah, jika password benar maka pada lcd display akan memunculkan tulisan “PASSWORD
BENAR” dan led hijau akan menyala, namun jika input password salah akan menampilkan
tulisan “PASSWORD SALAH” disertai dengan nyala led merah dan bunyi buzzer.

214
6.12.1 Fungsi dan Tujuan

Fungsi dibuatnya alat ini adalah untuk membantu pengamanan rumah terutama untuk
pintu, yang mana jika orang yang masuk adalah penghuni rumah dia akan bisa membuka pintu
dengan password yang di misalkan dengan nyala led warna hijau, namun jika salah maka buzzer
akan berbunyi dan led merah menyala. Tujuan dibuatnya alat ini adalah untuk mengetahui
bagaimana proses input angka dari keypad matrik dan proses penyimpanan ke eeprom
mikrokontroller.

6.12.2 Prinsip Kerja Alat

Prinsip kerja alat ini yaitu input dari keypad matrik ditampilkan ke lcd display guna
melihat kombinasi angka yang dimasukkan, setelah itu mikrokontroller menyimpan data input
tersebut setelah menekan tombol save (tombol2), kemudian user masuk ke bagian input, dibagian
input ini user diharuskan untuk memasukkan kombinasi angka yang tepat seperti angka yang
sebelumnya telah disimpan, jika kombinasi angka tersebut benar maka led hijau menyala, led
hijau disini hanyalah simbol untuk membuka kunci pintu, jika salah maka led merah akan
menyala dan buzzer berbunyi. Untuk bagan penjelasannya adalah sebagai berikut.

Keypad Matrix Microcontroller Buzzer dan led


4x4 ATMega16

LCD Display

Led hijau bisa diganti dengan motor servo atau kunci elektronik yang mana jika
lampu hijau menyala artinya kunci elektronik atau motor sevo bergerak untuk membuka kunci
pintu, jika merah maka kunci tetap pada posisi terkunci dan buzzer menyala untuk pertanda
bahwa ada bahaya.

215
6.12.3 Rangkaian Hardware

Rangkaian hardware yang dibutuhkan untuk membuat alat ini tidaklah banyak, hanya
memerlukan rangkaian buzzer, rangkaian led untuk led merah, biru dan hijau, dan rangkaian
minum system ATMega16 ditambah LCD display

a.Rangkaian Buzzer
Rangkaian Buzzer ini menggunakan buzzer 5v dan transistor BC141 sebagai saklar
on/off, fungsi buzzer di alat ini adalah sebagai pertanda bahaya, dimaksudkan agar penghuni
rumah atau tetangga rumah bisa melihat siapa yang sedang ada di pintu rumah.

Ke PortA.0

Gambar 6.12b Skematik Rangkaian Buzzer

b. Rangkaian Led
Rangkaian led disini hanya menggunakan 3 buah led yaitu led biru, led hijau dan led
merah, kegunaan led biru adalah sebagai penanda bahwa alat sedang dalam kondisi on, untuk led
hijau artinya kunci pintu terbuka dan boleh masuk, untuk led merah artinya orang tersebut tidak
boleh masuk dan pintu tetap dalam kondisi terkunci. Berikut gambar skematiknya

Ke PortA.7 - 5

Gambar 6.12c Skematik Rangkaian Led

216
c. Rangkaian Minimum System ATMega16

R. = Rangkaian R. Buzzer

R. Led

R. Tombol

R. Regulator LCD

Ke Keypad matrik 4x4

Gambar 6.12d Skematik Minimum System ATMega16

Bahan-Bahan :

1. Crystal 12Mhz x 1 buah


2. ATMega16 + Socket 40 pin x 1 buah
3. Capasitor 22p x 2 buah
4. LCD Display x 1 buah
5. Resistor 4K7 x 1buah
6. Capasitor 104p x 4 buah
7. IC7805T x 1 buah
8. Capasitor polar 100uF x 1 buah
9. Capasitor polar 10uF x 1 buah
10. Capasitor 103p x 1 buah

217
11. Pinheader Male Secukupnya
12. Pinheader Female Secukupnya

d. Rangkaian Push Button


Rangkaian push button disini hanyalah untuk media pemilihan mode, terdapat dua
mode di alat ini yaitu mode input password, mode simpan password, jika user masuk ke mode
input password maka user harus memasukkan kombinasi password yang telah terseimpan di
mode simpan password. Rangkaian Push button ini dihubungkan ke PortB.0 sampai PortB.3
mikrokontroller ATMega16. Berikut adalah skematik dari push button

Ke PortB.0 - 3

Gambar 6.12e Skematik Push Button

e. Keypad Matrik 4x4

Keypad matrik yang digunakan adalah keypad matrik 4x4 jika menggunakan keypad
jenis lain juga bisa, hanya perlu penyesuaian pada program bascom AVR-nya, sebenarnya yang
digunakan untuk alat ini adalah fitur angka 1 sampai 9 dan fitur lain seperti huruf A, B, C, D
tidak digunakan, berkut adalah konfigurasi dan bentuk dari keypad matrik 4x4

218
Ke mikrokontroller PortD.0-D.7

Gambar 2.24c Bentuk dan skematik dari keypad matrik 4x4

6.12.4 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

Declare Sub Keypad


Declare Sub Entri_data

Dim Urut As Byte


Dim Kode As Byte
Dim Flag As Bit
Dim I As Word
Dim Nilai As Long
Dim Angka As Integer
Dim Pass As Integer
Dim Simpan_pass As Eram Integer 'variabel untuk EEPROM

Declare Sub Keypad1


Declare Sub Entri_data1

Dim Urut1 As Byte


Dim Kode1 As Byte
Dim Flag1 As Bit
Dim I1 As Word
Dim Nilai1 As Long
Dim Angka1 As Integer
Dim Pass1 As Integer

Ddra = &B11111111
Porta.5 = 1
Ddrd = &B11110000
Portd = &HFF

Config Pinb.0 = Input

219
Config Pinb.1 = Input
Config Pinb.2 = Input
Config Pinb.3 = Input
Tombol1 Alias Pinb.0
Tombol2 Alias Pinb.1
Tombol3 Alias Pinb.2
Tombol4 Alias Pinb.3
Set Portb.0
Set Portb.1
Set Portb.2
Set Portb.3

Utama:
Porta.7 = 0
Porta.6 = 0
Cls
Cursor Off
Cls
Cursor Off
Locate 1 , 4
Lcd "shinigami"
Locate 2 , 1
Lcd " set " ; " " ; " input "
Do
If Tombol1 = 0 Then
Bitwait Tombol1 , Set
Goto Inputdata:
End If
If Tombol2 = 0 Then
Bitwait Tombol2 , Set
Goto Setting
End If
Loop

Inputdata:
Porta.7 = 0
Porta.6 = 0
Porta.0 = 0
Cls
Upperline
Lcd "tombol 1 input"
Lowerline
Lcd "tombol 2 mulai"

Gosub Keypad

'Baca Keypad
Sub Keypad()
Kode = 0
Urut = 0
Flag = 0

I = 0
Do
For I = 0 To 20000

220
'KOLOM 1
Portd = &B11101111

If Pind.0 = 0 Then

Waitms 200

Elseif Pind.1 = 0 Then


Angka = 4
Gosub Entri_data
Waitms 200

Elseif Pind.2 = 0 Then


Angka = 7
Gosub Entri_data
Waitms 200

Elseif Pind.3 = 0 Then


Waitms 200
End If

'KOLOM 2
Portd = &B11011111
If Pind.0 = 0 Then
Angka = 1
Gosub Entri_data
Waitms 200

Elseif Pind.1 = 0 Then


Angka = 5
Gosub Entri_data
Waitms 200

Elseif Pind.2 = 0 Then


Angka = 8
Gosub Entri_data
Waitms 200

Elseif Pind.3 = 0 Then


Angka = 0
Gosub Entri_data
Waitms 200
End If

'KOLOM 3
Portd = &B10111111
If Pind.0 = 0 Then
Angka = 2
Gosub Entri_data
Waitms 200

Elseif Pind.1 = 0 Then


Angka = 6
Gosub Entri_data
Waitms 200

Elseif Pind.2 = 0 Then

221
Angka = 9
Gosub Entri_data
Waitms 200

Elseif Pind.3 = 0 Then


Waitms 200

End If

'KOLOM 4
Portd = &B01111111

If Pind.0 = 0 Then
Angka = 3
Gosub Entri_data
Waitms 200

Elseif Pind.1 = 0 Then


Waitms 200

Elseif Pind.2 = 0 Then


Waitms 200

Elseif Pind.3 = 0 Then


Waitms 200

Elseif Tombol3 = 0 Then


Goto Utama

Elseif Tombol1 = 0 Then


Goto Datain
End If

Next
Loop Until Tombol2 = 0
Goto Mulai
End Sub

'Entri Data
Sub Entri_data()
Incr Urut

Select Case Urut


Case 1 : Nilai = Angka
Lcd Angka

Case 2 : Nilai = Nilai * 10


Nilai = Nilai + Angka
Lcd Angka
Pass = Nilai

Case 3 : Nilai = Nilai * 10


Nilai = Nilai + Angka
Lcd Angka

222
Pass = Nilai

Case 4 : Nilai = Nilai * 10


Nilai = Nilai + Angka
Lcd Angka
Pass = Nilai

Case 5 : Nilai = Nilai * 10


Nilai = Nilai + Angka
Lcd Angka
Urut = 0
Locate 2 , 1
Pass = Nilai
End Select
End Sub

Mulai:
Cls
Do
If Pass = Simpan_pass Then
Lowerline
Lcd "password benar"
Upperline
Lcd Pass
Porta.7 = 1
Else
Lowerline
Lcd "password salah"
Upperline
Lcd Pass
Porta.6 = 1
Porta.0 = 1
End If
Wait 3
Goto Inputdata
Loop

Datain:
Cls
Cursor Blink
Cursor On
Locate 1 , 1
Lcd "Tnput Password:"
Locate 2 , 1
Cursor Blink
Cursor On
Waitms 200
Return

'=====================================================================

Setting:
Porta.7 = 0
Porta.6 = 0
Pass1 = 0
Cls
Upperline

223
Lcd "tombol 1 input"
Lowerline
Lcd "tombol 2 save"

Gosub Keypad1

'Baca Keypad
Sub Keypad1()
Kode1 = 0
Urut1 = 0
Flag1 = 0

I1 = 0
Do
For I1 = 0 To 20000

'KOLOM 1
Portd = &B11101111

If Pind.0 = 0 Then

Waitms 200

Elseif Pind.1 = 0 Then


Angka = 4
Gosub Entri_data1
Waitms 200

Elseif Pind.2 = 0 Then


Angka = 7
Gosub Entri_data1
Waitms 200

Elseif Pind.3 = 0 Then


Waitms 200
End If

'KOLOM 2
Portd = &B11011111
If Pind.0 = 0 Then
Angka = 1
Gosub Entri_data1
Waitms 200

Elseif Pind.1 = 0 Then


Angka = 5
Gosub Entri_data1
Waitms 200

Elseif Pind.2 = 0 Then


Angka = 8
Gosub Entri_data1
Waitms 200

Elseif Pind.3 = 0 Then


Angka = 0
Gosub Entri_data1

224
Waitms 200
End If

'KOLOM 3
Portd = &B10111111
If Pind.0 = 0 Then
Angka = 2
Gosub Entri_data1
Waitms 200

Elseif Pind.1 = 0 Then


Angka = 6
Gosub Entri_data1
Waitms 200

Elseif Pind.2 = 0 Then


Angka = 9
Gosub Entri_data1
Waitms 200

Elseif Pind.3 = 0 Then


Waitms 200

End If

'KOLOM 4
Portd = &B01111111

If Pind.0 = 0 Then
Angka = 3
Gosub Entri_data1
Waitms 200

Elseif Pind.1 = 0 Then


Waitms 200

Elseif Pind.2 = 0 Then


Waitms 200

Elseif Pind.3 = 0 Then


Waitms 200

Elseif Tombol3 = 0 Then


Goto Utama

Elseif Tombol1 = 0 Then


Goto Datain1
End If

Next
Loop Until Tombol2 = 0
Simpan_pass = Pass1
Bitwait Tombol2 , Set
Cls
Do

225
Lowerline
Lcd "simpan password"
Upperline
Lcd Pass1
Porta.7 = 1
Porta.6 = 1
Wait 3
Goto Utama
Loop
End Sub

'Entri Data
Sub Entri_data1()
Incr Urut1

Select Case Urut1


Case 1 : Nilai = Angka
Lcd Angka

Case 2 : Nilai = Nilai * 10


Nilai = Nilai + Angka
Lcd Angka
Pass1 = Nilai

Case 3 : Nilai = Nilai * 10


Nilai = Nilai + Angka
Lcd Angka
Pass1 = Nilai

Case 4 : Nilai = Nilai * 10


Nilai = Nilai + Angka
Lcd Angka
Pass1 = Nilai

Case 5 : Nilai = Nilai * 10


Nilai = Nilai + Angka
Lcd Angka
Urut1 = 0
Locate 2 , 1
Pass1 = Nilai
End Select
End Sub

Datain1:
Cls
Cursor Blink
Cursor On
Locate 1 , 1
Lcd "Input Password:"
Locate 2 , 1
Cursor Blink
Cursor On
Waitms 200
Return

226
6.12.5 Cara Penggunaan Alat

Cara penggunaan alat ini pertama terdapat tampilan pilihan di LCD display yaitu
menu “set” dan “input”, user diminta untuk memilih salah satu pilihan tersebut dengan tombol1
untuk “input” dan tombol2 untuk “set”, langkah pertama user harus masuk ke bagian “set” untuk
memasukkan password awal, masukkan kombinasi angka sebagai password dengan keypad
matrik, setelah berhasil memasukkan password, langkah kedua yaitu kembali ke menu awal
dengan menekan tombol3, setelah itu masuk ke bagian menu “input” dengan menekan tombol1,
dibagian menu input, user akan dimintai kombinasi password yang sesuai dengan apa yang telah
disimpan sebelumnya dengan menggunakan keypad matrik, jika input password bernilai benar
maka led hijau akan menyala, namun jika salah maka led merah akan menyala diikuti dengan
bunyi buzzer.

227
6.13 Membuat Alat Kendali Led dan Monitoring ADC Berbasis TCP-IP

Membuat alat kendali led dan monitoring ADC dengan menggunakan web server
merupakan salah satu project yang tidak murah untuk pembuatannya, dikarenakan modul
webserver yang dipakai adalah modul web server NM7010A-LF yang mana modul tersebut
sangat cocok untuk komunikasi dengan mikrokontroller dengan basis TCP-IP.
Alat yang akan dibuat adalah alat yang digunakan untuk menghidupkan atau
mematikan led yang berjumlah satu buah pada Portb.0 dan monitoring nilai ADC pada PortA.7
menggunakan komunikasi TCP-IP, jadi alat ini bisa dikendalikan oleh satu komputer maupun
banyak komputer dalam satu jaringan, untuk gambar alatnya seperti Gambar 6.13a

Gambar 6.13a Tampilan Alat Kendali Led Berbasis TCP-IP

Alat yang akan dibuat ini menggunakan mikrokontroller ATMega32 dengan kristal
eksternal 4 MHz, sehingga perlu diperhatikan dengan penggunaan kristal pada bab ini, karena
pada bab lain mengunakan 12 MHz, sebenarnya jika menggunakan kristal eksternal 12MHz atau
11.0592 Hz juga tidak masalah yang penting program pada Bascom AVR harus sesuai dengan
kristal eksternal pada minimum system yang digunakan. Alat yang akan dibuat dilengkapi
dengan satu buah led sebagai output dari mikrokontroller dan juga sebagai object yang akan
dikendalikan menggunakan media TCP-IP.

228
6.13.1 Fungsi dan Tujuan
Fungsi dibuatnya alat ini adalah sebagai alat untuk mengendalikan peralatan
elektronika melalui media jaringan TCP-IP sehingga dapat diakses oleh banyak orang dalam satu
jaringan, untuk tujuannya yaitu agar mengetahui bagaimana cara kerja dari modul web server
NM7010A-LF jika berkoordinasi dengan minimum system ATMega32.

6.13.2 Prinsip Kerja Alat


Prinsip kerja dari alat ini yaitu terdapat sensor yang dimasukkan ke PortA.7 pada
minimum system, sensor ini sengaja tidak dijelaskan karena sensor ini bisa menggunakan
berbagai mcam sensor, misal jika ingin monitoriang getaran maka pakai sensor getaran dengan
output tegangan masuk ke PortA.7, begitu juga dengan sensor yang lainnya, hanya perlu
memasukkan tegangan output sensor ke PortA.7 pada minimum System, dari sensor nilai ADC
akan diolah oleh mikrokontroller ATMega32 sehingga data analog sensor akan diubah menjadi
data digital, dari mikrokontroller data digital dikeluarkan melalui modul ethernet NM7010A-LF
yang mana modul ini akan menghubungkan minimum system dengan komputer melalui media
jaringan TCP-IP. Jika berhasil terkoneksi maka nilai data sensor akan tertera pada web browser
bisa menggunakan mozilla firefox, google chrome atau internet explorer.
Pada PortB.0 terdapat sebuah led yang akan dikendalikan oleh komputer, sebenarnya
komputer tidaklah mengendalikan nyala lampu led, melainkan yang mengendalikan adalah
mikrokontroller, komputer hanya berposisi sebagai pemberi perintah kepada mikrokonroller, dan
mikrokontroller yang akan mengeksekusi nyala led tersebut, untuk lebih jelasnya dapat melihat
bagan berikut.

Sensor Minimum System Modul NM7010A-LF


ATMega32
UTP
kabel

PortA.7 Vcc, gnd, int0, sda, scl, reset

PortB.0

Led Komputer

229
6.13.3 Rangkaian Hardware

Rangkaian hardware yang digunakan untuk membuat alat ini adalah modul
NM7010A-LF, rangkaian led, dan rangkaian minimum system ATMega32 , berikut penjelasan
per bagiannya

a. Modul TCP-IP Starter Kit


Modul NM7010A-LF yang dipakai untuk membuat alat ini yaitu modul TCP-IP
Starter Kit dari innovative electronics, yang mana telah terdapat board pendukung dan modul
NM7010A-LF sehingga memudahkan untuk koneksi ke mikrokonroller dikarenakan telah
terdapat port dan dip switch pada board pendukungnya, Gambar 6.13b adalah Gambar tampilan
modul tersebut.

230
Gambar 6.13b Rangkaian Skematik TCP-IP Starter Kit dan Bentuk Modul NM7010A-LF

231
Untuk koneksi dari modul TCP-IP Starter Kit ke mikrokontroller menggunakan 6
buah port pada minimum system yaitu VCC, GND, SCL, SDA, INT0 dan Reset, seperti pada
Gambar 6.13c berikut
Modul TCP-IP Minimum System
Starter Kit ATMega32
SCL PortC.0

SDA PortC.1

INT0 PortD.2

RST (Reset) Port Reset

VCC VCC

GND GND

Gambar 6.13c Konfigurasi Modul TCP-IP Starter Kit ke Mikrokontroller

Perlu diperhatikan pada masalah setting dip switch, yang dipakai untuk membuat alat
ini yaitu settingan seperti Gambar 6.13d yang mana nomer 1 dan 2 pada posisi Off dan nomer 3
sampai 8 diposisikan ON sehingga akan bernilai 26 +25+24+23+22+21 = 64 + 32 + 16 + 8 + 4 + 2
= 126

Gambar 6.13d Setting Dip switch

232
b. Minimum System ATMega32

ke Sensor

led

Ke SDA dan SCL

Gambar 6.13e Skematik ATMega32


Bahan-bahan :
1. Crystal 4Mhz x 1 buah
2. ATMega32 + Socket 40 pin x 1 buah
3. Capasitor 22p x 2 buah
4. Resistor 4K7 x 3 buah
5. Capasitor 104p x 4 buah
6. IC7805T x 1 buah
7. Capasitor polar 100uF x 1 buah
8. Capasitor polar 10uF x 1 buah
9. Capasitor 103p x 1 buah
10. Pinheader Male Secukupnya
11. Pinheader Female Secukupnya

233
c. Rangkaian Led

Led yang digunakan pada alat ini adalah led hijau 5mm super bright, led ini hanyalah
untuk contoh output, untuk pengembangan lebih lanjut bisa diganti dengan output lain seperti
relay, motor, servo dan lain-lain

Gambar 6.13f Skematik :Led

d. Kabel UTP
Kabel UTP berfungsi untuk menghubungkan antara modul TCP-IP Starter Kit menuju
ke komputer, jika pada komputer akan kabel UTP dipasang pada Port Ethernet. Tipe untuk kabel
UTP ada 2 yaitu “Straight” dan “Cross Over”, pada alat ini dipakai kabel UTP bertipe “Cross
Over” dengan konfigurasi warna seperti gambar 6.13g berikut

Gambar 6.13g Bentuk dan Konfigurasi Kabel UTP Bertipe “Cross Over”

234
6.13.4 Program Bascom AVR
$regfile = "m32def.dat"
$crystal = 4000000
$baud = 19200
$hwstack = 32
$swstack = 32
$framesize = 100

'used constants
Const Sock_stream = $01
Const Sock_dgram = $02
Const Sock_ipl_raw = $03
Const Sock_macl_raw = $04
Const Sel_control = 0
Const Sel_send = 1
Const Sel_recv = 2

'socket status
Const Sock_closed = $00
Const Sock_arp = $01
Const Sock_listen = $02
Const Sock_synsent = $03
Const Sock_synsent_ack = $04
Const Sock_synrecv = $05
Const Sock_established = $06
Const Sock_close_wait = $07
Const Sock_last_ack = $08
Const Sock_fin_wait1 = $09
Const Sock_fin_wait2 = $0a
Const Sock_closing = $0b
Const Sock_time_wait = $0c
Const Sock_reset = $0d
Const Sock_init = $0e
Const Sock_udp = $0f
Const Sock_raw = $10

Enable Interrupts
Config Tcpip = Int0 , Mac = 12.128.12.34.56.78 , Ip = 192.168.1.121 , Submask
= 255.255.255.0 , Gateway = 192.168.1.1 , Localport = 1000 , Tx = $55 , Rx =
$55 , Twi = &H80 , Clock = 100000

Config Adc = Single , Prescaler = Auto , Reference = Avcc

Dim Shtml As String * 15


Dim Tempw As Word
Dim I As Byte , P As Byte
Dim S As String * 200
Dim Test(2) As String * 10

Config Portb = Output


Portb = 0

Led1 Alias Portb.0

Do
Tempw = Socketstat(0 , 0)

235
If Tempw = Sock_established Then
Tempw = Socketstat(0 , Sel_recv)
If Tempw > 0 Then
Do
Tempw = Tcpread(0 , S)

P = Split(s , Test(1) , " ")


If Test(1) = "GET" Then
Gosub Webpage
End If

Loop Until S = ""


Tempw = Tcpwrite(0 , " ")
Gosub Kirim_data

Closesocket 0
End If
Elseif Tempw = Sock_close_wait Then
Closesocket 0
Elseif Tempw = Sock_closed Then
I = Getsocket(0 , Sock_stream , 80 , 0)
Socketlisten 0
End If

Loop
End

Webpage:
P = Split(s , Test(1) , " ")
Shtml = Test(2)
Return

Kirim_data:
Dim Wsize As Word , Icount As Integer
Dim Data_adc As Word
Dim Adc_teg As Single
Dim Teg As String * 5
Dim Y As Byte , X As Byte

Start Adc
Data_adc = Getadc(7)
Adc_teg = Data_adc / 1023
Adc_teg = Adc_teg * 5
Teg = Fusing(adc_teg , "#.###")

If Shtml = "/main.htm" Then


S = "<html><head><title>ADC Monitor</title><meta http-equiv='refresh'
content='1'></head><center><body><p><b>Menampilkan Data
Tegangan<br></b>Tegangan= " + Teg + " volt" +
"</p><p>&nbsp;</p><p>&nbsp;</p></br><a href = '/Led.htm' > Led ON/OFF
</a></body></center></html>"
Elseif Shtml = "/Led.htm" Then
S = "<html><head><title>LED ON/OFF</title></head><center><b>ON/OFF
LED</b></br><a href = '/On.htm'>ON</a></br><a href =
'/Off.htm'>OFF</a></center></body></html>"
Elseif Shtml = "/On.htm" Then

236
S = "<html><head><title>LED ON</title></head><center><b>LED
MENYALA</b></br><a href = '/Off.htm'>Led OFF</a></center></body></html>"
Portb.0 = 1
Elseif Shtml = "/Off.htm" Then
S = "<html><head><title>LED OFF</title></head><center><b>LED PADAM</b></br><a
href = '/On.htm'>Led On</a></center></body></html>"
Portb.0 = 0
Else
S = "<html><head><title>Error Loading Page</title></head><center><b>Web yang
Anda pilih Salah!!!</b></br><a href = '/main.htm'
>BACK</a></center></body></html>"
End If

Wsize = Len(s)
Tempw = Tcpwrite(0 , S , Wsize)
Shtml = ""
Return

6.13.5 Setting Downloader AVR Dude


Untuk men-setting software downloader AVR dude seperti gambar 6.13h

Gambar 6.13h Setting Untuk AVR Dude

237
6.13.6 Setting IP Komputer

Untuk settingan IP Address, Subnet Mask dan Default Gateway pada komputer
seperti gambar 6.13i

Gambar 6.13i Settingan IP Versi 4 pada Komputer

6.13.7 Cara Penggunaan Alat

Langkah pertama untuk menggunakan alat ini yaitu mengecek apakah modul TCP-IP
Starter Kit telah terkoneksi dengan computer atau belum, dengan cara membuka command
prompt dan ketikkan “Ping 192.168.1.121” maka jika terkoneksi dengan baik akan tampak
seperti Gambar 6.13j

238
Gambar 6.13j Tampilan Saat Modul Terkoneksi ke computer

Setelah kedua device terkoneksi , maka langkah selanjutnya yaitu membuka web
browser, pada contoh ini menggunakan web browser Mozilla Firefox, ketikkan alamat berikut
pada address bar “192.168.1.121/main.htm” maka akan tampak seperti Gambar 6.13k

Gambar 6.13k Tampilan main.htm

Jika tombol Led On/OFF ditekan maka akan tampil seperti Gambar 6.13l berikut

239
Gambar 6.13l Tampilan Led.htm

Untuk menghidupkan Led maka tekan tombol ON maka akan masuk ke On.htm
seperti Gambar 6.13m dan jika ditekan tombol OFF maka akan masuk ke halaman Off.htm yang
artinya Led akan padam seperti Gambar 6.13n

Gambar 6.13m Tampilan On.htm

Gambar 6.13n Tampilan Off.htm

240
6.14 Membuat Bel Rumah Modern
Bel rumah merupakan suatu prioritas yang diuatamakan didalam masyarakat,
terutama dalam urusan bertamu, orang yang akan bertamu ke rumah orang lain pasti tidak
lepas dengan adanya suatu alat pemanggil orang penghuni rumah agar bisa keluar, nah
disinilah posisi dari bel rumah itu, dia bertugas untuk memanggil orang penghuni rumah agar
bisa keluar dan bertemu dengan tamu tersebut.
Apa perbedaan bel rumah yang akan dibahas dengan bel rumah yang biasa ada di
masyarakat?, perbedaannya yaitu pada sistem kerjanya, jika yang umum dimasyarakat bel
rumah identik menggunakan sebuah tombol untuk bisa mengaktifkannya, namun untuk bel
rumah modern ini tidak menggunakan tombol sebagai pengaktifnya, namun menggunakan
tangan, sehingga akan terlihat lebih modern dan canggih. Berikut gambar ilustrasi alatnya.

Gambar 6.14a Ilustrasi Bentuk Fisik Bel Rumah Modern Tampak Atas

Bel rumah modern ini menggunakan ATMega16 sebagai otak sekaligus


pengendali rangkaian, dan beberapa buah komponen optocoupler seperti led infrared dan
photodioda. Bel rumah modern ini hanya menampilkan indikator led merah menyala dan
buzzer berbunyi saat tangan dari tamu berada pada Hand Area atau daerah tangan.

6.14.1 Fungsi dan Tujuan


Fungsi dibuatnya alat ini untuk mempercanggih dari sistem pemanggilan
penghuni rumah untuk bisa keluar dan menemui tamu didepan rumah. Tujuan dari
pembuatan alat ini untuk mengetahui prinsip kerja dari komponen optocoupler dalam hal ini
infrared dan photodioda

6.14.2 Prinsip Kerja Alat


Prinsip kerja dari bel rumah modern ini yaitu menghidupkan buzzer sebagai bel
untuk memanggil penghuni rumah, dan ada juga indikator led merah sebagai penanda bahwa
buzzer telah berbunyi didalam.

241
Alat ini yang memegang kendali sebagai tombol adalah komponen optocoupler
yaitu led infrared dan photodioda, infrared dan photodioda dipasang berhadapan satu sama
lain, sehingga cahaya dari infrared dapat diterima sepenuhnya oleh photodioda, maka dari itu
saat pembuatan alat ini yang terpenting yaitu menampilkan tegangan yang didapat oleh
photodioda pada layar LCD sehingga dapat diketahui kalau posisi dari photodioda sudah
tepat atau tidak.
Mikrokontroler ATMega16 mendeteksi nilai dari photodioda, jika nilai dari photo
dioda bernilai 0 maka ATMega16 akan mengaktifkan buzzer dan menyalakan led merah,
namun jika nilai dari photodioda itu >1 maka akan me-nonaktifkan rangkaian buzzer dan
menyalakan led hijau.
Jadi, yang membuat kondisi photodioda bernilai 0 atau >1 adalah tangan dari
tamu, jika kondisi normal, led infrared dapat langsung menyinari ke photodioda tanpa
halangan yang memberikan nilai photodioda bernilai >1, namun jika terdapat tangan tamu
yang menutupi cahaya hantar dari led infrered ke photodioda, nilai dari photodioda adalah 0
karena photodioda tidak terkena cahaya dari infrared, sehingga kondisi inilah yang akan
dibaca oleh mikroontroler apakah nilai dari photodioda bernilai 0 ataukan >1. Berikut skema
kerja dari alat ini.

Nilai dari Minimum Buzzer dan


photodioda System
Led
0 atau >1 ATMega16

Alat ini hanya memiliki dua indikator yaitu indikator suara menggunakan buzzer
dan indikator cahaya menggunakan led hijau dan merah. Led merah akan meyala bersamaan
dengan aktifnya rangkaian buzzer, sehingga tamu akan tahu kalau bel yang ada didalam telah
aktif dan berfungsi maksimal. led hijau digunakan untuk menandakan bahwa alat telah siap
untuk digunakan, jadi dalam kondisi normal led hijau akan menyala terus.

6.14.3 Rangkaian Hardware


Rangkaian hardware penyusun alat ini tidaklah banyak, yaitu rangkaian minimum
system ATMega16, rangkaian optocoupler infrared dan photodioda, rangkaian buzzer, dan
rangkaian led indikator.

242
a. Rangkaian Minimum System
Rangkaian minimum system yang digunakan adalah rangkaian minimum system
ATMega16, sebenarnya menggunakan ATMega8 pun bisa, namun pada bab ini sengaja
menggunakan ATMega16 yang memiliki kapasitas yang lebih besar. Berikut skematik dari
minimum sistemnya.

Ke Rangkaian Led Indikator

Ke Rangkaian Buzzer

Gambar 6.14b Skematik Rangkaian Minimum System ATMega16

b. Rangkaian Optocoupler
Rangkaian yang dipakai untuk optocoupler adalah led infrared dan photodioda,
seperti yang telah dijelaskan sebelumnya bahwa kinerja dari photodioda yaitu jika menerima
cahaya akan bernilai >1 dan jika tidak terkena cahaya akan bernilai 0. Untuk led inframerah
kinerjanya sama seperti led yang lain yang membedakan yaitu led infrared cahaya tidak
nampak jika dilihat dengan mata, namun jika dilihat dengan kamera akan terlihat bahwa dia
mengeluarkan cahaya. Berikut adalah skematik rangkaian led inframerah dan photodioda.

243
PortA.0

Gambar 6.14c Skematik Rangkaian Photodioda

Bahan – bahan :
a. Photodioda 5mm x 1 buah
b. Resistor 330ohm x 1 buah
c. Variabel Resistor 1Kohm x 1 buah

Gambar 6.14d Skematik Rangkaian Inframerah

Bahan-bahan :
a. Led inframerah 5mm x 1 buah
b. Resistor 330ohm x 1 buah

Posisi dari kedua komponen ini sangatlah penting, sehingga harus tepat didalam
pemasangan dan peletakkan. Posisi dari rangkaian infrared dan rangkaian photodioda berada
diantara hand area atau daerah tangan seperti gambar berikut.

1
3
2
Gambar 6.14e Ilustrasi Peletakan Rangkaian Optocoupler Tampak Atas

244
Keterangan:
- No.1 adalah posisi dari rangkaiaan inframerah
- No.2 adalah hand area atau daerah tangan
- No.3 adalah posisi rangkaian photodioda

Posisi dari led infrared harus benar-benar meyorot ke photodioda sehingga


photodioada bernilai >1 saat kondisi normal, maka dari itu untuk mengetahui bahwa
photodioda telah menerima cahaya atau tidak bisa menampilkannya ke layar LCD.

c. Rangkaian Buzzer
Rangkaian buzzer yang digunakan pada alat ini adalah rangkaian buzzer 5v
seperti pembuatan rangkaian buzzer pada alat yang lain yang membahas juga tentang
rangkaian buzzer. Berikut adalah skematiknya.

Ke PortD.0

Gambar 6.14f Skematik Rangkaian Buzzer

d. Rangkaian Led Indikator


Rangkaian led indikator ini difungsikan untuk memberikan indikasi bahwa alat
sedang melakukan tugasnya, jika led hijau menyala menandakan bahwa alat siap untuk
digunakan dan led merah menyala menandakan bahwa buzzer didalam rumah berbunyi.
Berikut skematiknya.

245
Ke PortB.0 dan PortB.1

Gambar 6.14g Skematik Rangkaian Led Indikator

Bahan-bahan:
a. Led merah 5mm Super Bright x 1 buah
b. Led Hijau 5mm Super Bright x 1 buah
c Resistor 330ohm x 2 buah
d. Pinheader tunggal

6.14.4 Program Bascom-AVR


'==========================================================================
'Programmer: Yanuar Mukhammad
'E-mail : Yanuarm@hotmail.com
'==========================================================================
$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
Start Adc
'--------------------------
Dim Cahaya_ref As Word
Dim Cahaya As Single
'--------------------------
Cahaya = 0
DDRB = &B11111111
DDRD.0 = 1
'--------------------------
Deflcdchar 0 , 31 , 31 , 31 , 31 , 31 , 31 , 31 , 31
Deflcdchar 1 , 32 , 32 , 32 , 32 , 32 , 32 , 32 , 32
Cls
Cursor Off
'---------------------------
Do
Cahaya_ref = Getadc(0)
Cahaya = Cahaya_ref * 263 'Rumus kalibrasi
Cahaya = Cahaya / 10 ‘Rumus kalibrasi

246
'---------------------------
Locate 1 , 1
Lcd "***INTENSITAS***"
Locate 2 , 1
Lcd Chr(0)
Locate 2 , 2
Lcd "(Lumen)="
Locate 2 , 10
Lcd " "
Locate 2 , 10
Lcd Cahaya
'---------------------------
Locate 2 , 1
Lcd Chr(1)

If Cahaya >1 then


portB.0 = 0 ‘led hijau menyala
portB.1 = 1 ‘led merah mati
portD.0 = 0 ‘buzzer mati
end if

If Cahaya = 0 then
portB.0 = 1 ‘led hijau mati
portB.1 = 0 ‘led merah menyala
portD.0 = 1 ‘buzzer hidup
end if

Loop
'--------------------------- end

6.14.5 Cara Penggunaan Alat


Cara penggunaan alat ini sangatlah mudah sekali, untuk mengaktifkan bel-nya
hanya memerlukan tangan pada hand area atau daerah tangan sehingga tangan tersebut bisa
menghalangi pancaran sinar infrared ke photodioda, yang mana jika kondisi seperti itu
photodioda akan bernilai 0, sebaliknya jika tidak ada tangan yang menghalangi maka
photodioda bernilai lebih dari 1.

247
6.15 Cara Menghubungkan Camera Link Sprite ke Komputer
Pada bagian ini akan dibahas mengenai bagaimana cara penggunaan dari device
linksprite. Penggunaan camera linkspite ini tidak memerlukan minimum system dan
mikrokontroler untuk mengaksesnya, karena kamera linkspite dapat berdiri sendiri tanpa
bantuan dari mikrokontroler. Berikut adalah gambar dari kamera linksprite tersebut.

Gambar 6.15a Bentuk dari Camera Linksprite

Kamera linksprite ini digunakan untuk mengambil gambar secara jelas dan
menyeluruh, kualitas gambar yang dihasilkan pun terbilang bagus, sangat cocok untuk
mengambil gambar pemandangan atau object lain.
Penggunaan kamera linksprite ini ada dua methode yaitu nirkabel dan wireless,
untuk nirkabel yaitu kamera linksprite dihubungkan ke komputer menggunakan kabel, bisa
menggunakan kabel DKU-5 atau kabel serial yang menggunakan rangkaian RS232. Untuk
yang wireless yaitu menghubungkan kamera linksprite dengan komputer tanpa kabel,
biasanya menggunakan APC220 atau Xbee.
6.15.1 Fungsi dan Tujuan
Tujuan dari pembahasan ini agar dapat mengetahui cara menghubungkan kamera
linksprite dengan komputer dengan mengunakan dua metode. Fungsinya agar lebih bisa
menembangkan proyek mikrokontroler dengan menggunakan kamera linksprite untuk
berbagai keperluan.
6.15.2 Prinsip Kerja Alat
Prinsip kerja dari kamera linksprite ini hanya mengambil gambar dari object yang
dituju, setelah itu kamera linksprite mengirimkannya ke komputer secara langsung. Berikut
adalah bagan dari prinsip kerja kamera linksprite secara wireless dan nirkabel.

248
a. Secara Nirkabel
RX,TX, GND, VCC
Kamera Komputer
linksprite Kabel DKU-5

b Secara Wireless

RX,TX, GND, VCC

Kamera Komputer
APC220 APC220
linksprite

Wireless

6.15.3 Rangkaian Hardware


Rangkaian hardware yang digunakan pada pembahasan kali ini hanyalah kamera
linksprite dan kabel serial atau modul serial wireless
a. Kamera Linksprite
Kamera linksprite ini adalah modul yang digunakan untuk mengambil gambar,
hasil gambar berekstensi .JPG atau .JPEG. kamera ini hanya menggunakan 4 buah kabel /
jalur yaitu VCC, GND, RX dan TX. Berikut adalah gambar konfigurasinya.

VCC

GND

TX

RX

Gambar 6.15b Konfigurasi Kamera Linksprite

Perlu diperhatikan bahwa untuk koneksi dari kamera linksprite ke komputer,


kamera linksprite hanya bisa konek ke dua port COMM yaitu port COMM1 dan port
COMM2 pada komputer, sehingga sebelum kamera linksprite ini dikonekkan ke komputer,
terlebih dahulu setting port COMM untuk kabel serial atau wireless device ke port COMM1

249
atau 2 sehingga pada saat kamera linksprite ini diaktifkan akan langsung masuk ke port
COMM 1 atau 2 tanpa harus mensetting ulang port COMM yang digunakan.

6.15.4 Cara Penggunaan Alat


Cara penggunaan kamera linksprite ini hanya memerlukan software kendali yang
telah disediakan oleh pihak pembuat, nama softwarenya LS-Y201, software ini bisa
didownload dari internet secara gratis. Berikut adalah tampilannya

Gambar 6.15c Tampilan dari Software LS-Y201

Keterangan:
- No.1 adalah setting port COMM yang digunakan untuk koneksi secara serial, software ini
hanya menyediakan 2 buah port COMM yaitu port COMM 1 dan port COMM 2
- No.2 adalah setting untuk menentukan ukuran hasil gambar
- No.3 adalah setting untuk mengubah setting default, seperti baudrate, path dan compress.
- No.4 adalah tombol untuk mengambil gambar
- No.5 adalah layar untuk menampilkan hasil gambar yang ditangkap oleh kamera linksprite

Untuk langkah pertama dalam mengoperasikan software ini adalah menentukan


port COMM yang digunakan oleh komputer. Kemudian setting baudrate dari kamera

250
linksprite, untuk setting baudrate default adalah 38400. Tekan tombl open untuk membuka
port COMM tersebut, jika berhasil maka kamera linksprite siap digunakan, dengan menekan
tombol one shot untuk mengambil gambar. Jika menginginkan ukuran yang lebih besar dapat
mengatur setting yang digunakan yaitu pada menu no.2.
Cara penggunaan kamera linksprite secara nirkabel atau wireless adalah sama,
yaitu hanya menekan tombol one shot untuk mengambil gambar, dan membuka port COMM
yang terkoneksi terlebih dahulu.

251
6.16 Membuat Tampilan Dotmatrik 8 x 8

Pada bagian ini akan dibahas mengenai bagaimana cara membuat dotmatrik, dengan
menggunakan dotmatrik 8 x 8 dan ATMega8, dotmatrik yang digunakan untuk pembahasan kali
ini berjumlah dua buah, namun akan dijelaskan pula pada bagaian akhir tentang bagaimana cara
untuk menyusun jika menggunakan tiga buah dotmatrik atau lebih. Memang, jika dilihat sekilas
pembuatan dotmatrik agak rumit dan ruwet, tapi semua itu tidak benar, rangkaian dotmatrik
sebenarnya tidak terlalu sulit dan mudah dipahami, dotmatrik ini dapat dikategorikan sebagai
kelas tingkat medium, yang mana cukup untuk membuat berfikir mengenai konfigurasi
rangkaian dan programnya. Untuk tampilan dotmatrk yang akan dibuat adalah seperti gambar
6.16a

Gambar 6.16a Bentuk dan Tampilan Dotmatrik 8 x 8 sebanyak 3 buah

Pertanyaan pertama yang muncul, kenapa yang dibahas dibab ini hanya dua buah
dotmatrik saja?, jawabannya karena untuk lebih mudah memahami mengenai konfigurasi dan
prinsip kerjanya, dikarenakan jika pembahasannya langsung menerangkan tentang konfigurasi
dotmatrik sebanyak 3 buah, dikhawatirkan akan membuat bingung dan akan tampak sulit.
Dotmatrik sendiri, sejatinya adalah kumpulan led yang dihubungkan antara satu sama
lain dengan suatu konfigurasi kolom dan baris sehingga perlu teknik khusus untuk
menghidupkan led pada suatu posisi tertentu.
Dotmatrik adalah alat yang umum digunakan, yang mana selalu menampilkan
karakter berupa angka, huruf, tulisan atau symbol yang berjalan, biasanya dipasang didepan toko,
di atas panggung, dan didepan pintu rumah. Alangkah baiknya jika dotmatrik yang akan kita

252
gunakan merupakan dotmatrik karya dari tangan kita sendiri, itu lebih menyenangkan dan
memuaskan. Kegunaan dotmatrik dimasyarakat adalah untuk memperindah suasana toko atau
rumah dan juga bisa digunakan untuk menginformasikan sesuatu kepada orang banyak seperti
halnya di stasiun kereta api atau di universitas.

6.16.1 Fungsi dan Tujuan


Fungsi dibuatnya rangkaian dotmatrik ini adalah sebagai bahan hiasan toko dan
rumah atau media pemberi informasi secara elektronik kepada orang lain. Tujuan dibuatnya alat
ini adalah untuk mengetahui bagaimana penggunaan dari dotmatrik jika dihubungkan ke suatu
rangkaian.

6.16.2 Prinsip Kerja Alat


Prinsip kerja alat ini yaitu ATMega8 sebagai pemberi sinyal output yang berupa 1
dan 0, untuk 1 adalah sinyal vcc dan 0 adalah sinyal gnd, dari ATMega8 dikirimkan ke transistor
2N3906 yang berfungsi sebagai saklar on/off, dari transistor sinyal kemudian diteruskan ke IC
74LS164, yang mana fungsi IC ini adalah sebagai shift register, setelah itu sinyal diteruskan ke
IC ULN2803A. berikut adalah bagan system kerjanya

ATMega8 Transistor IC 74LS164 IC ULN2803A


2N3906

DOTMATRIK
8X8

Jadi Dotmatrik adalah output terakhir yang mana tampilan dotmatrik tergantung
dengan konfigurasi output dari ATMega8 yang digunakan, sehingga masalah waktu delay dan
kecepatan gerak dikendalikan oleh program di ATMega8. Mikrokontroler berfungsi sebagai
pengatur kecepatan gerak tampilan di dotmatrik dan juga sebagai input karakter. Untuk IC
74LS164 shift register disini untuk media penggerak jika diberikan suatu input masukan.

253
6.16.3 Rangkaian Hardware
Rangkaian hardware yang digunakan hanya dua yaitu rangkaian minimum system
ATMega8 dan rangkaian dotmatrik.

a. Rangkaian Dotmatrik
Rangkaian dotmatrik membutuhkan beberapa komponen dasar yaitu resistor 360
ohm, IC 74LS164, transistor 2N3906 sebanyak 8 buah dan IC ULN2803A, ada 4 tahap dalam
membuat rangkaian dotmatrik ini yaitu
1. Tahap 1 dari Minimum System ke Transistor 2N3906
2. Tahap 2 dari Minimum System ke IC 74LS164
3. Tahap 3 dari IC 74LS164 ke IC ULN2803
4. Tahap 4 dari Transistor 2N3906 ke Dotmatrik
5. Tahap 5 dari ULN2803A ke Dotmatrik

1. Tahap 1 dari Minimum System ke Transistor 2N3906

Minimum System

PortC.5
PortC.4
PortC.3
PortC.2
PortC.1 R 360 ohm
A

PortB.5
PortB.4
PortB.3
R 360 ohm

254
2. Tahap 2 dari Minimum System ke IC 74LS164

Minimum System

PortD.0
PortD.1
PortD.2

3. Tahap 3 dari IC 74LS164 ke ULN2803A


ULN2803A
Minimum System

255
4. Tahap 4 dari Transistor 2N3906 ke Dotmatrik

Dotmatrik 1a Dotmatrik 1b

IN

Dotmatrik 2a Dotmatrik 2b

5. Tahap 5 dari ULN2803A ke Dotmatrik

ULN2803A

Dotmatrik 2a

Dotmatrik 1a

Dotmatrik 2b

Dotmatrik 1b

ULN2803A

256
6. Gabungan Tahap 2, 3, 4 dan 5

257
7. Gabungan Tahap 1, 2, 3, 4 dan 5

258
b. Rangkaian Minimum System ATMega8

Downloader

Gambar 6,16b Skematik ATMega8

Bahan-Bahan :
1. Crystal 12Mhz x 1 buah
2. C keramik22p x 2 buah
3. C Pol 10uF/16v x 2 buah
4. ATMega8 + Socket 28 pin
5. C keramik 103p dan 104p x 1 buah
6. Resistor 4k7 x 1 buah
7. IC7805 x 1 buah

259
8. Con-Jack DC on board
9. Diaoda 1N4004
10. Pinheader secukupnya

6.16.4 Program Bascom AVR


Khusus untuk pembahasan program bascom AVR pada bab ini tidak di tuliskan,
dikarenakan panjangnya program mencangkup 30 halaman, maka dari itu untuk pembahasan
program bascom AVR di bab ini dapat di download di link berikut :
http://www.4shared.com/rar/rCsnIact/program.html?

6.16.5 Cara menghubungkan rangkaian dotmatrik lebih dari 2 buah

Contoh diatas dibahas mengenai pemuatan rangkaian untuk 2 buah dotmatrik,


sekarang pertanyaannya, bagaimana jika ingin membuat rangkaian untuk 3 buah dotmatrik atau
lebih, ada beberapa poin yang harus diperhatikan, yaitu pada bagian hardware dan program
bascom AVR-nya, berikut penjelasannya

a. Bagian hardware

260
Jadi menghubungkan rangkaian untuk lebih dari 2 buah dotmatrik hal yang harus
diperhatikan yaitu CLK IC 74LS164 nomer 2 dihubungkan ke CLK IC 74LS164 nomer 3, pin
13 pada IC 74LS164 dihubungkan ke pin A dan B pada IC 74LS164 nomer 3, pin CLR IC
74LS164 nomer 2 dihubungkan ke CLR IC 74LS164 nomer 3.
Pada anak panah yang berlabel “A” terlihat bahwa konfigurasi untuk menambahkan
satu lagi rangkaian dotmatrik menggunakan parallel output, sehingga konfigurasinya sama
persisi dengan konfigurasi untuk 2 buah dotmatrik.
Untuk menggunakan dotmatrik lebih dari tiga buah misalnya 10 buah maka dapat
dilakukan penyesuaian konfigurasi seperti yang telah dijelaskan, dan juga masih menggunakan
rangkaian dan pola yang sama.

b. Bagian Program Bascom AVR


Pada bagian program Bascom AVR, terdapat program yang meminta untuk
memasukkan jumlah dotmatrik yang digunakan yaitu pada bagian “Type_mtrx = 3”
, pada contoh memang di isikan “3” artinya menggunakan tiga buah dotmatrik, jika ingin
menggunakan 2 buah dotmatrik, hanya perlu mengganti dengan angka “2” begitu pula
untuk 10 dotmatrik, hanya perlu mengganti angka “10”, berikut adalah penggalan listing
programnya

Dim Kata As String * 200


Dim Kata_i As String * 99
Dim Sek As Byte
Dim D As Byte
Dim Pnjg_kata As Byte
Dim Charmatrix As Byte
Dim Type_mtrx As Byte
Dim Inverse As Byte
Dim Tampung As Byte
Dim Tunda As Byte

Type_mtrx = 3 ‘input jumlah Dotmatrik yang digunakan


Charmatrix = 8 * Type_mtrx
Decr Charmatrix

Xy = 1
Kata = " KAMAR COWOK OK " ‘input karakter yang akan ditampilkan
Pnjg_kata = Len(kata)
For I = Pnjg_kata To 1 Step -1
Kata_i = Right(kata , I)

261
Sek = Asc(kata_i)
Down = Sek * 8
For Y = 0 To 7
Table(xy) = Lookup(down , Huruf)

Pada bagian program berikut “Kata = " KAMAR COWOK OK " “ merupakan
penggalan program untuk memasukkan karakter yang akan ditampilkan pada dotmatrik, pada
contoh sengaja di tuliskan “KAMAR COWOK OK” , sehingga pada tampilan dotmatrik akan
sama seperti yang dituliskan, jika menginginkan karakter yang lain maka ubahlah sesuai dengan
keinginan.

6.16.5 Cara Penggunaan Alat

Untuk menggunakan rangkaian dotmatrik ini sangatlah mudah, hanya perlu


memberikan input tegangan 12v pada bagian con-jack DC, maka dotmatrik akan menampilkan
karakter seperti yang telah diinputkan pada program, yaitu pada bagian Kata = " KAMAR
COWOK OK ".

262
6.17 Membuat Modul Record Suara
Membuat modul record suara sangatlah mudah, hanya perlu menggunakan sebuah
IC yang digunakan untuk merekam suara, namanya yaitu ISD1420. IC ini biasa digunakan
untuk proyek mikrokontroler yang berhubungan dengan merekam suara. Modul ISD1420 ini
bisa berdiri tanpa mikrokontroler bisa juga kolaborasi dengan mikrokontroler, tergantung
kebutuhan. Berikut adalah tampilan dari alat perekam suara tersebut.

Gambar 6.17a Bentuk dari Modul Record Suara

Modul perekan suara ini hanya memerlukan sebuah micondensor sebagai input
suara dari sumber suara, dan sebuah speaker yang digunakan sebagai device untuk keluaran
dari suara yang telah direkam.

6.17.1 Prinsip Kerja Alat


Prinsip kerja dari alat ini hanyalah merekam suara dari sumber suara yang akan
direkam, kemudian akan dikeluarkan hasil rekaman tersebut ke speaker. Berikut adalah
bagannya.

Input Output
Sumber Modul Speaker
Suara ISD1420

Modul ISD1420 ini bisa merekam sebanyak 8 kali suara yang berbeda, masing-
masing bisa diaktifkan jika register terkait terkena ground, namun jika menginginkan hanya 1

263
suara dapat dilakukan penyatuan register menjadi satu dan diberi ground. berikut skema yang
lebih jelasnya.

Suara 1 A0
Suara 2 A1
Suara 3 A2
GND Suara 4 A3 ISD1420
Suara 5 A4
Suara 6 A5
Suara 7 A6
Suara 8 A7

Pada penjelasan diatas adalah cara untuk memberikan input 8 macam suara yang
berbeda, dengan salah satu register diberi GND maka port tersebut yang akan menyimpan
suara, dan jika ingin mengaktifkan suara yang tersimpan tersebut juga harus menaruh ground
pada register tersebut.
Untuk penggunaan yang lain yaitu IC ISD1420 ini digunakan hanya untuk satu
macam suara, yang mana ini lebih praktis dan tidak perlu mengganti-ganti register, istilah
lain dari motode ini yaitu record and play, jadi rekam dan main, jika terdapat suara pertama
kemudian dilakukan perekaman suara lagi, maka suara pertama tersebut terganti oleh suara
kedua. Berikut skemanya.

Suara 1 A0
A1
A2
GND A3 ISD1420
A4
A5
A6
A7

Untuk skema diatas menerangkan satu macam perekaman suara yang mana tidak
ada istilah penyimpanan suara dalam suatu register, semua register bertindak untuk
menyimpan suara dari input suara, sehingga suara yang direkam hanya bisa satu macam saja
berbeda jika hanya satu register yang terkena GND maka hanya register tersebut yang bisa
aktif mengeluarkan dan merima suara.

264
6.17.2 Rangkaian Hardware
Rangkaian Hardware untuk membuat modul record suara ini hanyalah
menggunakan rangkaian dari pendukung IC ISD1420. Jika ingin dihubungkan dengan
mikrokontroler maka harus ditambahkan rangkaian minimum system
a. IC ISD1420
IC ISD1420 ini digunakan sebagai IC yang dapat menangkap suara yang
dikirimkan melalui micondensor dan disimpan pada suatu register, sehingga jika ingin
mengaktifkan / mengeluarkan rekaman suara tersebut, register yang digunakan sebagai
penyimpanan haruslah aktif yaitu diberikan GND pada register tersebut, sebagaimana register
yang aktif saat dilakukannya perekaman suara.
IC ISD1420 ini hanya bisa merekam selama 20 detik, karena menggunakan tipe
1420, yang mana dua angka dibelakang mengindikasikan lamanya IC dapat merekam suara.
Berikut ini adalah rangkaian skematik dari modul ISD1420

220uF

Gambar 6.17b Skematik Modul ISD1420

Bahan-bahan:

a. IC ISD1420 x 1 buah
b. Tombol on/off x 3 buah
c Micondensor x 1 buah
d. Speaker x 1 buah
e. Led 3mm x 1 buah
f. Resistor 100Kohm x 3 buah
g. Resistor 1Kohm x 2 buah
h. resistor 470Kohm x 1 buah

265
i. Resistor 5,1Kohm x 1 buah
j. Resistor 10Kohm x 2 buah
k. Capasitor 1nF x 1 buah
l. Capasitor 0,1uF x 3 buah
m. Capasitor polar 0,1uF x 1 buah
n. Capasitor polar 4,7uF x 1 buah
o. Capasitot polar 220uF x 1 buah

6.17.3 Cara Penggunaan Alat


Untuk cara penggunaan modul rekam suara ini hanya menekan tombol REC
untuk memasukkan suara kedalam register melalui micodensor, jadi pada saat tombol REC
diaktifkan, akan menghidupkan led yang menandakan bahwa register record suara telah siap
untuk menyimpan suara dari micondenser. Jika ingin memainkan suara hasil rekaman dapat
menekan tombol PLAYL.
Cara yang sama digunakan untuk merekam tujuh macam suara yaitu dengan cara
register yang terkait diberi GND misalnya A.0 diaktifkan, maka untuk melakukan play suara
haruslah register tersebut tetap aktif, jika tidak diberi GND maka register tersebut tidaklah
aktif.

266
6.18 Membuat Speaker Active
Hobi mendengarkan musik pasti tidak lepas dengan yang namanya speaker aktif,
speaker aktif keberadaannya sangat dibutuhkan sekali dimasyarakat, terutama sebagai alat
untuk mengeluarkan musik dari pemutar musik, sehingga lagu bisa didengarkan dengan baik
dan enak untuk dinikmati.
Terfikir bahwa membuat sebuah speaker aktif itu sulit, tapi kenyataannya jika
dibuka rangkaiannya dan dilihat satu persatu, pasti akan berubah pikiran. Membuat sebuah
speaker aktif itu hal yang mudah, hanya membutuhkan komponen yang umum dipakai,
memang yang sulit adalah menemukan IC decodernya yang mengubah dari output sound card
ke dalam suara yaitu IC TDA2822M. Berikut adalah gambar dari speaker aktif tersebut

Gambar 6.18a Bentuk Dari Speaker Aktif

Speaker aktif ini hanya memerlukan tegangan VCC sebesar 5 Volt sehingga
untuk menghidupkannya bisa menggunakan tegangan VCC dari port USB yang
mengeluarkan VCC 5 volt.
6.18.1 Prinsip Kerja Alat
Speaker aktif ini hanya melakukan decoder suara dari sound card komputer /
pemutar musik menjadi suara yang bisa diterima oleh speaker, proses decoder ini dilakukan
oleh IC TDA2822M. Berikut adalah bagan kerjanya.

Pemutar File TDA2822M Speaker


Musik

Speaker aktif ini membutuhkan dua buah speaker untuk output decodernya, dan
untuk inputnya ada dua yaitu satu buah jalur untuk pemutar musik / sound card, yang satunya
lagi untuk tegangan vcc 5 volt.

267
6.18.2 Rangkaian Hardware
Untuk membuat speakrer aktif ini hanya memerlukan dua buah speaker, IC
TDA2822M dan komponen pendukung. Berikut adalah rangkaian skematiknya.

VCC

Input

Gambar 6.18b Skematik Speaker Aktif

Bahan-bahan :
a. IC TDA2822M x 1 buah
b. Speaker 4ohm/1w x 2 buah
c. Resistor 47Kohm x 2 buah
d. Variabel Resistor 47Kohm x 2 buah
e. Resistor 1 ohm x 1 buah
f. Resistor 680 ohm x 1 buah
g. Resistor 4,7 ohm x 2 buah
h. Led 3mm x 1 buah
i. Capasitor 100n x 5 buah
j. Capasitor Polar 100uF/25v x 4 buah
k. Capasitor Polar 100uF/16v x 1 buah
l. Tombol On/Off x 1 buah

6.18.3 Cara Penggunaan Alat


Cara penggunaan dari alat ini yaitu bagian VCC diberi tegangan 5volt dan bagian
input sambugkan ke pemutar musik atau sound card computer sehingga speaker akan
mengeluarkan suara, untuk mengatur volume suara dapat diatur dari variabel resistor 47K
sebagai pengatur input suara untuk membagi kepada ke dua buah speaker.

268
6.19 Membuat Rangkaian Preamp-Mic
Rangkaian preamp-mic adalah rangkaian untuk menghasilkan suara yang lebih
keras, atau dengan kata lainnya rangkaian pengeras suara. Untuk input dari rangkaian
pengeras suara ada 2 tipe yaitu microphone yang berukuran kecil / micondenser, biasanya
dipakai oleh imam saat memimpin sholat berjamaah, dan yang kedua yaitu microphone yang
berukuran besar / microphone dinamis yang biasa dipakai oleh penyayi.
Sebenarnya, prinsip kerja dari rangkaian pre-mic ini marak sekali dipakai untuk
keperluan sehari-hari ditengah aktivitas masyarakat, misalnya untuk menyayi, mengaji,
berpidato, dan keperluan yang lain. Maka dari itu alangkah beruntungnya jika dapat membuat
rangkaian tersebut secara mandiri tanpa harus membeli. Berikut adalah gambar dari alat
tersebut.

Gambar 6.19a Bentuk dari Alat Pengeras Suara

Untuk Jenis input untuk alat ini bisa menggunakan microphone dinamis atau
menggunakan microphone kondensor (micondenser) tergantung dari bentuk pemakaian.
Untuk pengertian dari kedua item tersebut dapat dilihat pada penjelasan berikut.

a. Mikrophone dinamis
Microphone dinamis adalah mikropon yang menggunakan prinsip kerja induksi
(mikropon menjadi sumber listrik induksi). Prinsip kerja : Getaran suara yang masuk
menggerakkan membran; getaran membran menggerakkan moving coil; getaran moving coil
yang berada dalam membrane magnet akan menyebabkan timbulnya aliran listrik. Aliran
listrik yang berupa gelombang listrik seirama dengan getaran suara yang diterima.

269
b.Mikrophone Micondenser
Microphone kondensor adalah mikropon yang dalam kerjanya menggunakan
kondensator. Prinsip kerja : Getaran suara yang masuk menggetarkan membran. Getaran
membran ini mengakibatkan gerakan maju dan mundur lempengan penghantar pada
kondensator. Dengan perubahan ini, nilai kondensator pun berubah seiring dengan perubahan
getaran. Perubahan kapasitansi ini menyebabkan terjadinya getaran listrik. Selanjutnya
getaran listrik ini diperkuat oleh Preamp. Pada mikropon jenis ini memerlukan tegangan
phantom dari preamp sebesar 48 volt, tetapi untuk aplikasi sehari hari biasanya mikropon
kondensor cukup menggunakan bateray 1,5 volt.

6.19.1 Prinsip Kerja Alat


Prinsip kerja pre-mic ini adalah mengubah volume suara input menjadi berkali-
kali lipat, sehingga bisa terdengar keras di speaker. Rangkaian pre-mic ini membutuhkan
suara input yang diambil menggunakan mikrophone mikondenser atau mikrophone dinamis,
namun pada contoh alat ini menggunakan microphone mikondenser yang harganya lebih
terjangkau. Dari mikrophone suara dikirimkan ke rangkaian pre-mic, kemudian dari rangkain
pre-mic suara dikeluarkan ke speaker. Berikut bagannya

Suara Rangkaian Speaker


Preamp-MIC

6.19.2 Rangkaian Hardware


Preamp mic ini hanya membutuhkan beberapa item pendukung, yaitu
mikrophone sebagai input, rangkaian pre-mic dan speaker. Berikut skematiknya

Battery 9v

Mikondenser Speaker

GND

Gambar 6.19b Skematik Rangkaian Preamp-Mic

270
Bahan-bahan:
a. Mikrophone Mikondenser x 1 buah
b. Resistor 15Kohm x 1 buah
c. Resistor 220Kohm x 1 buah
d. Resistor 5,6Kohm x 1 buah
e. Resistor 2k2ohm x 1 buah
f. Variabel Resistor 50Kohm x 1 buah
g. Transistor C828 x 1 buah
h. Kapasitor 100nF x 1 buah
i. Kapasitor polar 100uF x 1 buah
i. Kapasitor polar 4,7uF x 1 buah

6.19.3 Cara Penggunaan Alat


Cara penggunaan alat ini yaitu menghubungkan VCC dengan battery 9v, pada
bagian Speaker dihubungkan ke sebuah speaker aktif, bisa yang menggunakan buffer maupun
tidak menggunakan buffer. Masukkan beberapa suara ke mikrophone mikondenser, maka
pada speaker aktif akan berbunyi seperti apa yang mikrophone mikondenser tangkap dengan
tingkat volume yang lebih besar.

271
6.20 Membuat Power Supply / Adaptor 12v dan 5v dari sumber AC
Pernah melihat Adaptor yang biasa digunakan untuk suplay arus dan tegangan?,
jika pernah, terbanyangkah untuk tidak membelinya, namun membuatnya sendiri. Pada bab
ini khusus menerangkan bagaimana cara membuat sebuah adaptor dari sumber AC, jadi
adaptor yang dibuat ini tidaklah seperti adaptor yang ada dipasaran, yang dapat disetting
output tegangannya. Adaptor yang dibuat ini hanya mengeluarkan dua buah tegangan 5v dan
satu buah tegangan 12v, yang mana 5v dan 12v adalah tegangan yang populer untuk suatu
proyek mikrokontroler. Arus yang digunakan dari trafo sebesar 1 Ampere. Berikut ini gambar
dari Adaptor tersebut.

Gambar 6.20a Bentuk Dari Adaptor Buatan Sendiri

Jadi adaptor ini memerlukan tegangan AC sebesar 220 volt – 50/60Hz, yang
mana dapat mengambil dari sumber arus dari stop kontak rumah atau tempat lain. Adaptor ini
dilengkapi dengan sebuah indikator yang berupa led, yang mengindikasikan rangkaian
berjalan optimal.
6.20.1 Prinsip Kerja Alat
Prinsip kerja adaptor ini adalah melakukan output tegangan dan arus. Tegangan
yang dihasilkan sebesar 12v dan 5v yang diambil dari tegangan AC sebesar 220v. berikut
adalah bagan kerjanya.

Sumber Adaptor Tegangan


tegangan DC 12 volt
AC 220 volt Tegangan
DC 5 volt

272
Dari sumber tegangan AC dikonverter menjadi tegangan DC menggunakan trafo
dan 4 buah dioda, fungsi trafo disini adalah menurunkan tegangan dari 220v menjadi 12v AC,
dari tegangan tersebut dikonverter menggunakan 4 buah dioda, sehingga hasilnya adalah
tegangan 12v DC, dan yang menghasilkan tegangan 5v DC adalah IC 7805, dengan arus pada
trafo sebesar 1 Ampere yang digunakan pada adaptor ini.

6.20.2 Rangkaian Hardware


Rangkaian hardware untuk adaptor ini menggunakan beberapa item yaitu trafo 1
Ampere, rangkaian konverter AC ke DC, rangkaian adaptor 12 volt ke 5 volt. skematik
rangkaiannya seperti pada gambar 6.20b.

Bahan –bahan:
a. Dioda 1N4004 x 5 buah
b. Capasitor Polar 4700uF/50v x 2 buah
c. Capasitor 100nF x 6 buah
d. Trafo 1 Ampere x 1 buah
e. Transistor 2N3055 x 1 buah
f. Led 5mm hijau x 1 buah
g. Resistor 2k2 ohm x 1 buah
h. Resistor 0,47 ohm / 5 watt x 1 buah
i. IC7805 x 1 buah
j. IC7812TV x 1 buah
k. IC7912 x 1 buah

Untuk menghubungkan trafo ke rangkaian adaptor yaitu dengan memasukkan


GND rangkaian ke CT ( jika menggunakan CT ), kemudia kedia ujung yang lain masuk ke 12
unutk menghasilkan tegangan output 12v AC yang masuk ke konverter AC to DC. Berikut
skema untuk lebih jelasnya.
12 Vo1
Trafo 1 A Rangkaian Adaptor &
220v CT GND
Konverter AC to DC
12 Vo2

273
Ke Trafo 220v to 12v

AC to DC Converter

4700uF 4700uF/50v

Rangkaian Regulator 5v

12v DC 5v DC

Gambar 6.20b Skematik Rangkaian Adapator


274
6.20.3 Cara Penggunaan Alat
Untuk menggunakan alat ini hanya perlu menghubungkan tegangan trafo ke
sumber arus dan tegangan 220 volt AC, kemudian akan menyala Led hijau, itu menandakan
bahwa rangkaian telah aktif dan siap untuk digunakan, terdapat 3 buah tegangan output yaitu
tegangan DC +12 volt dan tegangan DC -12 volt dan satu buah tegangan DC +5 volt. Untuk
memastikannya dapat menggunakan multimeter digital atau analog.

275
6.21 Mengatur Kecepatan Motor DC
Motor DC sangat digemari dimasyarakat terutama untuk project elektronika dan
pembuatan alat, dalam pembuatan robot juga tidak lepas dengan yang namanya motor DC,
motor DC berfungsi untuk memberikan putaran dan torsi saat dialiri oleh tegangan, sehingga
kegunaan dari putarannya dapat dimanfaatkan untuk kebutuhan masyarakat seperti halnya
pintu buka / tutup otomatis, kipas angin, cooling pad untuk komputer dll.
Motor DC saat dialiri arus dan tegangan dia memiliki kecepatan yang konstan,
tergantung dari tegangan maksimal yang diberikan, jika motor DC 12 v maka tegangan yang
dibutuhkan yaitu 12v dan itu kecepatan putar motor yang optimal, namun bagaimana cara
mengendalikan kecepatan putaran motor DC ini agar dia bervariasi kecepatannya ?,
jawabannya yaitu dengan menggunakan PWM (pulse width modulation), yang mana PWM
ini bisa memberikan variasi tegangan tergantung dari nilai output yang diberikan. Sekilas
tentang pembahasan PWM akan dibahas berikut ini

6.21.1 PWM (Pulse width Modulation)


a) Period 2mS
Pulse width 1mS

5v
1mS

0v

1 2 3 4 5 6 Time (sec)

Jika pulsa sebagaimana yang ditunjukkan pada gambar a diberikan ke motor DC,
maka kecepatan motor DC 50% dari kecepatan maksimum, dikatakan bahwa pulsa PWM
yang ditunjukkan diatas memiliki duty-cycle 50%, artinya lebar pulsa hight dan low-nya
sama.
b)
Period 2mS
5v Pulse width 15mS
15mS

0v

1 2 3 4 5 6 Time (sec)

276
Sedangkan jika motor DC diberikan pulsa dengan duty cycle 75%, sebagaimana
yang ditunjukkan pada gambar b maka kecepatan putar motor DC juga 75%. Dari kecepatan
maksimumnya.

c) Period 2mS

5v pulse width 0,5mS

0v

1 2 3 4 5 6 Time (sec)

Pewaktu / pencacah AVR memiliki fasilitas mode kerja PWM, frekuensi-nya sama
tetapi duty-cycle-nya berbeda dan bisa diatur perhatikan contoh-contoh pada gambar a dan b
semuanya memiliki periode 2 milidetik tetapi dengan duty cycle-nya yang berbeda-beda
masing-masing 50%, 75% dan 25%.. ATMega16 memiliki luaran PWM yang tersambung ke
Timer1 melalui :
- OC1A atau PORTD.4 dan
- OC1B atau PORTD.5
Masing-masing luaran PWM tersebut memiliki pengaturan yang terpisah (masing-
masing duty cycle-nya bisa berbeda) walaupun akan bekerja dengan frekuensi yang sama,
berikut adalah tiga contoh mode PWM yaitu mode 8, 9 dan 10-bit:

- Dalam mode 8-bit, pencacah akan mencacah dari 0 ke 255 kemudian kembali turun lagi ke 0;
- Dalam mode 9-bit, pencacah akan mencacah dari 0 ke 511 kemudian kembali turun lagi ke 0;
- Dalam mode 10-bit, pencacah akan mencacah dari 0 ke 255 kemudian kembali turun lagi ke 0;

Ambil contoh ilustrasi mode 8-bit yang ditunjukkan pada Gambar 6.21a, kita
menentukan sebuah titik antara 0 sampai dengan 255 yang nantinya digunakan untuk merubah
luaran dari HIGH menjadi LOW, jika nilainya, misalnya, kita berikan 100, maka luaran
OC1Ayang melalui PORTD.5 akan berubah dari HIGH (logika 1) menjadi low (logika 0)
sebagaimana ditunjukkan pada Gambar 6.21b

277
255 255 255
8-bit mode

0 0 0 0

Gambar 6.21a

255 255 255

100

5v 0v 5v 5v

Gambar 6.21b

Perintah konfigurasi Bascom AVR untuk mengatur OC1A dan OC1B adalah

Config Timer1 = Pwm, Pwm = 8, Compare A Pwm = Clear Up,


Compare B Pwm = Clear Up, Prescale = 1024
Compare1a = 100
Compare1b = 10

6.21.2 Fungsi dan Tujuan


Fungsi dibuatnya alat ini adalah untuk membuat suatu alat yang bisa
mengendalikan kecepatan suatu motor DC sehingga dapat diaplikasikan untuk keperluan
yang lainnya. Tujuan dibuatnya alat ini agar mengetahui prinsip dan kinerja dari PWM (pulse
width modulation) pada suatu rangkaian elektronika

278
6.21.3 Prinsip Kerja Alat
Prinsip kerja alat ini yaitu mikrokontroler mengendalikan kecepatan putaran
motor DC dengan menggunakan 2 buah tombol push button, yaitu tombol untuk menaikkan
kecepatan dan menurunkan kecepatan motor DC.
Mikrokontroler mengendalikan kecepatan motor DC menggunakan yang terdapat
pada portD.4 dan portD.5 karena kedua port itu yang bisa mengeluarkan pulsa PWM dari
mikrokontroler. Untuk alat ini mengendalikan motor DC melalui portD.5 berikut bagan
penjelasannya.

Push Minimum MOTOR DC


Sistem PWM Pulse
Button

6.21.4 Rangkaian Hardware


Rangkaian hardware untuk membuat alat ini tidaklah banyak hanya minimum
system ATMega16, tombol push button dan rangkaian pendukung motor DC.
a. Rangkaian Pendukung Motor DC
Rangkaian pendukung motor DC sebenarnya hanyalah menggunakan resistor dan
transistor, dimana kegunaan transistor disini untuk melakukan supply tegangan & arus ke
motor DC, dan resistor diperuntukkan untuk mencegah arus langsung ke transistor dan motor
DC, motor DC yang digunakan pada pembahasan kali ini menggunakan motor DC 12 volt.
berikut adalah skematik rangkaiannya.

PortD.5

Gambar 6.21c Skematik Rangkaian Pendukung motor DC


Bahn-Bahan :
a. Transistor 2N3055 x 1 buah

279
b. Resistor 330 x 1 buah
c. Motor DC 12 v x 1 buah

c. Rangkaian Tombol Push Button


Tombol push button disini adalah untuk mensetting kecepatan yang diinginkan
dengan tiap penekanan pada tombol ini akan merubah nilai dari PWM pulse, untuk tombol
push button pada portB.0 digunakan untuk counter up atau memindahkan posisi program dari
“putar 1” ke “putar 2” dan seterusnya, yang mana tiap variabel putar memiliki nilai PWM
masing-masing.
Begitupula dengan push button yang terdapat pada portB.1, yang mana portB.0
ini digunakan untuk push button counter down, jadi pada saat kondisi normal berada pada
“putar 5” jika counter down ini ditekan maka akan turu ke nilai dari variabel “putar 4” begitu
seterusnya.

Gambar 6.21d Skematik Rangkaian Push Button

d. Minimum System ATMega16

Gambar 6.21e Skematik Rangkaian Minimum Sistem ATMega16

280
6.21.5 Program Bascom-AVR

'--------------------------
'Pengatur Kecepatan Motor DC
'--------------------------
$regfile = "m16def.dat"
$crystal = 12000000
'--------------------------SET_PENGATURAN PUTARAN
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale
= 8
'--------------------------SET_TOMBOL
Pwm1a = 200
'-----------
Ddrb.0 = 0
Portb.0 = 1
Ddrb.1 = 0
Portb.1 = 1
'--------------------------
Dim Putar As Integer
'========================================================
' """"MULAI""""
'========================================================
Putar = 1
Do
'----------------------------
If Pinb.0 = 0 Then
Waitms 200
Putar = Putar + 1
End If

If Pinb.1 = 0 Then
Waitms 200
Putar = Putar - 1
End If

If Putar > 7 Then


Putar = 1
End If

If Putar < 1 Then


Putar = 7
End If
'---------------------------
If Putar = 7 Then
Pwm1a = 5
End If

If Putar = 6 Then
Pwm1a = 20
End If

If Putar = 5 Then
Pwm1a = 35
End If

281
If Putar = 4 Then
Pwm1a = 50
End If

If Putar = 3 Then
Pwm1a = 70
End If

If Putar = 2 Then
Pwm1a = 90
End If

If Putar = 1 Then
Pwm1a = 110
End If
Waitms 300
Loop
'--------------------------- end

6.21.6 Cara Penggunaan Alat


Cara penggunaan alat ini hanya perlu mengaktifkannya dengan catu daya,
kemudian hubungkan rangkaian motor DC dan rangkaian push button ke minimum system,
setelah semua dihubungkan cobalah dengan menekan push button up dan down, maka
kecepatan putaran motor DC akan berubah tergantung dari besar pulsa PWM yang
dimasukkan.

282
6.22 Membuat Termometer Digital dengan LM35 dan Data Logger / SD Card

Pada pembahasan kali ini akan dibahas mengenai bagaimana cara pembuatan dari
alat pengukur suhu yang menggunakan sensor LM35 menggunakan mikrokontroller
ATMega32 dengan tambahan yaitu adanya system penyimpanan data logger yang berupa SD
Card, jadi data yang diperoleh oleh sensor akan disimpan kedalam SD Card dalam bentuk
file.txt

Gambar 6.22a Tampilan Alat Monitoring Suhu dan Data Logger

Lalu bagaimana cara melihat text yang tersimpan di SD Card?, Caranya yaitu
dengan memasukkan SD Card tersebut ke komputer PC atau Laptop sehingga akan Nampak
file.txt yang tersimpan.

6.22.1 Fungsi dan Tujuan


Fungsi dibuatnya alat ini adalah untuk mengetahui kinerja dari sensor LM35
sebagai sensor suhu dan cara mikrokontroller menyimpan data ke SD Card. Tujuannya untuk
mengetahui tingkat suhu disuatu tempat atau ruangan secara teratur dan terus menerus.

6.22.2 Prinsip Kerja Alat


Prinsip kerja alat ini yaitu sensor suhu LM35 sebagai input data utama dari
keadaan suhu yang terdeteksi, karena sensor LM35 termasuk dalam karakteristik sensor yang
mengeluarkan tegangan yang kecil paling besar sekitar 0,5 volt tiap kenaikannya, kondisi ini
akan sulit dibaca oleh mikrokontroler ATMega32 karena kecil sekali tegangan keluaran dari
LM35, maka dari itu dibuatlah rangkaian penguat tegangan yang menggunakan IC LM358

283
sebagai pengkondisi sinyal, dari pengkondisi sinyal dibaca oleh mikrokontroler pada bagian
port ADC.
Terdapat satu buah tombol Push Button yang mana terletak pada portB.0 pada
mikrokontroller, tombol ini berfungsi untuk melakukan penyimpanan data yang ada pada
mikrokontroller, sehingga data yang dibaca oleh mikrokontroller dapat disimpan ke SD Card
melalui tombol ini. Untuk bagannya seperti berikut ini

LM35 Pengkondisi Minimum


sinyal
Tombol SD Card
System Push Button Module

ADC Port

LCD SD Card
Display

Mikrokontroler hanya bertugas untuk menmpilkan data yang ditangkap oleh sensor
kemudian jika tombol push button ditekan maka data yang ada dalam mikrokontroller yang
berupa data ADC disimpan ke dalam SD Card

6.22.3 Rangkaian Hardware


Rangkaian penyusun dari alat ini tidak banyak, hanya memerlukan beberapa
rangkaian penyusun yaitu rangkaian sensor LM35, rangkaian pengkondisi sinyal, dan
rangkaian minimum system, untuk komponen hardware yang diperlukan yaitu SD Card
Module dan SD card berkapasitas 128 MB

a. Sensor LM35
Sensor LM35 hanya menggunakan vcc, gnd dan data, seperti gambar 6.22b yang
mana hanya perlu disambungkan port data output ke input data rangkaian pengkondisi sinyal.

284
GND

Data

VCC

Gambar 6.22b Bentuk dan konfigurasi LM35

b. Rangkaian Pengkondisi Sinyal


Rangkaian pengkondisi sinyal digunakan untuk memperbesar output tegangan
dari sensor yang memiliki tegangan output yang kecil, sehingga perlu diperbesar agar
mikrokontroler dapat dengan jelas membaca data tersebut.

Ke output LM35

Ke ADC port

GND

Gambar 6.22c Rangkaian Pengkondisi Sinyal

Bahan-Bahan :
a. IC LM358 x 1 buah
b. Resistor 4,85k x 1 buah
c. Resistor 1,21 M x 1 buah
d. Resistor 100k x 1 buah
e. Variabel Resistor 100k x 1 buah
f. Pinheader tunggal

Pengkondisi sinyal terdapat dua buah input yaitu input + dan - , yang digunakan
untuk input dari sensor LM35 adalah input + dan input – dihubungkan dengan GND. pada
output tegangan dari pengkondisi sinyal masuk ke ADC port di mikrokontroler.

285
c. Rangkaian Minimum System ATMega32
Rangkaian minimum system yang digunakan untuk alat ini adalah rangkaian
minimum system ATMega32 yang hanya memerlukan beberapa port yaitu portC untuk LCD,
portA untuk input dari sensor, dan pin RX, TX untuk komunikasi serial. Berikut gambar
skematiknya

Ke Pengkondisi Sinyal

downloader

lcd
ATMega32

Gambar 6.22d Skematik Minimum System ATMega32

d. Push Button
Push button yang digunakan untuk menyimpan data ke SD card menggunakan
push button biasa yang mana push button ini terhubung ke portB.0 dan GND, untuk tampilan
bentuk dan skemanya bisa dilihat pada gambar 6.22e

286
PORTB.0 GND

Gambar 6.22e Tampilan Push button dan konfigurasinya

e. SD Card Module

Gambar 6.22f Tampilan dari SD Card Module

SD Card module disini adalah sebagai media untuk menghubungkan antara


mikrokontroller dengan SD card, yang mana agar data dapat tersimpan dengan baik ke SD
card yang dimasukkan ke dalam SD Card module, untuk konfugurasi dari SD Card Module
ke mikrokontroller dapat dilihat pada bagan berikut

SD Card Module
(MISO) Ke PortB.6 MISO
(SCK) Ke PortB.7 SCK
(SS) Ke PortB.4 SS
(MOSI) Ke PortB.5 MOSI
GND GND
VCC 5v

287
e. SD Card 128 MB

SD Card yang dipakai pada pembahasan kali ini yaitu SD card dengan kapasitas
atau volume memori penyimpanannya sebesar 128 MB, untuk cara menghubungkannya ke
SD Card Module hanya perlu memasukkan SD Card ke dalam tempat yang disediakan pada
SD Card Module yang lebar dan panjangnya sesuai, untuk tampilan SD Card 128 MB seperti
pada gambar 6.22g

Gambar 6.22g Tampilan SD Card

6.22.4 Program Bascom AVR

'===============================================================
'Programmer: Yanuar Mukhammad
'E-mail : Yanuarm@hotmail.com
‘Nama File Utama : sd card.bas
'===============================================================
$regfile = "m32def.dat"
$crystal = 12000000
'==========================
Config Lcdpin = Pin , E = Portc.1 , Rs = Portc.0 ,
Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4
, Db7 = Portc.5
Config Lcd = 16 * 2
Config Adc = Single , Prescaler = Auto , Reference = Avcc

Config Pinb.0 = Input


Tombol1 Alias Pinb.0

Set Portb.0
Set Portb.1

'======VARIABEL MMC==================
Dim A As Byte
Dim L As String * 10
Dim Ff As Byte
Dim S As Long
Dim Diskf As Long
Dim Disks As Long

288
Dim Nama As String * 20

$include "Config_AVR-DOS32.BAS"
$include "Config_MMC32.bas"

Ff = Drivereset()
Ff = Driveinit()

$external Waitms

'--------------------------
Dim Suhu_ref As Word
Dim Suhu As Word
'--------------------------
Deflcdchar 0 , 12 , 18 , 18 , 12 , 32 , 32 , 32 , 32

Start Adc

Perintah:

Cls
Cursor Off
'--------------------------

Do
Suhu_ref = Getadc(7) 'ambil data ADC portA.7
Suhu = Suhu_ref * 5 'kalibrasi dari LM35
Suhu = Suhu / 10
Suhu = Suhu - 225
'jika kurang tepat disesuaikan dengan termometer digital
'yang dijual dipasaran

Locate 1 , 1
Lcd "**THERMOMETER***"
Locate 2 , 1
Lcd "Suhu="
Locate 2 , 6
Lcd " "
Locate 2 , 6
Lcd Suhu
Locate 2 , 9
Lcd Chr(0)
Locate 2 , 10
Lcd "C"
Locate 2 , 11
Lcd " "

If Tombol1 = 0 Then Goto Utama


Waitms 500

Loop

289
Utama:
Cls
Waitms 200
Upperline
Lcd " PLEASE WAIT !!"
Wait 1
Cls
Do
If Gbdriveerror <> 0 Then 'CEK MEMORY CARD ERROR
Cls
Locate 1 , 1
Lcd "Error Config"
Locate 2 , 1
Lcd "CEK MEMORY"
Wait 2

End If

A = Initfilesystem(1) 'init file system


If A <> 0 Then
Cls
Locate 1 , 1
Lcd "Error MEMORY"
Locate 2 , 1
Lcd "CEK MEMORY CARD"
Wait 2
Cls
Goto Perintah

End If

If A = 0 Then
Cls
Locate 1 , 1
Lcd "MEMORY OK"
Wait 1
End If

Diskf = Diskfree()
Select Case Diskf 'CEK FREESPACE
S = Diskf
S = Str(s)

Case Is > 3000 : Locate 2 , 1


Lcd " Free > 3MB"
Lcd S

Case Is > 1000 : Locate 2 , 1


Lcd " Free > 1MB"
Lcd S

Case Else : Locate 2 , 1


Lcd "!! FREE < 1MB !!"

290
Wait 1
Locate 2 , 1
Lcd "GANTI memoryCARD"

End Select

Wait 3

Ff = Freefile()

L = "TEST"
Nama = L + ".txt"
Open Nama For Append As #ff

Print #ff , " RESULT "


Print #ff , "#################################"
Print #ff , " Data Suhu LM35 "
Print #ff , "#################################"
Print #ff , "Suhu: " ; Suhu ; " Celcius "
Print #ff ,
Print #ff ,

Close #ff 'tutup file

Cls
Locate 1 , 1
Lcd "FILE CREATED"
Wait 2
Goto Perintah
Cls
Loop
Return

Catatan:
Saat Program di-compile pada file bascom, terlebih dahulu masukkan file
CONFIG_AVR-DOS32.bas dan Config_MMC32.bas pada satu folder dengan file utama,
seperti tampilan gambar berikut.

Gambar 6.22h Tampilan Folder Pada File Utama


291
Maksud file utama yaitu file yang terdapat program diatas, yang berisikan
program LM35 dan SD card, yang jadi masalah disini yaitu bagaimana cara mendapatkan file
CONFIG_AVR-DOS32.bas dan Config_MMC32.bas ?, tidak usah khawatir tinggal
download di link berikut ini

CONFIG_AVR-DOS32.bas =
http://www.4shared.com/file/sigVUaYx/CONFIG_AVR-DOS32.html?
Config_MMC32.bas =
http://www.4shared.com/file/poGmlBj_/Config_MMC32.html?

6.22.5 Cara Penggunaan Alat

Cara penggunaan alat ini hanya berikan sumber daya 12v pada rangkaian
regulator sehingga alat akan menyala dan berfungsi, setelah berfungsi akan terlihat tampilan
dari data suhu yang diambil oleh port ADC mikrokontroller dari sensor LM35, untuk
menyimpan data tersebut, tekanlah tombol push button sekali, maka akan tampak tulisan-
tulisan pada LCD yang akan mengarah ke penyimpanan file, jika berhasil maka tidak ada
tampilan atau kata-kata error pada saat penyimpanan dan otomatis tulisan pada lcd akan
kembali pada deteksi suhu.
Untuk kalibrasi LM35 disesuaikan dengan alat yang sebenarnya, yaitu
termometer digital yang dijual dipasaran, untuk membandingkan kevalid-an data yang
diperoleh.

292
6.23 Membuat SMS Gateway dengan Modem Wavecom dan Keypad Matrik

Dibagian ini akan dibahas secara mendetail mengenai pembuatan SMS Gateway
dengan menggunakan Modem Wavecom dan keypad Matrik, yang mana alat ini sebenarnya
bertujuan untuk membuat suatu pengaman rumah dengan disediakan tombol keypad matrik,
sehingga pada saat orang penghuni rumah ingin sms kepada orang lain misal seorang istri yang
dalam keadaan bahaya dirumah ingin menghubungi suami, ia tinggal tekan tombol angka 2 pada
keypad matrik sehingga pesan darurat akan segera diterima oleh sang suami, selain tombol angka
2 tidak akan mengirimkan sms kepada sang suami.

Gambar 6.23a Bentuk Alat yang menggunakan Keypad Matrik

Gambar 6.23a nampaknya menggunakan mikrokontroller arduino bukanlah


mikrokontroller AVR ?, tapi itu semua tidak jadi masalah, pada gambar 6.23a tersebut
mikrokontroller arduino yang telah diubah menjadi mikrokontroller ATMega8 AVR sehingga
file Bascom dapat masuk dan mengeksekusi perintah mikrokontroller, yang perlu diperhatikan di
bab ini tidaklah menggunakan ATMega8 namun menggunakan ATMega16 yang memiliki port
I/O lebih banyak dari ATMega8, sehingga digambar 6.23a tersebut hanyalah ilustrasi saat
mikrokontroller terhubung ke keypad matrik 3 x 4.

293
6.23.1 Fungsi dan Tujuan

Fungsi dibuatnya alat ini adalah untuk pengaman rumah, jadi semisal ada keadaan
darurat dirumah dapat langsung menekan tombol angka 2 yang mana akan mengirimkan sms
tanda bahaya ke seseorang. Tujuan dibuatnya alat ini yaitu untuk mengetahui bagaimana kinerja
dari keypad matrik dan modem wavecom saat keduanya terhubung ke mikrokontroller.

6.23.2 Prinsip Kerja Alat

Prinsip kerja alat ini yaitu dengan menggunakan keypad matrik akan memerintahkan
modem wavecom untuk mengirimkan sms melalui mikrokontroller, terdapat 12 tombol pada
keypad matrik 3 x 4 yaitu tombol angka 0 sampai 9 ditambah #, 0 dan * sehingga menjadi 12
tombol, namun semua tombol tidaklah difungsikan semua, hanya satu tombol yang berfungsi
yaitu tombol angka 2, yang mana tombol angka 2 ini posisinya sangat mudah dijangkau, karena
berada di tengah.

Modem wavecom dalam hal ini berfungsi sebagai media untuk melaksanakan
perintah yang dikirimkan oleh mikrokontroller, jadi mikrokontroller haruslah terkoneksi dengan
modem secara baik dan tidaklah mengalami gangguan, untuk menghubungkan antara
mikrokontroller dengan modem wavecom haruslah memakai media penghubung keduanya yaitu
rangkaian RS232 dengan output serial db 9. Bagan dari system ini seperti berikut ini.

Keypad Minimum System Rangkaian Modem Wavecom


Matrik 3 x 4 ATMega16 Serial RS232 fastrack port serial

6.23.3 Rangkaian Hardware

Rangkaian Hardware untuk membuat alat ini tidaklah rumit dan sulit, hanya
membutuhkan rangkaian minimum system, rangkaian RS232 serial db 9 dan hardware seperti
modem wavecom fastrack port serial dan keypad matrik 3 x 4.

294
a. Keypad Matrik 3 x 4
Keypad matrik yang digunakan disini yaitu keypad matrik berjenis 3 x 4, yang
memiliki 12 buah tombol yang masing-masing memiliki output nilai yang berbeda-beda, untuk
skematik dari keypad matrik 3 x 4, konfigurasi ke mikrokontroller dan bentuk fisiknya seperti
pada Gambar 6.23b berikut

Terhubung Ke PortA.0 – PortA.7

Terhubung Ke PortA.0 –
PortA.7

Gambar 6.23b Tampilan Keypad Matrik 3 x 4 dan skematiknya

295
c. Rangkaian Minimum System ATMega16

Ke Keypad Matrik

Downloader

LCD

Regulator Rx,Tx

Ke Rangkaian Serial RS232


Gambar 6.23c Skematik Minimum System ATMega16
Bahan-Bahan :

1. Crystal 12Mhz x 1 buah


2. ATMega16 + Socket 40 pin x 1 buah
3. Capasitor 22p x 2 buah
4. LCD Display x 1 buah
5. Resistor 4K7 x 1buah
6. Capasitor 104p x 4 buah
7. IC7805T x 1 buah
8. Capasitor polar 100uF x 1 buah
9. Capasitor polar 10uF x 1 buah
10. Capasitor 103p x 1 buah
11. Pinheader Male Secukupnya
12. Pinheader Female Secukupnya
13. Variable Resistor 10Kohm x 1 buah

296
b. Rangkaian RS232 Serial I/O DB9
Rangkaian RS232 adalah rangkaian yang digunakan untuk menghubungkan antara
mikrokontroller dengan modem wavecom, karena output dari serial mikrokontroller memerlukan
konversi dan penyesuaian tegangan agar data output mikrokontroller dapat diterima dengan baik
oleh modem wavecom. Skematik RS232 adalah seperti Gambar 6.23d

Ke Port RX dan TX
ATMega16

Ke I/O Serial
Modem Wavecom

Gambar 6.23d Skematik Rangkaian Serial RS232

Bahan-bahan:
a. Capasitor Polar 1uF / 16v x 4 buah
b. DB9 male / female x 1 buah
c. IC MAX232 x 1 buah

297
c. Modem Wavecom Fastrack serial I/O

Gambar 6.23e Bentuk Modem Wavecom Fastrack Serial I/O

Media SMS Gateway yang digunakan pada penjelasan kali ini adalah SMS Gateway
menggunakan modem wavecom fastrack dengan I/O berbentuk serial, untuk penggunaan dari
wavecom fastrack ini sangatlah mudah hanya perlu menghubungkan port serial modem
wavecom ke port serial RS232 mikrokontroller, karena bawaan dari pabrik modem memiliki
bentuk output serial berupa DB 16, maka haruslah menggunakan kabel converter bawaan dari
pabrik juga yaitu kabel converter VGA serial output DB 16 menjadi serial output DB 9, sehingga
dari serial DB 9 tersebut dapat dikoneksikan ke RS232 yang juga menggunakan DB 9.
Modem wavecom menggunakan perintah AT-Command dalam proses eksekusi data,
sehingga mikrokontroller harus menggunakan perintah AT-Command untuk dapat memberikan
perintah kepada modem wavecom agar mengirimkan sms, membaca sms, melihat sms yang
masuk, dll. berikut ini beberapa program AT-Command yang biasa digunakan

- AT+CMGS="085643619527"
untuk mengirim sms ke nomer handphone yang tertera
- AT+CMGL="REC UNREAD"
untuk melihat SMS yang belum dibaca
- AT+CMGL="ALL"
untuk menampilkan semua SMS yang tersimpan
- AT+CMGD=1
untuk menghapus SMS pada index 1

298
6.23.4 Cara Menghubungkan Rangkaian RS232 ke Modem Wavecom

Perlu diperhatikan saat menghubungkan rangkaian RS232 serial I/O DB 9, ke modem


wavecom yang juga memiliki serial I/O berupa DB 9, telah terbukti banyak sekali yang
mengalami koneksi error saat RS232 mencoba mengirimkan pertintah AT-Command ke modem
wavecom, ternyata modem wavecom tidak mau menerima perintah AT-Command tersebut
dikarenakan hal yang sepele., yaitu mengubah output RX dan TX pada rangkaian RS232, untuk
lebih jelaskan perhatikan gambar 6.23f berikut

Rangkaian RS232 GND GND Modem Wavecom


RX RX

TX TX

Ke GND output Modem Wavecom

Ke TX output Modem Wavecom


Ke RX output Modem Wavecom

Gambar 6.23f Konfigurasi RS232 ke Modem Wavecom

Terlihat dengan jelas bahwa output RX dari RS232 harus di-croos ke bagian port TX
dari output modem wavecom, begitu pula dengan output TX dari RS232 yang di croos ke port
output RX dari modem wavecom, untuk bagian output GND dari RS232 tetap ke bagian port
output GND pada modem wavecom. Itulah hal kecil / sepele yang harus sangat diperhatikan
dikarenakan hal tersebut sering sekali membuat mikrokontroller tidak bisa berkomunikasi
dengan modem wavecom.

299
6.23.5 Program Bascom AVR

$regfile = "m16def.dat"
$crystal = 12000000

Config Lcdpin = Pin , Db4 = Portc.5 , Db5 = Portc.4 , Db6 = Portc.3 ,


Db7 = Portc.2 , E = Portc.6 , Rs = Portc.7
Config Lcdbus = 4
Config Lcd = 16 * 2

Config Kbd = PORTA , Debounce = 20 [ , Delay = 10]

Dim Kbd_data As Byte


Dim Hp As String * 30

Hp = "085643619527" ‘no HP yang dituju / Target

Utama:
Cls
Cursor Off
Do
Kbd_data = Getkbd()

If Kbd_data = 16 Then
Upperline
Lcd "masukkan data"
Lowerline
Lcd ""
Elseif Kbd_data = 14 Then
Lowerline
Lcd "password benar"
Wait 1
Goto Utama
Elseif Kbd_data <> 16 Or Kbd_data <> 14 Then
Lowerline
Lcd "password salah"
Wait 1
Goto Kirim
End If
Loop

Kirim:
Print "AT+CMGS=" ; Hp
Wait 1
Print "Rumah dalam keadaan bahaya!!!"
Print Chr(26)
Wait 1
Goto Utama

300
6.23.6 Cara Penggunaan Alat

Penggunaan alat ini sangat mudah, yaitu hanya perlu menekan tombol angka 2 pada
keypad matrik 3 x 4, sehingga akan bertuliskan “Password Benar” pada LCD mikrokontroller
yang artinya sms sedang dikirimkan ke nomer tujuan, untuk penekanan selain tombol angka 2,
perintah sms tidak akan diaktifkan.
Sebelum penggunaan alat secara keseluruhan, baiknya mengecek terlebih dahulu
modem wavecom ke computer, berikut adalah langkah untuk melakukan pengecekan modem
wavecom ke computer dengan menggunakan software “Hyperterminal”

1. Buka Hyperterminal lalu setting seperti berikut

2. Ketikkan perintah AT lalu tekan <enter> kemudia ketikkan ATE1 lalu tekan <enter> lagi

301
3. Setelah itu Ketik “AT+CMGS=”nomer-tujuan”, lalu tekan <enter>, kemudian isikan teks /
pesan yang akan dikirimkan ke nomer tujuan, jika sudah maka tekan <CTRL>+Z

4. Selanjutnya mengecheck modem saat menerima sms, jika modem menerima sms maka akan
ada tampilan berikut pada layar Hyperterminal

5. Untuk membaca sms yang masuk ketikkan AT+CMGR=<index sms>

302
6.24 Membuat Kalkulator Digital Dua Digit

Pada pembahasan kali ini akan dibahas mengenai pembuatan kalkulator digital
dengan range angka dua digit. Untuk pembuatan kalkulator digital ini tidaklah memerlukan
perangkat hardware yang bermacam-macam, tapi hanya perlu menyiapkan dua komponen utama
yaitu keypad matrik dan minimum system ATMega16 ditambah LCD. Gambar 6.24a adalah
gambar dari alat yang akan dibuat

Gambar 6.24a Bentuk dari Kalkulator Digital

Kalkulator digital ini kinerjanya sama seperti kalkulator untuk dagang yaitu
digunakan untuk melakukan perhitungan yang meliputi tambah (+), kurang (-), bagi ( / ) dan kali
( X ), input yang digunakan untuk memasukkan angka berasal dari keypad matrik 4x4. Untuk
perbedaan kalkulator ini dengan kalkulator dagang yaitu panjang digit yang digunakan, untuk
alat ini hanya menggunakan maksimal dua digit angka misalnya 15, 99, 98, 25 dan lainnya,
namun jika kalkulator dagang bisa mencapai 8 digit angka.

303
6.24.1 Fungsi dan Tujuan
Fungsi dibuatnya alat ini adalah untuk membantu untuk proses perhitungan
matematika, karena alat ini difungsikan khusus untuk menghitung penjumlahan, perkalian,
pembagian dan pengurangan. Untuk tujuannya yaitu untuk mengetahui bagaimana cara membuat
suatu kalkulator dengan menggunakan mikrokontroller dan bahasa pemprograman Bascom
AVR.

6.24.2 Prinsip Kerja Alat


Alat ini dibuat menyerupai kalkulator dagang, yang mana fungsinya yaitu untuk
melakukan perhitungan matematika seperti penjumlahan, pengurangan, perkalian, dan
pembagian, prinsip kerja alat ini sangat sederhana yaitu data yang terdapat pada keypad matrik
4x4 dihubungkan ke mikrokontroller pada port D.0 sampai port D.7, kemudia mikrokontroller
akan membaca tiap karakter yang ditekan oleh user pada keypad matrik, sehingga membutuhkan
converter agar data dari keypad matrik bisa ditampilkan ke layar lcd, jika tanpa converter maka
akan tampak angka Getkbd() yang asli, namun jika telah dikonverter akan menghasilkan angka
yang sesuai dengan keypad matrik, mikrokontroller diposisikan sebagai converter dan pengolah
data input dari keypad matrik untuk ditampilkan ke layar lcd display, berikut adalah bagannya.

Keypad Mikrokontroller Lcd display


matrik 4x4 ATMega16

6.24.3 Rangkaian Hardware


Rangkaian hardware yang digunakan untuk membuat alat ini hanyalah dua buah yaitu
minimum system ATMega16 plus LCD dan keypad matrik 4x4. Berikut adalah penjelasannya.

a. Keypad matrik 4x4


Keypad matrik yang digunakan adalah keypad matrik 4x4, biasanya keypad matrik ini
dilengkapi dengan tombol +, - , x dan /, atau jika bentuk lain ada yang mengunakan huruf A, B,
C, D, semuanya bisa digunakan hanya perlu menyesuaikan dengan tampilan yang tertera di layar

304
lcd, karena tidak semua keypad matrik dapat cocok dengan hasil yang tertera di layar lcd.
Spesifikasi yang disediakan untuk keypad matrik ini yaitu memiliki 16 buah tombol yang
bervariasi nilainya jika masuk ke mikrokontroller Untuk tampilan keypad matriknya adalah
seperti Gambar 6.24b

Ke mikrokontroller PortD.0-D.7

Gambar 6.24b Bentuk dan skematik dari keypad matrik 4x4

305
b. Minimum System ATMega16

downloader

lcd

Ke keypad matrix

Gambar 6.24c Skematik ATMega16 plus LCD

Bahan-Bahan :

1. Crystal 12Mhz x 1 buah


2. ATMega16 + Socket 40 pin x 1 buah
3. Capasitor 22p x 2 buah
4. LCD Display x 1 buah
5. Resistor 4K7 x 1buah
6. Capasitor 104p x 4 buah
7. IC7805T x 1 buah
8. Capasitor polar 100uF x 1 buah
9. Capasitor polar 10uF x 1 buah
10. Capasitor 103p x 1 buah
11. Pinheader Male Secukupnya
12. Pinheader Female Secukupnya

306
6.24.4 Program Bascom AVR

$regfile = "m16def.dat"
$crystal = 12000000
Config Kbd = Portd , Debounce = 30
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

Dim A As Byte
Dim B As Byte
Dim Key As Byte
Dim C As Byte
Dim D As Byte
Dim E As Byte
Dim F As Byte
Dim Z As Single

Cls
Cursor Off
Locate 1 , 1
Lcd "calculator "
Locate 2 , 1
Lcd "dua digit"
E = 0
B = 0
Q:
Waitms 200
A = Getkbd()
If A > 15 Then
Goto Q
Else
Key = Lookup(a , Dta)
If Key <= 9 Then
D = 0
B = 10 * B
B = B + Key
If E = 0 Then C = B
If E = 1 Then D = B
Cls
Lcd B
Elseif Key = 10 Then
Cls
F = 1
E = 1
B = 0
Elseif Key = 11 Then
Cls
E = 1
F = 2
B = 0

307
Elseif Key = 12 Then
Cls
E = 1
F = 3
B = 0
Elseif Key = 15 Then
Cls
E = 1
F = 4
B = 0
Elseif Key = 13 Then
Cls
E = 0
B = 0
Z = 0
Elseif Key = 14 Then
If E = 1 Then
Select Case F
Case 1 :
B = C / D
Z = C / D
Locate 1 , 3
Lcd "/"
Case 2:
B = C * D
Locate 1 , 3
Lcd "x"
Case 3:
B = C - D
Locate 1 , 3
Lcd "-"
Case 4:
B = C + D
Locate 1 , 3
Lcd "+"
End Select

If Z <> 0 Then
Locate 1 , 1
Lcd C
Locate 1 , 4
Lcd D
Locate 1 , 6
Lcd "="
Locate 2 , 1
Lcd Z
Else
Locate 1 , 1
Lcd C
Locate 1 , 4
Lcd D
Locate 1 , 6

308
Lcd "="
Locate 2 , 1
Lcd B
End If

End If
End If
End If
Goto Q
End
Dta:
Data 7 , 8 , 9 , 10 , 4 , 5 , 6 , 11 , 1 , 2 , 3 , 12 , 13 , 0 , 14 ,
15

6.24.5 Cara penggunaan Alat

Cara penggunaan alat ini cukuplah mudah, yaitu hanya perlu memasukkan VCC sebesar
12 volt ke minimum system sehngga akan menyala layar lcd display disertai dengan tulisan
“kalkulator digital dua digit” , masukkanlah input angka yang pertama kemudian tekan tombol
salah satu dari + , - , x, atau / , kemudian masukkan input angka yang kedua, setelah itu tekan
tombol “=” maka akan terlihat hasil dari perhitungannya.

309
6.25 Membuat Lampu Tidur

Pembuatan lampu tidur di bab ini termasuk kategori pembuatan alat yang sederhana,
artinya alat yang akan dibuat tidaklah rumit dan sulit seperti pada bab-bab lain, karena memang
disengaja untuk alat pada bab ini di ambil alat yang biasa digunakan dikehidupan sehari-hari dan
biasa kita jumpai yaitu lampu tidur, bagi sebagian orang membeli lampu tidur adalah hal yang
dirasa perlu, karena guna untuk memberikan pencahayaan pada saat lampu utama atau lampu
ruangan dipadamkan, alangkah baiknya jika lampu tidur yang akan kita pakai dan digunakan
berasal dari tangan kita sendiri jadi kita membuat lampu tidur itu kemudian kita rasakan hasil
dari pembuatannya, itu lebih berasa manfaatnya.
Lampu tidur yang akan dibuat menggunakan mikrokontroller ATMega16 yang mana
jika mengunakan ATMega8 juga bisa, hanya perlu penyesuaian port dan program pada program
Bascomnya. System kerja alat ini yaitu terdapat satu tombol dimana tombol ini berlaku sebagai
switch untuk melakukan penggantian nyala lampu, lampu yang akan digunakan yaitu led 5 mm
yang berwarna putih 2 buah, hijau 2 buah, biru 2 buah dan merah 2 buah sehingga ada 8 buah
led yang tiap-tiap warna memiliki 2 buah led, untuk gambaran lebih jelasnya lihat gambar 6.25a

Led merah biru hijau putih

Box hitam

Push Button

Gambar 6.25a Gambar illustrasi Lampu tidur

Jadi terdapat satu buah button yang akan digunakan untuk mengganti nyala lampu led,
misalnya led merah menyala, kemudian tombol push button ditekan maka yang menyala berganti led biru,
dan seterusnya, sehingga ada empat variasi led yang bisa ditampilkan yaitu merah, biru, hijau, dan putih.

310
6.25.1 Fungsi dan Tujuan
Fungsi dibuatnya alat ini adalah untuk membuat alat penerang ruangan pada saat
tidur, yang mana ketika orang tidur sebaiknya lampu ruangan dipadamkan dan hanya
menyalakan lampu yang intensitasnya redup, agar membantu merelaksasikan tubuh pada saat
tidur. Tujuannya dibuatnya alat ini yaitu untuk mengetahui system perulangan pada program
Bascom avr, yang mana pada alat ini system perulangannya direalisasikan dengan menggunakan
tombol push button dan empat buah output yang berbeda.

6.25.2 Prinsip Kerja Alat


Prinsip kerja alat ini yaitu menggunakan satu buah push button yang akan
mengendalikan nyala empat buah led yaitu led merah, led biru, led hijau dan led putih, jika led
merah menyala maka led biru, hijau dan putih akan padam, begitu pula jika lampu biru, hijau dan
putih yang menyala. Tujuan dibuatnya empat buah output led disini agar suasana ruangan bisa
berganti dari suasana berwarna merah, bisa berganti ke warna biru, hijau dan putih, sehingga
pemilik ruangan tidak akan jenuh dengan kondisi ruangannya. Berikut adalah bagan dari
sistemnya.

PUSH Mikrokontroller Led merah, biru,


BUTTON ATMega16 hijau dan putih

Posisi mikrokontroler ATMega16 sebagai otak atau pengendali dari nyala delapan
buah led dengan berbagai warna, sedangkan push button berposisi sebagai input, atau pemberi
masukan perintah kepada mikrokontroller agar led bisa menyala bergantian.

6.25.3 Rangkaian Hardware


Rangkaian hardware yang perlu dibuat hanyalah rangkaian delapan buah led, push
button dan minimum system

311
A . Minimum System ATMega16

Push Button di PortB.0

lcd

Ke rangkaian led

Gambar 6.25b Skematik Minimum System ATMega16

Bahan-Bahan :

1. Crystal 12Mhz x 1 buah


2. ATMega16 + Socket 40 pin x 1 buah
3. Capasitor 22p x 2 buah
4. LCD Display x 1 buah
5. Resistor 4K7 x 1buah
6. Capasitor 104p x 4 buah
7. IC7805T x 1 buah
8. Capasitor polar 100uF x 1 buah
9. Capasitor polar 10uF x 1 buah
10. Capasitor 103p x 1 buah
11. Pinheader Male Secukupnya
12. Pinheader Female Secukupnya

312
B. Rangkaian Led

VCC 5 volt

Ke PortD.0 – PortD.7

Gambar 6.25c Skematik Rangkaian Led


Bahan-Bahan:

1. 2 buah led merah super bright 5mm


2. 2 buah led biru super bright 5mm
3. 2 buah led hijau super bright 5mm
4. 2 buah led putih super bright 5mm
5. 8 buah resistor 330 ohm ¼ watt
6. Pinheader secukupnya

C. Push Button

Push button yang digunakan untuk menyimpan data ke SD card menggunakan push
button biasa yang mana push button ini terhubung ke portB.0 dan GND, untuk tampilan bentuk
dan skemanya bisa dilihat pada gambar 6.25d

PORTB.0 GND
Gambar 6.25d Tampilan Push button dan konfigurasinya

313
6.25.4 Program Bascom AVR
$regfile = "m16def.dat"
$crystal = 12000000
'--------------------------S
Dim Putar As Integer

Config Pinb.0 = Input


Tombol1 Alias Pinb.0

Set Portb.0

Ddrd = &B11111111
Putar = 1
Do
'----------------------------
'jika ingin move up
If Tombol1 = 0 Then
Waitms 200
Putar = Putar + 1
End If

'jika ingin move down


'If Tombol1 = 0 Then
'Waitms 200
'Putar = Putar - 1
'End If

'batas move up
If Putar > 4 Then
Putar = 1
End If

'batas move down


'If Putar < 1 Then
'Putar = 4
'End If
'---------------------------
If Putar = 4 Then
'led putih menyala
Portd = &B00111111
End If

If Putar = 3 Then
'led hijau menyala
Portd = &B11001111
End If

314
If Putar = 2 Then
'led biru menyala
Portd = &B11110011
End If

If Putar = 1 Then
'led merah menyala
Portd = &B11111100
End If
Waitms 300
Loop

6.25.5 Cara Penggunaan Alat


Cara penggunaan alat ini sangat mudah yaitu hanya perlu menekan tombol atau push
button, sehingga nyala led akan bergantian ke arah kanan (move up), untuk men-setting agar led
menyala move down atau ke kiri, maka dapat diganti programnya dengan mengganti perintah
move up dengan move down dan juga batasannya.

315
6.26 Membuat Alat Berbasis RFID dengan RDM630

Pada kesempatan kali ini akan dibahas mengenai pembuatan alat yang berbasis RFID
menggunakan RDM630, jadi alat yang akan dibuat sangatlah sederhana yaitu hanya untuk
menampilkan nilai kartu (Tag Card) pada LCD mikrokontroller, untuk mikrokontroller yang
digunakan pada alat ini yaitu ATMega16, jika menggunakan jenis ATMega yang lain tidak
masalah, hanya perlu penyesuaian pada program Bascom-AVR nya. Gambar 6.26a adalah
tampilan alat RFID berbasis RDM630 yang akan dibuat.

Gambar 6.26a Tampilan RFID berbasis modul RDM630

Alat ini hanya untuk menampilkan nilai Tag Card / kartu pada LCD sehingga perlu
ditambahkan output misalnya berupa led, buzzer dan yang lain untuk membuat alat ini dapat
berjalan dan diminati banyak orang.

6.26.1 Fungsi dan Tujuan


Fungsi dibuatnya alat ini adalah untuk mengetahui suatu nilai yang erdapat pada tag
card / kartu, dan tujuannya adalah untuk mengetahui bagaimana cara komunikasi antara dua
device yaitu modul RFID RDM630 dengan mikrokontroller.

316
6.26.2 Prinsip Kerja Alat
Prinsip kerja alat ini sangatlah sederhana, yaitu modul RFID RDM630 terdapat
antena yang mana antena ini merupakan reader atau alat pembaca tag card, sehingga tag card
harus didekatkan ke antenna ini, antenna modul ini berupa lilitan yang membentuk persegi
panjang, dari antenna tersebut data dikirimkan ke bagian penerjemah input yang telah terdapat
pada modul, dari modul RDM630 data dikirimkan ke mikrokontroller melalui port RX dan TX.
Setelah data diterima oleh mikrokontroller, data tersebut dipilah, jadi ada data yang layak tampil
dan ada yang tidak layak, untuk yang layak tampil, akan ditampilkan ke LCD namun jika tidak
layak tampil seperti karakter dan lainnya, akan dihapuskan dari LCD. Berikut adalah bagan
system kerjanya.

Modul RDM630 Minimum System LCD Display


RX dan TX
ATMega16

RX TX RX TX

6.26.3 Rangkaian Hardware

Rangkaian hardware untuk membuat alat ini hanyalah minimum system ATMega16
ditambah LCD dan modul RFID RDM630.

a. Modul RDM630
Modul RDM630 adalah modul yang digunakan untuk membaca kode dari tag card.
Modul ini tidak bisa menampilkan secara mandiri mengenai kode yang dibacanya sehingga
memerlukan device lain sebagai penampil. Terdapat 2 port yang digunakan untuk komunikasi ke
device lain yaitu port Rx dan TX. Gambar 6.26b adalah gambar dari modul RDM630 dan
konfigurasinya.

317
GND VCC Led RX TX

Reader

Gambar 6.26b Tampilan Modul RFID RDM630 dan konfigurasinya

Modul RFID RDM630 ini memliki dua buah jenis mode output yaitu output TTL
interface RS232 data format dan WEIGAND, sehingga harus teliti didalam pengaturan
konfigurasinya, untuk mode output pada alat yang akan dibuat adalan mode TTL interface data
format. Untuk setting-an kedua mode output tersebut seperti gambar 6.26c

Gambar 6.26c Setting-an untuk menentukan mode output yang digunakan

318
Port 1 dan 2 pada P2 digunakan untuk menghubungkan modul RDM630 ke reader,
untuk readernya telah disediakan pada saat pembelian modul ini yang mana reader berupa lilitan
kawat tembaga yang telah didesain khusus untuk membaca tag card. Modul ini membutuhkan
tegangan input VCC sebesar 5v untuk mengaktifkan readernya. Pada baris port P3 terdapat satu
pin yang digunakan sebagai led, maksudnya yaitu untuk sebagai indikator kalau modul telah siap
untuk membaca tag card.
Untuk menghubungakan antara modul RFID RDM630 dengan mikrokontroller yaitu
port RX dari modul RDM630 masuk ke port TX minimum system ATMega16 dan port TX dari
modul RDM630 masuk ke port RX minimum system ATMega16, seperti penjelasan Gambar
6.26d berikut.

RDM630 Minimum System ATMega16


RX TX

TX RX

Gambar 6.26d Cara Menghubungkan Modul RDM630 ke Minimum System

b. Tag Card
Tag card adalah sebuah instrument yang didalamnya berisi kode-kode tertentu yang
bisa dibaca oleh suatu alat tertentu, Tag card biasanya memiliki 2 bentuk yaitu berbentuk kartu
dan berbentuk gantungan kunci, namun pada alat ini menggunakan tag card yang bentuk kartu,
seperti Gambar 6.26e

Gambar 6.26e bentuk dari Tag card yang berupa kartu

319
Setiap tag card memiliki konfigurasi kode yang berbeda-beda, variabel kodenya yaitu
melingkupi huruf A - Z dan dicampur angka 1 – 9 sehingga kemungkinan untuk kode tersebut
ada yang sama pada satu kartu dengan kartu lainnya sedikit sekali.

c. minimum System ATMega16

downloader

LCD

Ke RDM630

Gambar 6.26f Skematik minimum System ATMega16

Bahan-Bahan :

1. Crystal 12Mhz x 1 buah


2. ATMega16 + Socket 40 pin x 1 buah
3. Capasitor 22p x 2 buah
4. LCD Display x 1 buah
5. Resistor 4K7 x 1buah
6. Capasitor 104p x 4 buah
7. IC7805T x 1 buah
8. Capasitor polar 100uF x 1 buah
9. Capasitor polar 10uF x 1 buah
10. Capasitor 103p x 1 buah

320
11. Pinheader Male Secukupnya
12. Pinheader Female Secukupnya

6.26.4 Program Bascom AVR


$regfile = "m16def.dat"
$crystal = 12000000
$baud = 9600

'Konfigurasi LCD
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

Dim Cek As String * 20


Dim Datas As String * 20
Dim Id As String * 20
Dim I As Integer

Cls
Cursor Off
Locate 1 , 1
Lcd "==RFID RDM630=="
Wait 1

Mulai:

Datas = ""
I = 0
Do
Cek = Inkey()
If Cek <> "" Then
Incr I
Datas = Datas + Cek
Id = Mid(datas , 5 , 10)
End If
Loop Until I > 13
I = 0
Cls
Cursor Off
Locate 1 , 1
Lcd "Data ID: "
Locate 2 , 1
Lcd Id
Wait 1

321
6.26.5 Cara Penggunaan Alat

Cara penggunaan alat ini yaitu memberikan catu daya atau VCC sebesar 9v ke bagian
sumber tegangan minimum system, maka LCD akan menyala dan akan tampak tulisan
“RDM630”, langkah kedua adalah menghubungkan modul RDM630 dengan minimum system
seperti yang telah dijelaskan sebelumnya, kemudian dekatkan tag card atau kartu ke reader dari
modul RDM630 yang berupa lilitan berbentuk persegi, dengan begitu akan tampak nilai atau
code dari tag card / lartu tersebut pada layar LCD.

322
6.27 Membuat Alat Kendali Led dengan Joystick PS 2

Pada bab ini akan dibahas mengenai bagaimana cara membuat alat untuk
mengendalikan led on/off menggunakan Joystick PS2, alat yang akan dibuat ini menggunakan
mikrokontroller ATMega8 yang mana difungsikan sebagai otak dan pemberi perintah ke output,
sehingga output yang berupa led pada alat ini akan berjalan sebagaimana mestinya. Untuk
tampilan dari alat tersebut seperti Gambar 6.27a

Gambar 6.27a Bentuk Alat Kendali Led Dengan Joystick PS 2

Jadi terdapat sebuah Joystick PS2 yang terhubung ke mikrokontroller, saat ditekan
tombol X atau silang pada Joystik maka akan menampilkan kata-kata pada LCD berupa “Silang”
dan led akan menyala, namun jika tombol pada Joystick tidak ditekan maka akan bertuliskan
“Diam” dan led akan mati begitu juga dengan tombol segitiga , tombol bulat dan kotak, akan
menampilkan karakter pada LCD dan led akan menyala selama tombol masih ditekan.

6.27.1 Fungsi dan Tujuan

Fungsi dibuatnya alat ini sebagai indikator atau pengecheck-an bahwa suatu Joystick
berjalan dengan baik atau dapat digunakan, karena tombol pada Joystick jika benar / tidak rusak
akan tampil pada layar LCD dan led pun menyala, namun jika Joystick tersebut rusak maka
karakter tidak akan muncul pada layar LCD saat tombol ditekan dan led akan tetap mati. Tujuan
dibuatnya alat ini yaitu untuk mengetahui bagaimana cara menghubungkan device Joystick
dengan mikrokontroller ATMega8 menggunakan program Bascom AVR.

323
6.27.2 Prinsip Kerja

Prinsip kerja alat ini yaitu Joystick sebagai pengendali masukan ke mikrokontroller
memberikan sinyal ke mikrokonroller tentang tombol yang sedang ditekan, sehingga
mikrokontroller akan mengolah sinyal tersebut menjadi digital, data yang didapat oleh
mikrokontroller akan dikeluarkan melalui LCD display dan led. Untuk lebih jelasnya perhatikan
bagan berikut.

Joystick PS 2 Mikrokontroller LCD Display


ATMega8

Led

Koneksi Joystick PS2 ke mikrokontroller menggunakan Port SPI yaitu dihubungkan


ke port MOSI, MISO, dan SCK, sehingga sinyal masukan yang diberikan oleh Joystick dapat
diterjemahkan dengan baik oleh mikrokontroller ATMega8.

6.27.3 Rangkaian Hardware

Rangkaian hardware yang dibutuhkan untuk membuat alat ini yaitu Joystick PS2,
rangkaian minimum system ATMega8 ditambah LCD dan rangkaian led.

a. Joystick PS2
Joystick PS2 yang digunakan untuk pembuatan alat ini bisa berjenis dengan kabel
artinya joystick yang menggunakan kabel sebagai penghubungnya seperti Gambar 6.27b atau
Joystick yang menggunakan wireless / tanpa kabel sebagai media penghubungnya seperti pada
Gambar 6.27c. dan perlu diperhatikan bahwa Joystick yang digunakan menggunakan port seperti
Gambar 6.27d dan tidak menggunakan port USB, jika membeli Joystick dengan port USB maka
harus menggunakan converter dari USB ke port PS2 sehingga port yang akan dihubungkan ke
mikrokontroller jelas terlihat.

324
Gambar 6.27b Joystik PS2 Dengan Kabel Gambar 6.27c Joystik PS2 Wireless

Gambar 6.27d Bentuk I/O Port PS2 dan Konfigurasinya

Nah, jadi Joystick memiliki 9 buah Port yang bisa digunakan untuk koneksi ke
mikrokontroller, namun tidak semua port digunakan, dari 9 port yang ada, yang dipakai untuk
koneksi SPI ke mikrokontroller hanya 6 buah, yaitu Command ke MOSI, Data ke MISO, Clock
ke SCK, Attention ke PortB.0 dan VCC, GND, untuk lebih jelasnya seperti pada gambar 6.27e
berikut

325
JoyStick PS2 Data 1 MISO (PortB.4) Minimum System
Command 2 MOSI (PortB.3) ATMega8
Motor Vibrate 3 -
GND 4 GND
VCC 5 VCC
Attention 6 PortB.0
Clock 7 SCK (PortB.5)
NC 8 -
ACK 9 -

Gambar 6.27e Konfigurasi Joystick Koneksi Ke Minimum System ATMega8

b. Rangkaian Minimum System ATMega8 + LCD

Gambar 6.27f Skematik Minimum System ATMega8

326
Bahan-bahan :
1. Crystal 8Mhz x 1 buah
2. ATMega8 + Socket 28 pin x 1 buah
3. Capasitor 33p x 2 buah
4. LCD Display x 1 buah
5. Capasitor 104p x 1 buah
6. Variable Resistor 10Kohm x 1 buah
7. IC7805T x 1 buah
8. Capasitor polar 100uF x 1 buah
9. Capasitor polar 10uF x 1 buah
10. Pinheader Male Secukupnya
11. Pinheader Female Secukupnya

c. Rangkaian Led
Led yang digunakan pada alat ini adalah led hijau 5mm super bright, led ini hanyalah
untuk contoh output, untuk pengembangan lebih lanjut bisa diganti dengan output lain seperti
relay, motor, servo dan lain-lain

Gambar 6.27g Skematik Rangkaian Led

6.27.4 Program Bascom AVR

$regfile = "m8def.dat"
$crystal = 8000000

Deflcdchar 0 , 32 , 4 , 14 , 27 , 17 , 31 , 32 , 32 ' segitiga


Deflcdchar 1 , 32 , 31 , 17 , 17 , 17 , 17 , 31 , 32 ' kotak
Deflcdchar 2 , 32 , 4 , 14 , 21 , 4 , 4 , 4 , 32 ' up
Deflcdchar 3 , 32 , 4 , 4 , 4 , 21 , 14 , 4 , 32 ' down
Deflcdchar 4 , 32 , 4 , 2 , 31 , 2 , 4 , 32 , 32 ' kanan
Deflcdchar 5 , 32 , 4 , 8 , 31 , 8 , 4 , 32 , 32 ' kiri

Config Lcdpin = Pin , Rs = Portc.4 , E = Portc.5 , Db4 = Portc.0


Config Lcdpin = Pin , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3
Config Lcd = 16 * 2

327
Config Spi = Hard , Interrupt = Off , Data Order = Lsb , Master = Yes ,
Polarity = High , Phase = 1 , Clockrate = 128
Spiinit

Config Pinb.0 = Output


Pad_att_line Alias Portb.0

Config Pind.4 = Output


Led Alias Portd.4

Dim Cmdstart As Byte : Cmdstart = &H01


Dim Cmdstatus As Byte : Cmdstatus = &H42
Dim Joy_present As Byte , Joy_mode As Byte
Dim Joy_byte1 As Byte , Joy_byte2 As Byte
Dim Joy_kanan_x As Byte , Joy_kanan_y As Byte
Dim Joy_kiri_x As Byte , Joy_kiri_y As Byte

Key_select Alias Joy_byte1.0


Key_joyr Alias Joy_byte1.1
Key_joyl Alias Joy_byte1.2
Key_start Alias Joy_byte1.3
Key_up Alias Joy_byte1.4
Key_right Alias Joy_byte1.5
Key_down Alias Joy_byte1.6
Key_left Alias Joy_byte1.7

Key_l2 Alias Joy_byte2.0


Key_r2 Alias Joy_byte2.1
Key_l1 Alias Joy_byte2.2
Key_r1 Alias Joy_byte2.3
Key_triangle Alias Joy_byte2.4
Key_circle Alias Joy_byte2.5
Key_x Alias Joy_byte2.6
Key_square Alias Joy_byte2.7

Cls
Cursor Off
Do
Waitms 100
Reset Pad_att_line : Waitus 10
Spiout Cmdstart , 1
Joy_mode = Spimove(cmdstatus) '
Spiin Joy_present , 1
Spiin Joy_byte1 , 1
Spiin Joy_byte2 , 1
Spiin Joy_kanan_x , 1
Spiin Joy_kanan_y , 1
Spiin Joy_kiri_x , 1
Spiin Joy_kiri_y , 1
Set Pad_att_line : Waitus 10

If Key_x = 0 Then
Cls
Upperline

328
Lcd "Silang"
Led = 1

Elseif Key_circle = 0 Then


Cls
Upperline
Lcd "Bulet"
Led = 1

Elseif Key_triangle = 0 Then


Cls
Upperline
Lcd "Segitiga"
Led = 1

Elseif Key_square = 0 Then


Cls
Upperline
Lcd "kotak"
Led = 1

Elseif Key_up = 0 Then


Cls
Upperline
Lcd "Atas"

Elseif Key_down = 0 Then


Cls
Upperline
Lcd "Bawah"

Elseif Key_right = 0 Then


Cls
Upperline
Lcd "kanan"

Elseif Key_left = 0 Then


Cls
Upperline
Lcd "kiri"

Else
Cls
Upperline
Lcd "Diam"
Led = 0

End If

Loop

329
6.27.5 Cara Penggunaan Alat

Untuk cara penggunaan alat ini yaitu hubungkan alat dengan sumber tegangan dan
arus misalnya power supply 12v, setelah itu akan tampak LCD display menyala yang
menandakan alat siap digunakan. Cobalah untuk menekan tombol X, tombol , tombol ,
tombol O, arrow up, arrow down, arrow left, dan arrow right jika alatnya berhasil maka akan
tampil seperti table berikut

Tombol Yang Ditekan Tampilan LCD Kondisi Led


Tombol X Silang Menyala
Tombol Segitiga Menyala
Tombol Kotak Menyala
Tombol O Bulet Menyala
Tombol Arrow Up Atas Mati
Tombol Arrow Down Bawah Mati
Tombol Arrow Left Kiri Mati
Tombol Arrow Right Kanan Mati
Tombol Tidak Ditekan Diam Mati

330
6.28 Membuat Alat Pengendali Led dengan Handphone J2ME

Pada kesempatan kali ini akan membahas bagaimana cara membuat pengenali led
yang berjumlah dua buah yang dikendalikan nyala-mati atau ON-OFF menggunakan sebuah
handphone dengan operating system J2ME, jadi menggunakan media Bluetooth, pada handphone
terdapat fitur Bluetooth yang diposisikan sebagai master (pengirim) dan pada mikrokontroller
terdapat bluetooth device JY-MCU ver 1.03 yang diposisikan sebagai slave (penerima), sehingga
kedua device dapat saling berkomunikasi satu sama lainnya. Gambar 6.28 adalah tampilan alat
yang akan dibuat.

Gambar 6.28a Tampilan Alat Kendali Led dengan Handphone J2ME

Alat ini menggunakan mikrokontroller ATMega32 sebagai penerjemah dari data yang
dikirimkan oleh handphone, sehingga data diterima oleh Bluetooth JY-MCU ver 1.03 dapat
diterjemahkan oleh mikrokontroller dengan baik dan akan menghasilkan output yang sesuai.

6.28.1 Fungsi dan Tujuan


Fungsi dari alat ini banyak sekali salah satunya yaitu untuk pengendali ON-OFF
lampu rumah atau perangkat elektronik lainnya menggunakan handphone, untuk tujuannya yaitu
untuk mengetahui bagaimana cara membuat alat yang terintegrasi dengan handphone J2ME
menggunakan media Bluetooth.

331
6.28.2 Prinsip Kerja Alat
Prinsip kerja alat ini sangatlah sederhana yaitu hanphone mengirimkan data berupa
angka “1”, “2”, “3”, dan “4” melalui bluetooh, kemudian data tersebut diterima oleh Bluetooth
JY-MCU ver 1.03 sebagai slave (penerima), kemudian data tersebut kirim lagi ke
mikrokontroller, di mikrokontroller data yang diterima oleh Bluetooth JY-MCU diolah dan
dibaca, setelah menemukan data yang dikirim maka mikrokontroller akan mengeluarkan output
yang sesuai dengan program yang dimasukkan. Untuk lebih jelasnya perhatikan bagan berikut.

Handphone Bluetooth Minimum System


J2ME Bluetooth JY-MCU ver 1.03 Rx, Tx, Vcc, Gnd ATMega32

2 Buah Led LCD Display

Output dari mikrokontroller pada alat ini adalah tampilan karakter pada LCD display
dan dua buah led yaitu led 5mm merah dan kuning, sebenarnya output led hanyalah contoh saja,
untuk aplikasi yang lebih bagus bisa diganti dengan output berupa motor DC, motor servo,
buzzer, dotmatrik, dan lain-lain.

6.28.3 Rangkaian Hardware


Rangkaian hardware yang dibutuhkan untuk membuat alat ini adalah rangkaian
minimum system ATMega32 ditambah LCD, Bluetooth (slave) JY-MCU, rangkaian led,
Handphone J2ME (tidak touchscreen).

a. Bluetooth JY-MCU
Sebagai slave atau receiver dari USB bluetooth dongle, maka lebih tepat
menggunakan modul slave yang bernama JY-MCU v1.03, untuk versi bisa apa saja, namun yang
dipakai pada pembahasan kali ini yaitu JY-MCU yang versi 1.03. berikut adalah bentuk dari
modulnya.

332
Gambar 6.28b Bentuk JY-MCU v1.03

Pemasangan dari modul ini ke mikrokontroler hanya memasangkan pin RX JY-MCU


ke TX pin mikrokontroler, begitula dengan Tx masuk ke pin Rx mikrokontroller, VCC dan
GND. yang digunakan hanyalah 4 buah jalur yaitu RX, TX, GND dan VCC. Berikut bagan dan
konfigurasi koneksinya

JY-MCU Minimum System


RX, TX, VCC, GND
Ver1.03 ATMega8

JY-MCU Bluetooth RX TX Minimum System


TX RX
VCC VCC
GND GND

b. Handphone J2ME
Maksud dari Handphone J2ME disini yaitu handphone yang menggunakan operating
system J2ME bukan Android, atau yang lain. Handphone yang menggunakan operatis system
J2ME banyak sekali namun biasanya dipakai oleh handphone Sony Ericsson contoh Sony
Ericsson K310i, Sony Ericsson K530i dan lainnya.
Handphone yang dipakai untuk pembuatan alat ini yaitu handphone Sony Ericsson
K530i yang mana bentuknya seperti pada Gambar 6.28c, handphone ini memiliki operating
system JAVA J2ME, dan menggunakan tombol keypad, sehingga memudahkan dalam
penggunaannya.

333
Gambar 6.28c Bentuk dari Handphone Sony Ericsson K530i

c. Minimum System ATMega32 plus LCD

Downloader

LCD

Led

Ke JY-MCU
Gambar 6.28d Skematik ATMega32 Plus LCD

334
Bahan-bahan :
1. Crystal 12Mhz x 1 buah
2. ATMega32 + Socket 40 pin x 1 buah
3. Capasitor 33p x 2 buah
4. LCD Display x 1 buah
5. Capasitor 104p x 4 buah
6. Capasitor 103p x 1 buah
7. Variable Resistor 10Kohm x 1 buah
8. IC7805T x 1 buah
9. Capasitor polar 100uF x 1 buah
10. Capasitor polar 10uF x 1 buah
11. Pinheader Male Secukupnya
12. Pinheader Female Secukupnya

c. Rangkaian Led

Dua buah Led yang digunakan pada alat ini adalah led merah 5mm super bright dan
led kuning 5mm super bright, led ini hanyalah untuk contoh output, untuk pengembangan lebih
lanjut bisa diganti dengan output lain seperti relay, motor, servo dan lain-lain

LED 2

PORTB.1

Gambar 6.28e Skematik Rangkaian Led

335
6.28.4 Program Bascom AVR
'==========================================================================
'Programmer: Yanuar Mukhammad
'E-mail : Yanuarm@hotmail.com
'==========================================================================
$regfile = "m32def.dat"
$crystal = 12000000
$baud = 9600

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 Portb.0 = Output


Config Portb.1 = Output

Enable Interrupts

Dim Perintah As String * 1


Upperline
Lcd "Bluetooth"
Lowerline
Lcd "Connect"
Wait 5

Cls
Cursor Off
Do
Perintah = Waitkey()
Select Case Perintah
Case "1" :
Cls
Portb.0 = 1
Upperline
Lcd "led 1 ON"
Case "2" :
Cls
Portb.0 = 0
Upperline
Lcd "led 1 OFF"
Case "3" :
Cls
Portb.1 = 1
Lowerline
Lcd "led 2 ON"
Case "4" :
Cls
Portb.1 = 0
Lowerline
Lcd "led 2 OFF"
End Select
Loop

336
6.28.5 Pembuatan Aplikasi Handphone

Pada Pembuatan software / aplikasi pada handphone J2ME ini memerlukan sebuah
software bernama Netbeans, kenapa pakai Netbeans ? karena Netbeans merupakan software yang
dapat menampung dan menangani file-file yang berformat “.java” sehingga jika telah jadi akan
menghasilkan file berbentuk “.jar” atau “.jad” untuk Java ME.
Aplikasi yang akan dibuat pada alat ini tampilannya akan tampak seperti Gambar
6.28f, yang mana terdapat empat buah menu kendali yaitu Led 1 On, Led 1 Off, Led 2 On dan
Led 2 Off.

Sony Ericsson
Daftar Menu :
Led 1 On
Led 1 Off
Led 2 On
Led 2 Off

Gambar 6.28f Tampilan dari Aplikasi Kendali Led

Ada beberapa langkah untuk membuatnya mulai dari pembuatan MIDLET, pembuatan
Class hingga proses BUILD, berikut adalah penjelasan lengkapnya

1. Buka software Netbeans IDE, pilih File -> New Project, pilih Java ME

337
2. Isikan “Project Name” dengan “bluetoothj2me” dan un-check “Create Hello MIDlet”

3. Kemudian PIlih Device dan konfigurasi seperti gambar dibawah ini, lalu tekan “Finish”

4. Buat MIDlet baru dengan cara klik kanan pada “Default Package” lalu pilih New MIDlet

338
5. Isikan Midlet Name dengan bluetoothj2me, lalu tekan finish

6. Setelah MIDlet terbuat langkah berikutnya yaitu membuat Class.java pada satu project, dengan
cara klik kanan pada “Default Package” lalu pilih New -> Java Class

7. Isikan nama Class dengan “Menu”, kemudian tekan “Finish”

8. Nah Sampai langkah ini akan terbuat dua buah file pada project bluetoothj2me, yaitu MIDlet
“bluej2me”dan Class “Menu”

339
9. Isikan program pada MIDlet “bluetoothj2me” dengan program berikut.

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.io.*;
import javax.microedition.io.*;

public class bluetoothj2me extends MIDlet implements CommandListener {

private Display display;


Menu menu;
private Command cmdExit;
private Command cmdfresh;
public String btConnectionURL;
public OutputStream out;
public InputStream is;
public OutputStreamWriter ow;
public InputStreamReader ir;

public bluetoothj2me() {
display = Display.getDisplay(this);
menu = new Menu();
cmdExit = new Command("Exit", Command.EXIT, 0);
menu.setCommandListener(this);
menu.addCommand(cmdExit);
}

public void startApp() {


display.setCurrent(menu);
}

public void pauseApp() {


}

public void destroyApp(boolean unconditional) {


}

public void commandAction(Command c, Displayable d) {


if (c == cmdExit) {
destroyApp(true);
notifyDestroyed();
}
}
}

340
10. Kemudian isikan program pada Java Class “Menu” dengan program berikut. Ubah code
“001203287048” dengan nama Bluetooth yang akan digunakan

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.io.*;
import javax.microedition.io.*;

public class Menu extends Canvas implements CommandListener {

int lebar;
int panjang;
int selectedMenu = 1;
String[] menu = {"Daftar Menu:", "Led 1 On", "Led 1 Off", "Led 2 On", "Led 2 Off"};
Font plainMenu, boldMenu;
private Display display;
public String btConnectionURL;
public OutputStream out;
public InputStream is;
public OutputStreamWriter ow;
public InputStreamReader ir;

public Menu() {
lebar = getWidth();
panjang = getHeight();
plainMenu = Font.getFont(Font.FACE_MONOSPACE, Font.STYLE_PLAIN,
Font.SIZE_SMALL);
boldMenu = Font.getFont(Font.FACE_MONOSPACE, Font.STYLE_BOLD,
Font.SIZE_MEDIUM);
}

public void drawMenu(Graphics g) {


g.setColor(100, 100, 100);
g.setFont(plainMenu);
g.drawString(menu[0], 20, 20, Graphics.BASELINE | Graphics.LEFT);

for (int i = 1; i < menu.length; i++) {


if (i == selectedMenu) {
g.setColor(100, 80, 150);
g.setFont(boldMenu);
} else {
g.setColor(50, 80, 100);
g.setFont(plainMenu);
}
g.drawString(menu[i], 25, 20 + i * plainMenu.getHeight(), Graphics.BASELINE |
Graphics.LEFT);
}
}

protected void paint(Graphics g) {

341
g.setColor(250, 250, 250);
g.fillRect(0, 0, getWidth(), getHeight());

drawMenu(g);
}

public void keyPressed(int keyCode) {


switch (getGameAction(keyCode)) {
case Canvas.DOWN:
selectedMenu++;
if (selectedMenu > menu.length - 1) {
selectedMenu = 1;
}
break;
case Canvas.UP:
selectedMenu--;
if (selectedMenu <= 0) {
selectedMenu = menu.length - 1;
}
break;
case Canvas.FIRE:
if (selectedMenu == 1) {
try {
btConnectionURL = "btspp://" + "001203287048" +
":1;authenticate=true;encrypt=false;master=false";
StreamConnection connection = (StreamConnection)
Connector.open(btConnectionURL);
out = connection.openOutputStream();
is = connection.openInputStream();
OutputStreamWriter ow = new OutputStreamWriter(out, "US-ASCII");
InputStreamReader ir = new InputStreamReader(is, "US-ASCII");
ow.write("1");
connection.close();
connection = null;
is.close();
ow.close();
} catch (IOException ioe) {
}
} else if (selectedMenu == 2) {
try {
btConnectionURL = "btspp://" + "001203287048" +
":1;authenticate=true;encrypt=false;master=false";
StreamConnection connection = (StreamConnection)
Connector.open(btConnectionURL);
out = connection.openOutputStream();
is = connection.openInputStream();
OutputStreamWriter ow = new OutputStreamWriter(out, "US-ASCII");
InputStreamReader ir = new InputStreamReader(is, "US-ASCII");
ow.write("2");
connection.close();
connection = null;

342
is.close();
ow.close();
} catch (IOException ioe) {
}

} else if (selectedMenu == 3) {
try {
btConnectionURL = "btspp://" + "001203287048" +
":1;authenticate=true;encrypt=false;master=false";
StreamConnection connection = (StreamConnection)
Connector.open(btConnectionURL);
out = connection.openOutputStream();
is = connection.openInputStream();
OutputStreamWriter ow = new OutputStreamWriter(out, "US-ASCII");
InputStreamReader ir = new InputStreamReader(is, "US-ASCII");
ow.write("3");
connection.close();
connection = null;
is.close();
ow.close();
} catch (IOException ioe) {
}
} else if (selectedMenu == 4) {
try {
btConnectionURL = "btspp://" + "001203287048" +
":1;authenticate=true;encrypt=false;master=false";
StreamConnection connection = (StreamConnection)
Connector.open(btConnectionURL);
out = connection.openOutputStream();
is = connection.openInputStream();
OutputStreamWriter ow = new OutputStreamWriter(out, "US-ASCII");
InputStreamReader ir = new InputStreamReader(is, "US-ASCII");
ow.write("4");
connection.close();
connection = null;
is.close();
ow.close();
} catch (IOException ioe) {
}
}
}
repaint();
}
public void commandAction(Command c, Displayable d) {
}
private void destroyApp(boolean b) {
}
private void notifyDestroyed() {
}
}

343
11. Jika semuanya sudah dilakukan, langkah yang terakhir yaitu tekan “Clean And Buid” program,
agar didapat file .jar atau .jad pada folder “dist”

Clean And Build

12. Jika tidak ada yang error, berarti program telah selesai dibuat, untuk melihat program .jar dan .jad
yang dibuat dapat masuk ke dalam alamat folder berikut.

C:\Users\Win 7\Documents\NetBeansProjects\bluetoothj2me\dist

13. Maka akan tampak file.jar dan .jad yang siap untuk di-install ke handphone J2ME

6.28.6 Cara Penggunaan Alat


Penggunaan alat ini, pertama aktifkan minimum system dan Bluetooth JY-MCU,
sehingga akan nampak LCD yang menyala dan Led indikator pada bluetooth JY-MCU berkedip,
langkah kedua siapkan handphone yang telah terintsll program bluej2me.jar, aktifkan
aplikasinya. Jika telah terkoneksi dengan baik, tekan salah satu menu yang ada, maka hasil akan
seperti pada table berikut.

Menu Yang Ditekan Nyala Led Tampilan LCD


Led 1 On Led merah menyala Led 1 ON
Led 1 Off Led merah padam Led 1 OFF
Led 2 On Led kuning menyala Led 2 ON
Led 2 Off Led kuning padam Led 2 OFF

344
6.29 Membuat Alat Penunjuk Arah atau Kompas

Pada kesempatan yang berbahagia kali ini, akan dibahas bagaimana cara membuat
alat untuk mengetahui arah atau sebagai penunjuk arah, arah tersebut yaitu arah utara, selatan,
timur dan barat, kalau urusan tenggara, selatan barat daya dll tidak di bahas, hal itu bisa di
tambahkan sendiri dengan membaca output sensor pada computer.
Alat yang akan dibuat kali ini menggunakan sensor compass yaitu sensor yang
memliki respon terhadap rotasi atau putaran, jadi sensor ini akan memiliki nilai yang berbeda
saat dia berada dengan posisi hadap yang berbeda, misal jika sensor ini menghadap ke utara
dengan ke selatan, maka hasilnya saat posisi menghadap ke utara akan berbeda dengan pada saat
sensor menghadap ke posisi selatan, begitulah cara kerja sensor compass, sensor kompas yang
dipakai kali ini adalah sensor compass HMC5883L yang mana sensor ini jauh lebih murah
dibanding sensor kompas yang lain.
Alat ini juga dilengkapi 4 buah led sebagai output yang bermacam-macam warna,
dimaksudkan agar dapat dengan mudah diketahui arah hadap dari sensor kompas ini, untuk
tampilan jadinya seperti Gambar 6.29a berikut

Gambar 6.29a Tampilan Alat Penunjuk Arah

Alat ini menggunakan mikrokontroller ATMega16 sebagai otak pengendali sekaligus


pengatur jalannya output dari sinyal masukan sensor compass, sehingga jika dilihat secara
keseluruhan alat ini sangat sederhana, tidaklah menggunakan alat yang bermacam-macam, hanya
perlu mikrokontroler (minimum Sistem), output led dan sensor compass HMC5883L.

345
6.29.1 Fungsi dan Tujuan
Fungsi dibuatnya alat ini yaitu sebagai alat yang dapat menunjukkan arah dimana
utara, selatan , timur dan barat, pada saat seseorang dalam keadaan tersesat atau tak tahu arah,
untuk tujuannya yaitu untuk mengetahui bagaimana cara kerja dari senor compass HMC5883L.

6.29.2 Prinsip Kerja Alat


Prinsip kerja alat ini sangatlah sederhana, yaitu sensor HMC5883L memberikan
sinyal data ke mikrokontroller melalui port I2C (SDA, SCL), yang mana dengan mudah
mikrokontroller menerima input masukan tersebut, didalam mikrokontroller sinyal masukan dari
sensor di baca dengan baik sehingga pada saat sensor berubah arah hadap atau posisi maka
mikrokontroller pun akan menangkap sinyal yang berbeda dari yang sebelumnya. Kemudian dari
mikrokontroller dikirimkan ke empat buah led sebagai indikator penunjuk arah, pada bagian led,
disini terdapat empat buah led yaitu led merah, biru, hijau dan kuning, tujuannya ada 4 buah led
bervariasi warna yaitu untuk memudahkan pengguna mengidentifikasi suatu arah, misalnya jika
yang menyala warna merah berarti sensor dalam posisi menghadap kearah utara begitu
seterusnya, untuk lebih jelasnya perhatikan bagan berikut.

Sensor Compass Minimum System 4 Buah Led


HMC5883L ATMega16

Port I2C (SDA, SCL)

6.29.3 Rangkaian Hardware


Rangkaian hardware yang dipakai untuk membuat alat ini yaitu Sensor HMC5883L
sensor compass, rangkaian minimum system ATMega16, rangkaian led
a. Rangkaian Led

Gambar 6.29b Rangkaian Led

346
b. Rangkaian Minumum System ATMgea16

Ke Rangkaian Led

SDA SCL

Gambar 6.29c Skematik Minimum System ATMega16


Bahan-bahan :
1. Crystal 4Mhz x 1 buah
2. ATMega32 + Socket 40 pin x 1 buah
3. Capasitor 22p x 2 buah
4. Resistor 4K7 x 3 buah
5. Capasitor 104p x 4 buah
6. IC7805T x 1 buah
7. Capasitor polar 100uF x 1 buah
8. Capasitor polar 10uF x 1 buah
9. Capasitor 103p x 1 buah
10. Pinheader Male Secukupnya
11. Pinheader Female Secukupnya

347
c. Sensor HMC5883L

Sensor HMC5883L ini adalah sensor yang sangat sensitif sekali terhadap rotasi dan arah
hadap sensor, dikarenakan sensor ini menggunakan medan magnet sebagai acuan dari
pendeteksiannya. Data yang telah didapat untuk 4 buah mata angin yaitu.

Arah Mata Angin Data

Utara 255 < X < 257

Selatan 79 < X < 81

Timur 16 < X < 18

Barat 148 < X < 150

Sensor ini memiliki port koneksi ke mikrokontroller yaitu SDA, SCL, VCC dan GND,
sehingga port I2C ini adalah port I/O dari sensor ini, jika dihubungkan ke port mikrokontroller
maka dihubungkan ke PortC.0 (SCL) dan PortC.1 (SDA). Berikut Gambar dan konfigurasinya

Minimum System

Gnd
Vcc
PortC.1 (SDA)
PortC.0 (SCL)

Gambar 6.29d Konfigurasi dan Tampilan Sensor HMC5883L

348
6.29.4 Program Bascom AVR
$regfile = "m16def.dat"
$crystal = 12000000
$baud = 9600
$hwstack = 64
$swstack = 64
$framesize = 64
'--------------------------------------------------------------------
'=====[ Global Vars & Constants ]========
Dim Hmc_x As Integer
Dim Hmc_xl As Byte At Hmc_x + 0 Overlay
Dim Hmc_xh As Byte At Hmc_x + 1 Overlay

Dim Hmc_y As Integer


Dim Hmc_yl As Byte At Hmc_y + 0 Overlay
Dim Hmc_yh As Byte At Hmc_y + 1 Overlay

Dim Hmc_z As Integer


Dim Hmc_zl As Byte At Hmc_z + 0 Overlay
Dim Hmc_zh As Byte At Hmc_z + 1 Overlay
Dim Hmc_status As Byte

Dim X As Single
Dim Y As Single
Dim Z As Single
Dim Angle As Single
Ddrb = &B11111111

Const Hmc_w = &H3C


Const Hmc_r = &H3D

'---------------------------------------------------------------------
'=====[ Misc. config ]==============
Config Scl = Portc.0
Config Sda = Portc.1
Config Twi = 400000
I2cinit

Print "{027}[2J{027}[1;1H";
Print "Starting..."
Print

Gosub Hmc_initialize
'----------------------------------------------------------------------
'*****[ Start of main loop ]*******
Do
Gosub Hmc_readdata
Gosub Hmc_readstatus

' convert integer to float


X = Hmc_x
Y = Hmc_y
Z = Hmc_z

Angle = Atn2(y , X)
Angle = Angle * 57.29577951

349
Angle = Angle + 180

Print "{027}[3;1H";
Print "Angle : " ; Fusing(angle , "#.#") ; "{027}[K"
Print "Status : " ; "&h" ; Hex(hmc_status) ; "{027}[K"

Waitms 100

If Angle > 16 And Angle < 18 Then 'timur


Portb.0 = 0
Portb.1 = 1
Portb.2 = 0
Portb.3 = 0
Elseif Angle > 79 And Angle < 81 Then 'selatan
Portb.0 = 0
Portb.1 = 0
Portb.2 = 1
Portb.3 = 0
Elseif Angle > 148 And Angle < 150 Then 'barat
Portb.0 = 0
Portb.1 = 0
Portb.2 = 0
Portb.3 = 1
Elseif Angle > 255 And Angle < 257 Then 'utara
Portb.0 = 1
Portb.1 = 0
Portb.2 = 0
Portb.3 = 0
Else
Portb.0 = 0
Portb.1 = 0
Portb.2 = 0
Portb.3 = 0
End If

Loop

End
'---------------------------------------------------------------------
'=====[ Initialize HMC Compass ]========
Hmc_initialize:
I2cstart
I2cwbyte Hmc_w
I2cwbyte &H00
I2cwbyte &B0101_1000
I2cwbyte &H0010_0000
I2cwbyte &H0000_0000
I2cstop
Return
'---------------------------------------------------------------------
'=====[ Read HMC Compass ]===========
Hmc_readstatus:
' Read HMC Compass status
I2cstart
I2cwbyte Hmc_w
I2cwbyte &H09
I2cstart

350
I2cwbyte Hmc_r
I2crbyte Hmc_status , Nack
I2cstop
Return
'----------------------------------------------------------------------
'=====[ Read HMC Compass ]=========
Hmc_readdata:
I2cstart
I2cwbyte Hmc_w
I2cwbyte &H03
I2cstart
I2cwbyte Hmc_r
I2crbyte Hmc_xh , Ack
I2crbyte Hmc_xl , Ack
I2crbyte Hmc_zh , Ack
I2crbyte Hmc_zl , Ack
I2crbyte Hmc_yh , Ack
I2crbyte Hmc_yl , Nack
I2cstop
Return
'------------------------------------------------------------------------

6.29.5 Cara Penggunaan Alat


Untuk menggunakan alat ini yaitu pertama menghidupkan alat dengan mengaktifkan
sumber catu daya sebagai VCC dan GND, kemudian menghubungkan rangkaian sensor
HMC5883L ke minimum system, setelah itu alat siap untuk digunakan, untuk mengetahui arah
mata angin dengan cara memutarkan / menghadapkan sensot ke arah utara, selatan, barat dan
timur jika led menyala berarti arah yang dituju telah tepat namun jika belum ada led yang
menyala berarti arah hadap sensor masih salah, atau kurang tepat. Tampilan hasil secara
detailnya seperti berikut

Arah Hadap Range Data Led Merah Led Biru Led Hijau Led Kuning
Utara 255 < X < 257 On Off Off Off
Selatan 79 < X < 81 Off On Off Off
Timur 16 < X < 18 Off Off On Off
Barat 148 < X < 150 Off Off Off On
yang lainnya - Off Off Off Off

351
6.30 Membuat Alat Pengendali Led dan Buzzer Menggunakan SMS Gateway

Pada pembahasan kali ini akan mengangkat topik mengenai bagaimana cara membuat
alat pengendali led dan buzzer menggunakan sms gateway, alat yang akan dibuat termasuk
dalam kategori yang sederhana, yaitu hanya mengendalikan output led dan buzzer hidup / on dan
mati / off, yang membuat alat ini menarik untuk dibahas yaitu control led dan buzzer tersebut
tidak menggunakan tombol atau computer melainkan menggunakan sms, berikut Gambar 6.30a
adalah bentuk dari alat yang akan dibahas.

Gambar 6.30a Bentuk Alat Pengendali Led dan Buzzer Menggunakan SMS

Alat ini secara garis besar yaitu hanya menghidupkan led on/off dan juga buzzer
on/off dengan menggunakan media sms gateway, untuk sms gateway digunakan Modem
Wavecom Fastrack Serial I/O yang mana akan dibahas pada sub bab terkait.
Untuk isi atau format dari sms yang akan dikirimkan ke modem yaitu #L untuk
menghidupkan led dan buzzer, sehingga kedua output tersebut menyala bersamaan, dan #D
untuk mematikan led dan buzzer tersebut.
Mikrokontroller yang digunakan untuk pembuatan alat ini yaitu menggunakan
ATMega8 dengan ditambahkan output 8 buah led, 1 buah buzzer, dan 1 buah rangkaian serial
RS232 untuk menghubungkan mikrokontroller dengan Modem Wavecom Fastrack serial I/O.

352
6.30.1 Fungsi dan Tujuan

Fungsi dibuatnya alat ini yaitu untuk simulasi dalam pengendalian perangkat rumah
tangga seperti lampu ruangan, bel rumah dan lainnya, untuk tujuannya agar dapat mengetahui
bagaimana cara membuat alat yang dikendalikan menggunakan sms gateway.

6.30.2 Prinsip Kerja Alat


Prinsip kerja alat ini seperti yang telah diterangkan pada halaman awal yaitu untuk
menghidupkan led on/off dan juga buzzer on/off secara bersamaan menggunakan sms gateway,
jadi user mengirimkan sms ke Modem Wavecom, setelah itu sms tersebut akan dibaca oleh
modem, yang kemudian modem akan melakukan pengiriman data ke mikrokontroller, di dalam
mikrokontroller, data yang didapat dari modem wavecom dibaca apakah datanya berupa #L atau
#D, jika mikrokontroller mendapatkan data #L dari modem wavecom maka mikrokontroller akan
menyalakan 8 buah led dan 1 buzzer sebagai indikator, namun jika yang diterima oleh
mikrokontroller dari modem wavecom berupa data #D, maka mikrokontroller akan mematikan 8
buah led dan 1 buah buzzer.
Jadi jenis perintah yang dikirimkan ke modem wavecom ada 2 yaitu #L untuk
menghidupkan 8 buah led dan 1 buah buzzer, jenis yang satunya lagi yaitu #D untuk mematikan
8 buah led dan 1 buzzer. Untuk lebih jelasnya perhatikan bagan kerja dari alat ini, berikut
bagannya.

SMS Berformat Modem Wavecom Rangkaian Mikrokontroller


#L atau #D Fastrack Serial I/O Serial RS232 ATMega8

Led dan Buzzer

353
6.30.3 Rangkaian Hardware

Untuk membuat alat ini hanya membutuhkan beberapa hardware seperti rangkaian
minimum system ATMega8, rangkaian led, rangkaian Buzzer, rangkaian serial RS232 dan
Modem Wavecom Fastrack serial I/O

a. Rangkaian Minimum System ATMega8

Gambar 6.30b Skematik Minimum System ATMega8

Bahan-Bahan :

1. Crystal 12Mhz x 1 buah


2. ATMega8 + Socket 28 pin x 1 buah
3. Capasitor 22p x 2 buah
4. Capasitor 104p x 1 buah
5. IC7805T x 1 buah
6. Capasitor polar 100uF x 1 buah
7. Capasitor polar 10uF x 1 buah
8. Pinheader Male Secukupnya
9. Pinheader Female Secukupnya

354
b. Rangkaian RS232 Serial I/O

Rangkaian RS232 adalah rangkaian yang digunakan untuk menghubungkan antara


mikrokontroller dengan modem wavecom, karena input dari serial mikrokontroller memerlukan
konversi dan penyesuaian tegangan, agar data dari Modem Wavecom Fastrack dapat diterima
oleh mikrokontroller dengan baik. Untuk skematik RS232 adalah seperti Gambar 6.30c

Ke Port RX dan TX
ATMega8

Ke I/O Serial
Modem Wavecom

Gambar 6.30c Skematik Rangkaian Serial RS232

Bahan-bahan:
a. Capasitor Polar 1uF / 16v x 4 buah
b. DB9 male / female x 1 buah
c. IC MAX232 x 1 buah + socket
d. Pinheader Secukupnya

355
c. Modem Wavecom Fastrack serial I/O

Gambar 6.30d Bentuk Modem Wavecom Fastrack Serial I/O

Media SMS Gateway yang digunakan pada penjelasan kali ini adalah SMS Gateway
menggunakan modem wavecom fastrack dengan I/O berbentuk serial, untuk penggunaan dari
wavecom fastrack ini sangatlah mudah hanya perlu menghubungkan port serial modem
wavecom ke port serial RS232 mikrokontroller, karena bawaan dari pabrik modem memiliki
bentuk output serial berupa DB 16, maka haruslah menggunakan kabel converter bawaan dari
pabrik juga yaitu kabel converter VGA serial output DB 16 menjadi serial output DB 9, sehingga
dari serial DB 9 tersebut dapat dikoneksikan ke RS232 yang juga menggunakan DB 9.
Modem wavecom menggunakan perintah AT-Command dalam proses eksekusi data,
sehingga mikrokontroller harus menggunakan perintah AT-Command untuk dapat memberikan
perintah kepada modem wavecom agar mengirimkan sms, membaca sms, melihat sms yang
masuk, dll. berikut ini beberapa program AT-Command yang biasa digunakan

- AT+CMGS="085643619527"
untuk mengirim sms ke nomer handphone yang tertera
- AT+CMGL="REC UNREAD"
untuk melihat SMS yang belum dibaca
- AT+CMGL="ALL"
untuk menampilkan semua SMS yang tersimpan
- AT+CMGD=1
untuk menghapus SMS pada index 1

356
d. Rangkaian Led dan Buzzer

Rangkaian Led dan Buzzer disini hanyalah sebagai indikator untuk menandakan apakah
mikrokonroller berhasil membaca perintah dari Modem Wavecom ataukah tidak.

VCC 5v
PORTB.0

PORTD.0-PORTD.7

Gambar 6.30e Skematik Rangkaian Buzzer dan Led

6.30.4 Cara Menghubungkan Rangkaian RS232 ke Modem Wavecom

Perlu diperhatikan saat menghubungkan rangkaian RS232 serial I/O DB 9, ke modem


wavecom yang juga memiliki serial I/O berupa DB 9, telah terbukti banyak sekali yang
mengalami koneksi error saat RS232 mencoba mengirimkan pertintah AT-Command ke modem
wavecom, ternyata modem wavecom tidak mau menerima perintah AT-Command tersebut
dikarenakan hal yang sepele., yaitu mengubah output RX dan TX pada rangkaian RS232, untuk
lebih jelaskan perhatikan gambar 6.30f berikut

Rangkaian RS232 GND GND Modem Wavecom


RX RX

TX TX

357
Ke GND output Modem Wavecom

Ke TX output Modem Wavecom


Ke RX output Modem Wavecom

Gambar 6.30f Konfigurasi RS232 ke Modem Wavecom

Terlihat dengan jelas bahwa output RX dari RS232 harus di-croos ke bagian port TX
dari output modem wavecom, begitupula dengan output TX dari RS232 yang di croos ke port
output RX dari modem wavecom, untuk bagian output GND dari RS232 tetap ke bagian port
output GND pada modem wavecom. Itulah hal kecil / sepele yang harus sangat diperhatikan
dikarenakan hal tersebut sering sekali membuat mikrokontroller tidak bisa berkomunikasi
dengan modem wavecom.

6.30.5 Program Bascom AVR


$regfile = "m8def.dat"
$crystal = 12000000
$baud = 9600

Dim No_hp As String * 15


Dim Data_masuk As String * 100
Dim Cmti_pos As Byte , Cmgr_pos As Byte , Index_pos As Byte , Cmd_pos As Byte
Dim Pjg_sms_index As Byte , Pjg_data As Byte
Dim Sms_index As String * 3
Dim Cmd As String * 4
Dim Cmdbin As Byte

Ddrb = &B11111111
Ddrd = &B11111111

Do

Input Data_masuk
Pjg_data = Len(data_masuk)

358
Cmti_pos = Instr(data_masuk , "CMTI")
If Cmti_pos <> 0 Then
Index_pos = Instr(data_masuk , ",")
Incr Index_pos
Pjg_sms_index = Pjg_data - Index_pos
Incr Pjg_sms_index

Sms_index = Mid(data_masuk , Index_pos , Pjg_sms_index)

Print "AT+CMGR=" ; Sms_index ; Chr(13) ; Chr(10)

End If

Cmd_pos = Instr(data_masuk , "#")


If Cmd_pos <> 0 Then
Incr Cmd_pos
Cmd = Mid(data_masuk , Cmd_pos , 1)
If Cmd = "L" Then
Portb.0 = 1
Ddrd = &B11111111
Elseif Cmd = "D" Then
Portb.0 = 0
Ddrd = &B00000000
End If

Print "AT+CMGD=" ; Sms_index ; Chr(13) ; Chr(10)

End If
Loop

6.30.6 Cara Penggunaan Alat

Cara penggunaan dari alat ini yaitu langkah pertama melakukan pengecekan pada
modem wavecom apakah modem dalam kondisi baik atau tidak melalui Hyperterminal, setelah
didapatkan bahwa modem wavecom dalam kondisi baik, maka lakukanlah pengujian dengan
mengirimkan sms dengan isi / format #L atau #D untuk menghidukan atau mematikan led dan
buzzer. Indikator jika alat berhasil maka saat dikirimkan pesan #L maka led dan buzzer akan ON
atau menyala, namun jika pesan yang dikirimkan #D akan berlaku sebaliknya yaitu mematikan
buzzer dan led secara bersamaan.

359
6.31 Membuat Alat Pembaca Input ADC dengan Interface 7 Segment

Pada pembahasan kali ini akan membahas bagaimana cara membuat alat untuk
mengetahui nilai adc yang masuk ke mikrokontroller dengan interface seven segment, jika
biasanya nilai ADC yang masuk ke mikrokontroller ditampilkan ke layar LCD display, namun
kali ini berbeda, yang membuat berbeda yaitu interface tidak lagi menggunakan LCD display,
namun menggunakan seven segment.
Secara garis besar, alat yang akan dibuat tidaklah jauh berbeda dengan menampilkan
nilai ADC pada layar LCD display, yang mana secara kseluruhan dapat dikatakan sama, yaitu
menggunakan minimum system dan mikrokontroller, yang berbeda yaitu pada bagian outputnya,
jika biasanya menggunakan layar LCD display, namun kali ini menggunakan seven segment,
untuk tampilan bentuk alatnya seperti gambar berikut ini.

Gambar 6.31a Bentuk Dari Alat Pembaca Input ADC Dengan 7 Segment

Alat ini menggunakan mikrokontroller ATMega8 sebagai otak dan pengendali output
yang akan ditampilkan ke seven segment. Pada bagian output menggunakan rangkaian interface
seven segment yaitu berupa IC 4094 sebanyak 3 buah sebagai shift register dan 3 buah seven
segment sebagai tampilan output, yang perlu diperhatikan, seven segment memiliki dua jenis,
yaitu common anoda dan common kathoda, jika commn anoda maka seven segmen tersebut
perlu dihubungkan ke sumber daya 5v atau vcc, jika common kathoda maka seven segment
tersebut harus diberikan ground.

360
6.31.1 Fungsi dan Tujuan

Fungsi dibuatnya alat ini adalah untuk menampilkan nilai ADC pada input
mikrokontroller dengan menggunakan tampilan seven segment dan juga bisa dikatakan untuk
pengganti tampilan LCD display sebagai tampilan output ADC. Tujuan dibuatnya alat ini agar
dapat mengethui bagaimana cara membuat alat yang berhubungan dengan interface seven
segment.

6.31.2 Prinsip Kerja Alat

Prinsip kerja alat ini yaitu mikrokontroller sebagai penerjemah input dari port ADC,
yang kemudian nilai atau data yang didapat dari port ADC tersebut ditampilkan ke interface
seven segment, sebenarnya alat ini cukuplah mudah dipahami dan sangat sederhana, namun yang
perlu diperhatikan bahwa terdapat IC 4094 sebagai shift register yang bisa membuat seven
segment aktif dan menampilkan angka sesuai dengan nilai ADC yang didapat. Untuk lebih
jelasnya perhatikan bagan berikut.

Nilai / Data ADC Mikrokontroller IC4094 Seven Segment


ATMega8

Maksud dari nilai / data ADC yaitu input tegangan yang akan masuk ke port ADC
mikrokontroller, jadi berhubung pada pembahasan kali ini tidak menggunakan sensor atau
perangkat yang dapat memberikan input tegangan ke ADC maka pada nilai / data ADC disini
diibaratkan masih tidak normal atau angkanya masih acak, jika ingin tidak acak angkanya,
gunakanlah sensor atau perangkat lain untuk pengukuran atau yang lainya dan masukkan ke port
ADC / PortA.0.
Tidak normal atau angkanya acak pada tampilan 7 segment yang ditampilkan karena
mikrokontroller melakukan pembacaan pada port ADC, tepatnya ADC PortA.0, dikarenakan
tidak adanya input tegangan ke port ADC ini maka mikrokontroller membaca angka secara tidak
beraturan atau acak, maka dari itu lebih baik gunakanlah sensor atau device / perangkat lain yang
dapat digunakan untuk input tegangan ADC PortA.0 agar angkanya tidaklah acak dan tidak
normal.

361
6.31.3 Rangkaian Hardware

Rangkaian hardware untuk membuat alat ini tidaklah banyak, yaitu hanya
membutuhkan rangkaian output 7 segment interface dan rangkaian minimum system ATMega8.

a. Rangkaian Minimum System ATMega8

Gambar 6.31b Skematik Minimum System ATMega8

Bahan-Bahan :

1. Crystal 8Mhz x 1 buah


2. ATMega8 + Socket 28 pin x 1 buah
3. Capasitor 22p x 2 buah
4. Capasitor 104p x 1 buah
5. IC7805T x 1 buah
6. Capasitor polar 100uF x 1 buah
7. Capasitor polar 10uF x 1 buah
8. Pinheader Male Secukupnya
9. Pinheader Female Secukupnya

362
b. Rangkaian Interface 7 Segment

Rangkaian interface 7 segment disini berfungsi sebagai rangkaian output dari


mikrokontroller, jika diganti LCD atau perangkat penampil lain tidak menjadi masalah,
rangkaian ini menggunakan 3 buah IC 4094 sebagai shift register, dan 3 buah seven segment
common anoda.

Gambar 6.31c Skematik Rangkaian Interface 7 Segment

Bahan-Bahan :

1. 7 Segment x 3 buah
2. IC 4094 x 3 buah

363
Untuk menghubungkan rangkaian interface 7 segment ke mikrokontroller hanya
membutuhkan 4 buah port yaitu Data, STR, CLK, dan OE ditambah vcc dan gnd sebagai sumber
daya untuk rangkaian ini. Cara untuk menghubungkan rangkaian interface 7 segment ke
mikrokontroller seperti yang ditunjukkan oleh Gambar 6.31d

PortD.0
PortD.1
PortD.2
PortD.3
PortD.4

Gambar 6.31d Koneksi Rangkaian Intercafe 7 segment

6.31.4 Program Bascom AVR


$regfile = "m8def.dat"
$crystal = 8000000

Config Portd.0 = Output


Config Portd.1 = Output
Config Portd.2 = Output
Config Portd.3 = Output

Datas Alias Portd.0


Strobe Alias Portd.2
Clock Alias Portd.1
Oe Alias Portd.3

Dim Y As Integer
Dim Temp As Integer
Dim Hitung As Integer

Dim Ratusan As Integer


Dim Puluhan As Integer
Dim Satuan As Integer

Dim Byteratusan As Byte


Dim Bytepuluhan As Byte
Dim Bytesatuan As Byte

364
Strobe = 1
Oe = 0

Dim Adcval As Word


Config Adc = Single , Prescaler = Auto , Reference = Avcc

Start Adc

Do
Adcval = Getadc(0)

Temp = Adcval
'Mencari angka Ratusan
Ratusan = Temp / 100
'Mencari angka Puluhan
Temp = Temp Mod 100
Puluhan = Temp / 10
'Mencari angka Satuan
Satuan = Temp Mod 10

For Y = 1 To 10
'Waitms 100
Oe = 1
Bytesatuan = Lookup(satuan , Data7seg) 'menampilkan satuan
Shiftout Datas , Clock , Bytesatuan , 1
Bytepuluhan = Lookup(puluhan , Data7seg) 'menampilkan puluhan
Shiftout Datas , Clock , Bytepuluhan , 1
Byteratusan = Lookup(ratusan , Data7seg) 'menampilkan ratusan
Shiftout Datas , Clock , Byteratusan , 1
Next Y

Wait 1

Loop

Data7seg:
Data &B11000000 '0
Data &B11111001 '1
Data &B10100100 '2
Data &B10110000 '3
Data &B10011001 '4
Data &B10010010 '5
Data &B10000010 '6
Data &B11111000 '7
Data &B10000000 '8
Data &B10010000 '9

365
6.31.5 Cara Penggunaan Alat

Cara penggunaan alat ini pertama hubungkan rangkaian interface 7 segment ke


rangkaian minimum system, kemudian langkah kedua inputkan vcc dan gnd pada minimum
system dan rangkaian interface 7 segment, jika berhasil maka akan tampak tampilan data atau
nilai ADC pada PortA.0, jika tidak ada input tegangan ADC seperti sensor atau perangkat lain
maka nilai atau datanya akan acak tidak beraturan, namun jika terdapat sensor atau perangkat
yang lainnya akan lebih baik karena data ADC-nya akan akurat seperti apa yang ditampilkan
oleh interface 7 segment.

366
BAB 7
Macam-Macam Sensor

7.1 Pengenalan Tentang Sensor


Sensor adalah jenis tranduser yang digunakan untuk mengubah besaran mekanis,
magnetis, panas, sinar, dan kimia menjadi tegangan dan arus listrik. Sensor sering digunakan
untuk pendeteksian pada saat melakukan pengukuran atau pengendalian. Beberapa jenis
sensor yang banyak digunakan dalam rangkaian elektronik antara lain sensor cahaya, sensor
suhu, sensor tekanan, Sensor Gas, Sensor Kemiringan dan lain-lain.

7.2 Macam –Macam Sensor


a. Sensor Suhu

LM35 DHT11 SHT11

b. Sensor Cahaya

LDR Photodioda

367
c. Sensor Tekanan

MPX4100 MPX2050

d. Sensor Jarak

GP2D12 PING SRF04

e. Sensor Pendeteksi Panas Tubuh

PIR

f. Sensor Gas LPG

TGS2610 MQ5

368
g. Sensor Getaran

Piezo Disk Vibration Sensor Digital Vibration Sensor

h. Sensor Kemiringan / Accelerometer

MMA7361 ADXL345

i. Sensor Api

R9454 + C10423 UVTron Driving DT-Sense Flame Detektor

369
j. Sensor Suara

Micondenser H10 Sound Sensor

k. Sensor Ketinggian Air / Water Level

WL400 WA600 WL700B

l. Sensor Magnet

Reed Switch 1108 Magnetic Sensor

370
BAB 8
Macam-Macam Module

8.1 Pengenalan Tentang Module


Module adalah suatu alat yang tersusun dari beberapa bagian rangkaian yang
terintegrasi kepada suatu sistem, biasanya module memiliki suatu kegunaan dan fungsi
tertentu, misalnya untuk sms gateway, web server, transmitter-receiver dan lain-lain,
perbedaan modul dan sensor, jika sensor digunakan untuk mendeteksi suatu kondisi dengan
outputnya yaitu tegangan dari sensor, namun jika modul sama sekali tidak digunakan untuk
mendeteksi suatu keadaan tertentu, modul digunakan untuk sebagai alat pendukung sistem
dan penghubung komunikasi satu device ke device yang lain.

8.2 Macam-Macam Module


a. Module SMS Gateway

Q2406A FXT009

M1306B

371
b. Module Ethernet-Web Server

WIZ812MJ nm7010a

WIZ200WEB EMS Ethernet Module

c. Module Mikrokontroler

NS.ONE ATMega32

DT-AVR Low Cost Micro System ATMega8535

372
Arduino UNO ARM Leaf Maple Cortex M3

d. Module Suara

EasyVR Voice Recognition

e. Modude Transmitter – Receiver

APC 220 Xbee

373
Bluetooth Module JY-MCU TSOP Receiver Module IR Transmitter

f. Module RFID

RDM6300 RDM880

g. Module SD Card

SD Card Module SD Card Module

374
BAB 9
Cara Membuat Rangkaian di PCB

9.1 Pengenalan Metode


Pembuatan Rangkaian di PCB adalah bagian yang sangat penting sekali didalam
dunia elektronika dan tidak bisa dilepaskan dari dunia mikrokontroler, karena tanpa
pembuatan PCB, tidak ada alat yang bisa dihasilkan, memang ada cara lain untuk membuat
alat tanpa membuat rangkaian di PCB yaitu dengan menggunakan breadboard atau projct
board, namun cara ini sangat tidak bagus untuk membuat sebuah alat, karena hasilnya alat
tersebut banyak sekali menggunakan kabel jumper dan tidak rapi, jika banyak kabel jumper
pada suatu alat dimungkinkan akan muncul error seperti lepasnya kabel jumper, tidak
terhubungnya kabel atau salah peletakan kabel jumper dikarenakan banyaknya kabel yang
dipasangkan.
Maka dari itu pembuatan rangkaian di PCB adalah salah satu solusi yang tepat
pengganti metode dari project board / breadboard. Pembuatan rangkaian di PCB secara
konvensional dan yang biasa dipakai untuk pelajar baik itu SMK atau mahasiswa yaitu ada
dua cara yang pertama adalah membuat rangkaian PCB dengan menggunakan mika / plastik
mika, cara kedua yaitu menggunakan kertas glossy yang biasa dipakai untuk kertas foto.
Langkah-langkah didalam pembuatan rangkaian di PCB akan dibahas satu
persatu secara mendetail pada masing-masing bagian, langkah pertama membuat skematik
rangkaian di software EAGLE, kemudian mencetaknya pada kertas glossy atau mika, setelah
itu disetrika pada bagian atas PCB, dan langkah terakhir yaitu pengeboran dan penyolderan,
berikut penjelasannya.

a. Pembuatan Skematik Pada Software EAGLE


langkah pertama dan yang paling utama adalah membuat skematik rangkaian
dikomputer, untuk software pembuat skematik sebenarnya banyak sekali pilihan seperti
software PCB designer, Proteus, dll. Namun pada pembahasan kali ini membahas cara
pembuatan skematik rangkaian menggunakan software EAGLE yang mana software EAGLE
ini adalah software yang freeware sehingga tidak perlu khawatir akan adanya trial atau
pembayaran.

375
Software EAGLE yang digunakan pada pembahasan kali ini menggunakan
EAGLE versi 5.11, sehingga komponen yang terdapat pada versi ini akan lebih lengkap
dibanding versi sebelumnya. Cara penggunaan Software EAGLE dalam membuat skematik
rangkaian sangatlah mudah berikut tampilan dan penjelasan tentang masing masing tools

Gambar 9.1 Tampilan Software EAGLE


Keterangan :
- No.1 adalah pilihan untuk memulai pembuatan skematik atau project baru
- No.2 adalah pilihan untuk membuka project atau skematik yang disimpan sebelumnya
- No.3 adalah pilihan untuk menutup project
- No.4 adalah pilihan untuk mengakhiri software EAGLE.

Untuk memulai pembuatan skematik dapat dilakukan dengan cara memilih New >
Schematics sehingga akan memunculkan tampilan seperti Gambar 9.2

Formatting Tools

Layar Kerja

Toolbox

Gambar 9.2

376
a. Komponen Toolbox :

1 2 3 4 5 6 7

13 8 9 10 11 12

Penjelasan:
- No.1 untuk membuat bentuk kotak persegi atau persegi panjang
- No.2 untuk membuat bentuk lingkaran
- No.3 untuk memberikan atau mengganti nama dari suatu komponen atau net
- No.4 untuk menghapus komponen atau net
- No.5 untuk mengubah posisi hadap komponen
- No.6 untuk menggerakkan komponen ke daerah lain
- No.7 untuk menampilkan mode kerja pada layar kerja
- No.8 untuk membuat huruf atau angka pada skematik
- No.9 untuk menampilkan pin yang belum ada pada komponen misal VCC dan GND
- No.10 untuk memberikan nilai pada suatu komponen
- No.11 untuk mengambil komponen dari library
- No.12 untuk melakukan duplicate komponen
- No.13 untuk memasang net pada skematik

b. Formatting Tools :
1 2 3 4

5 6 7 8 9 10 11

Penjelasan:
- No.1 untuk menyimpan file, membuka file, membuat file baru dan project baru
- No.2 untuk undo, redo dan memilih komponen toolbox
- No.3 untuk membuat bentuk kotak, lingkaran, garis dll.
- No.4 untuk memperbesar atau memperkecil mode tampilan layar kerja
- No.5 untuk mengatur jarak geser / gerak komponen dan net
- No.6 untuk membuka file atau project

377
- No.7 untuk menyimpan file
- No.8 untuk mengeprint file
- No.9 untuk mengeksport dan berpindah ke mode board
- No.10 untuk melakukan zoom in tampilan layar kerja
- No.11 untuk melakukan zoom out tampilan layar kerja

Komponen-komponen pendukung pada software Eagle yang telah dijelaskan


diatas digunakan sebagai suatu alat yang bisa untuk membuat skematik, untuk mengambil
komponen dari library dapat memilih pilihan pada toolbox yang bernama “ADD” sehingga
akan nampak seperti gambar berikut.

Gambar 9.3 Tampilan Library

Pilihlah komponen yang akan dipasang dan dipakai untuk project skematik yang
akan dibuat, pilih satu per satu tiap komponen yang akan digunakan pada skematik, setelah
yakin akan memilih suatu komponen tekan tombol OK pada layar library.
Setelah komponen yang dibutuhkan telah terambil melalui library pada Eagle,
langkah berikutnya yaitu memberikan “net”, fungsi dari net ini adalah untuk menghubungkan
antar satu komponen dengan komponen yang lain, sehingga komponen yang terkena net
secara langsung pada skematik, akan berhubungan arus listrik secara langsung pula pada
rangkaian nyatanya. Berikut cara melakukan “netting”, pertama pilih option net pada toolbox,
lalu klik satu kali pada ujung kaki komponen, kemudian klik pula pada ujung komponen yang
lain yang berhubungan langsung, sehingga akan nampak seperti gambar berikut.

378
NET

Gambar 9.4 Tampilan Net Pada Layar Kerja

Setelah semua komponen telah diambil dan dilakukan netting, maka langkah
berikutnya adalah mengeksport tampilan dari skematik ke tampilan board, untuk fungsi
toolbox dan formatting tools yang ada pada layar board masih sama seperti yang ada di
skematik. Berikut tampilan dari board.

Gambar 9.5 Tampilan Dari Layar Board

Fungsi dari layar board berbeda dengan layar skematik, jika layar skematik
hanyalah mengambil komponen dan menghubungkannya dengan komponen lain melalui
netting, namun untuk layar board berbeda, disini komponen yang tersedia adalah komponen
dari skematik, sehingga tidak diperbolehkan untuk menambah komponen lagi, pada layar
board ini juga difokuskan hanya untuk menempatkan posisi komponen dan
menghubungkannya menurut net yang telah dibuat pada skematik.

379
Setelah semua komponen ditata pada posisinya dan ditempatkan pada posisi yang
terbaik, langkah berikutnya adalah memberikan “route”, route disini fungsinya adalah untuk
menghubungkan komponen satu dengan yang lainnya sehingga komponen tersebut
terkoneksi dengan aliran arus dan tegangan. Berikut hasil dari route.

Route

Gambar 9.6 Tampilan Route Pada Komponen

Cara penggunaan dari route ini sama seperti penggunaan dari net, yaitu dengan
klik pada bagian ujung komponen dan klik lagi pada ujung komponen yang dituju, sehingga
akan menghasilkan garis yang berwarna biru atau merah tergantung pilihan layer.
Perlu diperhatikan pada bagian layer di board ini, terdapat dua buah warna untuk
route yaitu merah dan biru, layer merah menandakan bahwa route tersebut berada diatas
PCB, biasanya route merah ini untuk membuat rangkaian pada PCB double side atau kata
lainnya PCB bolak-balik. Namun tidak semuanya route merah ini untuk membuat rangkaian
pada PCB double side, pada PCB single side, route merah ini biasa digunakan untuk jumper
jalur yang tidak kebagian tempat untuk menghubungkannya, karena sangat banyaknya route
yang ada, sehingga ada komponen yang tidak bisa dilakukan routing ke komponen tujuan,
jadi pada board aslinya akan dilakukan jumper menggunakan kabel jumper pada PCB. Cara
untuk mengganti route merah dengan route biru atau sebaliknya bisa dilakukan pada menu
berikut.

Layer Atas
Layer Bawah

Gambar 9.7 Tampilan Menu pengubahan Layer

Biasanya untuk pemula adalah membuat rangkaian pada PCB single side, karena
PCB ini sangat mudah untuk dibuat rangkaian, jadi route yang digunakan adalah route

380
berwarna biru yang mengindikasikan bahwa route tersebut ada dibawah kompoonen, bukan
berada diatas komponen.
Setelah semuanya telah dilakukan meliputi pembuatan skematik lalu dieksport ke
layar board, dari layer board ini kemudian di print ke printer dengan settingan berikut.

Gambar 9.8 Tampilan Menu Layer

Pada tampilan menu layer, yang diaktifkan hanyalah tiga item yaitu Bottom,
Pads, dan Vias, yang lainnya dinon-aktifkan , ini adalah mode untuk melakukan print ke
device printer, berikut adalah tampilan file.pdf setelah dilakukan print melalui menu File >
Print.

Gambar 9.9 Tampilan Output Print

b. Menyetrika kertas glossy


Langkah ini adalah langkah lanjutan dari file yang telah diprint dan telah
dihardcopy disuatu kertas HVS, kertas HVS ini di fotocopy perbanyak ke kertas glossy atau
kertas foto, kenapa menggunakan kertas glossy? Karena kertas ini jika terdapat garis atau

381
tinta, jika disetrika pada bagian belakang kertas, maka tinta tersebut bisa tercap / lengket /
terlukis ke object yang digunakan sebagai landasan saat menyetrika, nah, object untuk
landasan saat menyetrika kertas glossy yang berisi rangkaian skematik ini adalah PCB,
sehingga pada bagia PCB yang terbuat dari campuran kuningan akan tercap oleh goresan
skematik dari kertas glossy.
Setelah kertas glossy disetrika diatas PCB, langkah berikutnya yaitu mencelupkan
kertas glossy yang tertempel pada PCB saat disetrika ke dalam air, sehingga kertas glossy
tersebut bisa terkelupas saat bagian kertas glossy digosok, dengan meninggalkan goresan
rangkaian skematik yang akan dibuat rangkaian.
Langkah berikutnya setelah pada bagian kuningan PCB terdapat goresan
skematik adalah mencelupkan PCB tersebut kedalam larutan Fericlorit (FeCl3), larutan ini
bisa mengelupaskan kuningan yang terdapat di PCB namun tidak dengan goresan
skematiknya. Jadi setelah dicelupkan di larutan Fericlorit dalam beberapa menit, akan
menghilangkan semua kuningan yang ada di PCB, sehingga yang nampak pada PCB
hanyalah goresan skematik dari kertas glossy tadi.
Langkah berikutnya yaitu menghilangkan goresan skematik dari kertas glossy
dengan menggunakan cairan tinner atau minyak tanah, karena cairan ini sangat cocok sekali
untuk menghilangkan tinta yang ada diatas kuningan PCB.
Setelah dibersihkan dari goresan hitam skematik, maka akan tampak goresan
kuningan dari PCB yang tersisa, yang mana membentuk seperti alur dari skematik rangkaian
yang dibuat pada software EAGLE sebelumnya. Langkah terakhir setelah semua langkah
dilakukan yaitu melakukan pengeboran pada bagian drill skematik dan melakukan
penyolderan dengan komponen terkait.
Itulah beberapa langkah yang biasa dan umum dilakukan untuk membuat suatu
rangkaian pada PCB, yang harus diperhatikan adalah tidak terbaliknya posisi komponen saat
dilakukan penyolderan karena itu berakibat fatal jika rangkaian diaktifkan.

382
BAB 10
Penutup

Terima kasih kepada pembaca yang telah menggunakan buku ini sebaik-baiknya
untuk kepentingan bersama, kami berharap buku ini bisa bermanfaat bagi masyarakat luas
terutama bagi yang ingin belajar membuat alat dan robot, karena masyarakat indonesia rata-
rata memiliki kemampuan tentang daya imaginasi dan kecerdasan yang tinggi, maka dari itu
rugi sekiranya jika tidak diterapkan ke bidang teknologi, jika rata-rata masyarakat indonesia
bisa handal di bidang teknologi maka indonesia akan menjadi industri teknologi yang kuat
menyaingi cina dan jepang.
Besar harapan kami agar buku ini bisa dimanfaatkan untuk kepentingan bersama
bukan untuk kepentingan komersial semata, karena tujuan penulis membuat buku ini agar
masyarakat indonesia yang ingin belajar mengenai teknologi bisa terealisasikan impiannya
melalui tutorial pada buku ini.
Komentar dan saran yang membangun sangat kami harapkan guna membuat buku
ini lebih bagus dan lebih baik untuk masyarakat indonesia terutama bagi pemula didalam
belajar masalah teknologi. Komentar dan saran bisa dikirimkan ke E-mail:
yanuarm@hotmail.com

383
BONUS ARTICLE

A. Koneksi VB 6.0 ke Database Ms. Access


Dibagian ini akan dibahas bagaimana cara membuat aplikasi database dengan
menggunakan VB 6.0 dan databasenya menggunakan Ms. Access 2007, mengapa artikel ini
diberikan ? apakah fungsinya untuk bidang elektronika?, jawabannya yaitu karena kebanyakan
tugas akhir mahasiswa terutama yang mengambil jurusan computer dan elektronika rata-rata
diharuskan menggunakan database, maka dari itu pada sesi tambahan ini akan dibahas
bagaimana cara membuat suatu database yang sederhana menggunakan Ms. Access 2007 dan
dikonfigurasikan dengan program visual basic 6.0. Gambar A.1 adalah tampilan program visual
basic 6.0 yang akan dibuat.

Gambar A.1 Tampilan Program Interface VB6.0

Buatlah program seperti Gambar A.1, yang mana terdapat komposisi-komposisi


komponennya, berikut ini adalah table penjelasan tentang komposisi program tersebut.

384
Komponen Properties
Tombol 1 Caption : Delete
Name : cbdelete
Tombol 2 Caption : Select
Name : cbselect
Tombol 3 Caption : Insert
Name : cbinsert
Tombol 4 Caption : Exit
Name : Command1
TextBox1 Name : tbnama
Text : None
TextBox2 Name : tbemail
Text : None
TextBox3 Name : tbpasswd
Text : None
Label1 Name : Label1
Caption : NAMA
Label2 Name : Label2
Caption : E-mail
Label3 Name : Label3
Caption : Password
Timer1 Name : Timer1
Interval : 100
Enabled : True
DataGrid Name : DataGrid2
DataSource : Adodc2
Adodc Name : Adodc2
Caption : Adodc2

385
A.2 Bagaimana cara mendapatkan DataGrid dan Adodc?

Pertama, klik kanan pada ToolBox, maka akan tampak seperti gambar berikut,
pilihlah menu “Components”.

ToolBox

Setelah itu Import komponen DataGrid dan Adodc dengan cara beri “check list” pada
kedua komponen berikut, kemudian tekan tombol “Apply” lalu “OK”

Microsoft Ado data Control 6.0

Microsoft DataGrid Control 6.0

386
A.3 Bagaimana Susunan File-nya?

Jadi pada project VB 6.0 ini seperti gambar dibawah ini, terdapat dua File yaitu satu
file.frm yang bernama databaseq.Frm dan satu lagi adalah module bernama Module1.bas, untuk
pembuatan file form dan file module lihat gambar berikut.

Cara Membuat file.frm baru dan module baru yaitu klik kanan “project” maka akan
tampak menu pilihan berikut, pilihlah ADD Form untuk file.frm baru, namun untuk membuat
module baru pilih ADD Module

Klik kanan disini

Untuk Form baru


Untuk Module baru

387
A.4 Bagaimana Program / Coding visual Basic 6.0 nya?

Berikut ini adalah program / coding untuk Form dengan nama databaseq.Frm dan
untuk modulenya dengan nama Module1.bas,

Program untuk MainForm (databaseq.Frm)


‘----------------------------------------------------------------------------
Dim Conn1 As ADODB.Connection
Dim Cmd1 As ADODB.Command
Dim Param1 As ADODB.Parameter
Dim Rs1 As ADODB.Recordset
‘---------------------------------------------
Private Sub cbdelete_Click()
Dim SQl As String

Call dbConnect

SQl = "DELETE FROM Table1 WHERE Nama = '" & tbnama.Text & "'"

Dim Rs As Recordset
Set Rs = New ADODB.Recordset
Rs.Open SQl, Conn, adOpenDynamic, adLockOptimistic

tbnama.Text = ""
tbemail.Text = ""
tbpasswd.Text = ""

End Sub
‘--------------------------------------------
Private Sub cbinsert_Click()
Dim SQl As String

Call dbConnect

SQl = "INSERT INTO Table1 VALUES('" & tbnama.Text & "','" &
tbemail.Text & "','" & tbpasswd.Text & "')"

Dim Rs As Recordset
Set Rs = New ADODB.Recordset
Rs.Open SQl, Conn, adOpenDynamic

tbnama.Text = ""
tbemail.Text = ""
tbpasswd.Text = ""
End Sub
‘-------------------------------------------
Private Sub cbselect_Click()
Dim SQl As String

388
Call dbConnect

SQl = "Select * from Table1 where Nama = '" & tbnama.Text & "'"

Dim Rs As Recordset
Set Rs = New ADODB.Recordset
Rs.Open SQl, Conn, adOpenDynamic, adLockOptimistic

If Not Rs.EOF Then


tbemail.Text = Rs!Email
tbpasswd.Text = Rs!Password
End If
End Sub
‘-----------------------------------------------
Private Sub Command1_Click()
Unload Me
End Sub
‘-----------------------------------------------
Private Sub Timer1_Timer()
Adodc2.Refresh
End Sub
‘-------------------------------------------------------------------------------

Program untuk Module (Module1.bas)

‘------------------------------------------------------------------------------
Public Conn As New ADODB.Connection
Public Rs As New ADODB.Recordset
Public SQl As String
Public i As Byte
‘---------------------------------------------
Public Sub dbConnect()
Set Conn = New ADODB.Connection
Conn.ConnectionString = strConn
Conn.Open
End Sub
‘---------------------------------------------
Public Function strConn() As String
Set Conn = New ADODB.Connection
Set Rs = New ADODB.Recordset
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=E:\Software\Interface\Katalog\Database1.mdb;Persist Security
Info=False"

End Function

389
A.5 Bagaimana cara membuat Database di Ms. Access

Cara membuat database di Ms. Access 2007 sangatlah sederhana, berikut adalah langkah
untuk membuat database pada Ms. Access 2007
 pertama buka Ms Access 2007 lalu isikan nama database misal “Database1” kemudian
tekan tombol “create”
 maka akan tampak database baru yang dibuat, kemudian tekan tombol “view” di pojok
kiri atas, sehingga akan menampilkan tampilan seperti gambar berikut

Isikan pada “Field Name” dan “Data Type” seperti gambar diatas, setelah itu klik
kembali pada menu “Vew” di pojok kiri atas, maka akan tampil seperti gambar dibawah ini.

390
Itu artinya database telah dibuat pada Ms. Access 2007, langkah selanjutnya yaitu
menyimpannya pada suatu folder, langkah-langkahnya yaitu pilih File  Save As  Ms. Access
2003, biasanya file database yang telah disimpan akan otomatis tersimpan di
“Libraries\Documents” pada komputer Saudara, untuk langkah “Save As” seperti pada gambar
berikut.

391
A. 6 Bagaimana cara koneksi Database Ms. Access dengan VB 6.0 ?

Pertama klik pada komponen “Adodc2”, kemudian pilih propertisnya, pilih menu
“ConnectionString” sehingga akan muncul jendela seperti gambar, klik pada tombol “Build”.

Arahkan ke database yang disimpan / dituju

Untuk mengetes koneksi ke database yg dituju

392
Pada Tab “Provider” pilih “Microsoft Jet 4.0 OLE DB Provider” dan pada tab
“Connection” arahkan pada program database yang dibuat sebelumnya dengan menggunakan
Ms. Access, yang mana letak defaultnya adalah pada “Libraries\Documents”, untuk menguji
apakah database telah terhubung atau belum, tekan tombol “Test Connection”, jika ada warning
“Test Connection Succeeded” berarti database telah terkoneksi dengan baik dengan VB6.0, Jika
semua sudah dilakukan maka klik tombol “Apply” lalu “OK”.
Kembali ke properties dari komponen “Adodc2”, kali ini pilih menu properties
“RecordSource”, sehingga akan tampak seperti gambar dibawah ini, pilih Command Type
berupa “1-adCmdText” dan masukkan Command Text (SQL) berupa “Select*from Table1”.
Kemudian klik tombol “Apply” lalu”“OK”

Kemudian pindah ke menu komponen properties dari “DataGrid2”, yang mana


fungsi dari “DataGrid2” ini adalah untuk menampilkan data yang ada pada database Ms. Access
yang telah dibuat sebelumnya ke layar VB 6.0.. Pada menu propertie “DataGrid2” pilih menu
“DataSource”, lalu isikan menu tersebut dengan pilihan “Adodc2”, jika berhasil maka tidak ada
warning error yang muncul.

393
A. Bagaimana hasil akhir dari program VB 6.0 dengan Database Ms. Access nya ?

Jika telah berhasil dalam mengikuti semua langkah-langkah yang dijelaskan


sebelumnya, maka untuk hasil akhir dari program ini yaitu akan seperti pada gambar dibawah
ini, Tombol Insert untuk melakukan input data ke database, tombol Delete untuk menghapus data
yang ada pada database, dan menu Select adalah untuk memilih data yang ada di database.

SELAMAT MENCOBA……………!!!

394
BONUS ARTICLE

-- Cara memisahkan data input serial ke VB 6.0

Pada bonus article ini akan dibahas mengenai bagaimana cara membuat interface
visual basic dengan data input serial yang lebih dari satu, misalnya data sensor SHT11 atau
DHT11 yang mana sensor tersebut bisa mendeteksi dua buah kondisi yaitu kondisi pada
kelembaban dan kondisi suhu, maka dari itu akan ada trik khusus untuk membuat interface visual
basic 6.0 nya. Berikut adalah bagan skema kerja dari komunikasi serial

Minimum Komputer PC
System Kabel DKU-5 atau Laptop

Rx, TX, GND Port USB

Pertama yang harus dibuat adalah program bascom AVR untuk mengeluarkan output
ke visual basic 6.0 melalui komunikasi serial, berikut adalah contoh program bascom AVR untuk
mengeluarkan nilai sensor LM35 berupa data Suhu, Suhu1 dan Suhu2

$regfile = "m8535.dat"
$crystal = 4000000
'==========================
Config Lcdpin = Pin , E = Portc.1 , Rs = Portc.0 ,
Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 ,
Db7 = Portc.5
Config Lcd = 16 * 2
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
'--------------------------
Dim Suhu_ref As Word
Dim Suhu As Word
Dim Suhu1 As Word
Dim Suhu2 As Word
'--------------------------
Deflcdchar 0 , 12 , 18 , 18 , 12 , 32 , 32 , 32 , 32
'--------------------------
Cls
Cursor Off
'--------------------------

395
Do
Suhu_ref = Getadc(7)
Suhu = Suhu_ref * 5
Suhu = Suhu / 10
Suhu = Suhu - 225
Suhu1 = Suhu - 100
Suhu2 = Suhu - 110

Locate 1 , 1
Lcd "**THERMOMETER***"
Locate 2 , 1
Lcd "Suhu="
Locate 2 , 6
Lcd " "
Locate 2 , 6
Lcd Suhu
Locate 2 , 9
Lcd Chr(0)
Locate 2 , 10
Lcd "C"
Locate 2 , 11
Lcd " "

Print Suhu
Print Suhu1
Print Suhu2

Wait 1
Loop

Setelah membuat program bascm AVR, kemudian membuat tampilan interface visual
basic 6.0 yang mana tidak jauh berbeda dengan tampilan interface serial yang sebelumnya telah
dijelaskan, pada tampilan interface ini memakai 4 buah text box, yang diberikan nama text1 dan
Text2, Gambar A adalah tampilan interface yang akan dibuat, berikut adalah penjelasan
lengkapnya.

396
Text2

Text1

Gambar A Tampilan Interface Serial

Item Setting
Tombol 1 Caption : Mulai
Name : start
Tombol 2 Caption : Stop
Name : berhenti
Tombol 3 Caption : Exit
Name : Command2
MSCOMM Name : MSComm2
Timer1 Name : TimerBaca
Interval : 1000
Enabled : False
ComboBox Text : PilihCOM
Name : ComboCOM
TextBox Name : Text1
Text : None
MultiLine : False
TextBox Name : Text2
Text : None
Index : 0
TextBox Name : Text2
Text : None
Index : 1
TextBox Name : Text2
Text : None
Index : 2

397
Program Visual Basic untuk tampilan diatas :

Option Explicit
Dim arrdata()
Dim TotalBaca As Integer
Dim BMI As Single
Dim Keterangan As String
Const MAKSBACA = 10
‘------------------------------
Private Sub berhenti_Click()
start.Enabled = True
berhenti.Enabled = False
TimerBaca.Enabled = False
End Sub
‘------------------------------
Private Sub Command2_Click()
Unload Me
End Sub
‘------------------------------

Private Sub Form_Load()


Dim i As Byte
For i = 1 To 16
ComboCOM.AddItem (i)
Next i
End Sub
‘------------------------------

Private Sub MSComm2_OnComm()


Dim buffer As String
Dim temp As String
Dim pisah() As String
Dim i As Integer

If MSComm2.CommEvent = comEvReceive Then


buffer = MSComm2.Input
pisah = Split(buffer, Chr$(13))
On Error Resume Next
If buffer <> " " Then
With Text1
.SelStart = Len(.Text)
.SelText = buffer
End With
For i = 0 To 3
If 0 < 4 Then
Text2(i).Text = CStr(pisah(i))
End If
Next i
Else
buffer = " "
End If

398
End If
End Sub
‘---------------------------------------

Private Sub start_Click()


Dim u As Integer

On Error GoTo ada_eror

MSComm2.CommPort = ComboCOM.Text
MSComm2.Settings = "9600,N,8,1"
MSComm2.RThreshold = 15
MSComm2.InputLen = 15
MSComm2.InputMode = comInputModeText
MSComm2.PortOpen = True ' buka port

ReDim arrdata(1 To MAKSBACA + 1)


For u = 1 To MAKSBACA
arrdata(u) = 0
Next
TotalBaca = 0
start.Enabled = False
berhenti.Enabled = True
TimerBaca.Enabled = True
ada_eror:
If ComboCOM.ListIndex < 1 Then
MsgBox "COM berada di Nomor : " & Err.Number & vbCrLf &
Err.Description, vbCritical + vbOKOnly, "ERROR"
start.Enabled = True
berhenti.Enabled = True
ComboCOM.Text = "Pilih COM"
End If
End Sub
‘-----------------------------------

Private Sub TimerBaca_Timer()


Dim strInput As String
Dim strPotong As String
Dim singleInput As Single
Dim u As Integer
strInput = MSComm2.Input
strPotong = strInput
'Text1.Text = Text1.Text + strPotong + vbCrLf
'singleInput = Val(strPotong)
'Label1.Caption = singleInput
If TotalBaca >= MAKSBACA Then
TimerBaca.Enabled = False
If MSComm2.PortOpen = True Then MSComm2.PortOpen = False
Call berhenti_Click
End If

End Sub

399
Untuk menjalankan program tersebut sama langkahnya seperti menghidupkan
interface komunikasi serial, yaitu dengan memilih port yang digunakan oleh kabel DKU-5, misal
kabel DKU-5 yang terpasang dikomputer terdeteksi port 8, maka pada ComboBox dipilih port 8,
kemudian klik / tekan tombol “mulai”, maka program telah berhasil dibuat / aktif, pada
TextBox2 akan terisi oleh tiga buah nilai yaitu nilai “Suhu”, “Suhu1” dan “Suhu2”.dan pada
TextBox1 akan terisi semua nilai yaitu “Suhu”,”Suhu1”, “Suhu2” secara vertical.

400
Profil Penulis

Yanuar Mukhammad ST. adalah seorang penggila elektronika yang


berasal dari Kota Batang, Jawa Tengah, Lahir di Kota Pekalongan
pada tanggal 20 Februari 1991, Beliau menyelesaikan pendidikan
petamanya di jenjang Diploma (D3) Universitas Gadjah Mada
(UGM) jurusan elektronika dan instrumentasi (ELINS) tahun 2012,
yang kemudian melanjutkan studi hingga bergelar sarjana di Institut Teknologi
Sepuluh Nopember Surabaya (ITS) jurusan elektronika pada tahun 2014,
Sekarang masih aktif dibidang pembuatan alat elektronika baik itu berjenis
robot maupun perangkat elektronika yang lain, selain berkecimpung di dunia
elektronika, aktifitas yang lain adalah membuat game 3D dengan software Unity
3D, dan buku karangan Yanuar Mukhammad selain buku ini adalah Buku yang
berjudul “Membuat Game 3D dengan Unity 3D”

401
Kata – Kata Mutiara :

“Seorang ‘alim apabila menghendaki dengan ilmunya keridhaan Allah,


maka dia akan ditakuti oleh segalanya. Akan tetapi, jika dia bermaksud
untuk menumpuk harta, maka dia akan takut dari segala sesuatu.”
demikian sabda Nabi SAW.
[HR. Ad Dailami]

ADA USAHA, ADA HASIL


There is An EFFORT and PASSION, There is A RESULT

Siapa yang menanam, Dia yang akan memanen

-------------000--------------

402
DAFTAR PUSTAKA

Polinema, Matrik. 2011, Pengertian Resistor,


http://matrikpolinema.forumotion.com/t8-pengertian-dan-jenis-resistor .
diakses tanggal 21 September 2012

Legoka. 2011, Pengertian Kapasitor. http://legokan.blogspot.com/2011/02/definisi-


dan-fungsi-kapasitor-sebagai.html . diakses tanggal 21 September 2012

Anonim, 2010, Tutorial RFID, http://kampungrobot.com/?p=1590 diakses tanggal 3


oktober 2012

Wikipedia. 2012. Pengertian transistor. http://id.wikipedia.org/wiki/Transistor.


diakses pada tanggal 21 september 2012

Sabrina, Abi. 2010. Pengertian transistor.


http://abisabrina.wordpress.com/2010/08/14/fungsi-dasar-transistor/diakses
pada tanggal 21 september 2012

Anonim. 2010. Rangkaian RS232.


http://www.batronix.com/shop/evaluationboards/expboardsIandII/module-
rs232.html diakses pada tanggal 21 september 2012

Anonim, 2010 , mikrophone dinamis dan mikrophone kondenser, http://elektronika-


dasar.com/teori-elektronika/microphone/ diakses pada tanggal 29 september
2012

Anonim, 2012, rangkaian Preamp-mic,


http://www.duniakomunikasi.com/2012/04/rangkaian-preamp-mic-
sederhana.html diakses pada tanggal 29 september 2012

Indragunadi, 2008, pengukuran berat badan ideal,


http://indragunadisantosa.wordpress.com/2008/08/01/parameter-untuk-
menentukan-berat-badan-ideal/ diakses pada tanggal 30 september 2012

Anonim, 2008, how to fix dead atmega and attiny avr chip,
,http://www.instructables.com/id/How-to-fix-dead-atmega-and-attiny-avr-
chips/#step1, diakses pada tanggal 4 oktober 2012

403
E. P, Agfianto, 2010, Mudah Menguasai Pemrograman Mikrokontroler Atmel AVR
Menggunakan BASCOM-AVR, Yogyakarta : ELINS - Universitas Gadjah
Mada

Setiawan, Afrie. 2011. 20 Aplikasi mikrokontroler ATMega8535 & ATMega16.


Yogyakarta : Andi Yogyakarta

Tim Pustaka ITB, 2011, Jago Membuat Robot. Bekasi : Dunia komputer

Widodo, Budiharto. 2008. 10 proyek robot spektakuler. Jakarta: Elek Media


Komputindo.

Ibrahim, K. F. 1996. Teknik Digital. Yogyakarta: Andi Yogyakarta.

404
PANDUAN
MENGGUNAKAN
DOWNLOADERAVRUSB
Petunjuk Instalasi Downloader AVR USB
1. Hubungkan downloader pada computer atau notebook , maka akan tampil :

2. Lalu keluar tampilan :

Lalu pilih “install from a list or specific location(advance)” , kemudian pilih


“next”

405
3. Lalu pilih “search for the best driver in these location” kemudian pilih folder
tempat menyimpan file AVR USB pada “include this location in the search” lalu
“browse”. Kemudian “ok”.

4. Setelah itu tinggal tunggu proses install nya.

Setelah selesai klik “next”.

406
5. Klik “finish”

6. Setelah proses instalasi selesai maka pada pojok kanan bawah computer anda akan
muncul seperti ini :

407
7. Langkah selanjutnya kita cek pada device manager

Jika sudah terdapat “robotics cinta USB-DEVICE” maka AVR USB siap di coba.
Selain itu cek lampu LED pada AVR USB nya, LED standby menyala dan ada satu
yang mati ini disebut LED Busy. LED ini akan menyala ketika saat mendownload.

408
8. Sekarang kita persiapkan USBASP.exe . tampilannya seperti ini:

Pada “Configuration” isikan kolom “location of avrdude” dengan “avrdude.exe”


dan kolom “location of alternate configuration file” dengan “avrdude.conf”

409
Pada “-p Device” pilih jenis mikrokontroller yang di pakai. Lalu pada “ –c
Programmer ” pilih jenis “usbasp” , pada “-p Port ” isikan dengan “usb” dan pada
“-b Baudrate ” isikan “9600” yang lain diabaikan.

410
9. Untuk memasukkan target file yang akan di download pilih pada TAB Files
Disana terdapat lokasi file yang akan ditulis atau di baca ke flash dan eeprom

.
Pilih file yang akan di tulis ke flash missal pada contoh ini saya masukkan file dengan
nama wedew.hex . Untuk format lebih aman pilih yang “autodetect”.

411
10. Untuk mengatur fuse bits lihat pada TAB FUSES. Jika dipilh tab fuses maka akan
muncul seperti ini.

untuk mengatur crystal internal atmega 32 kita tinggal melakukan pengaturan pada low fuse
dan high fuse avr dude. Misal untuk crystal; internal 12Mhz
Untuk mengisinya liat table berikut :

Tabel konfigurasi crystal ATMEGA 8535


CRYSTAL LOW FUSE HIGH FUSE
1 Mhz(internal) E1 D9
2 Mhz(internal) E2 D9
4Mhz(internal) E3 D9
8Mhz(internal) E4 D9
12 mhz(eksternal) FF C9

412
Tabel konfigurasi crystal ATMEGA 16
CRYSTAL LOW FUSE HIGH FUSE
1 Mhz(internal) E1 D9
2 Mhz(internal) E2 D9
4Mhz(internal) E3 D9
8Mhz(internal) E4 D9
12 mhz(eksternal) FF C9

Tabel konfigurasi crystal ATMEGA 8


CRYSTAL LOW FUSE HIGH FUSE
1 Mhz(internal) E1 D9
2 Mhz(internal) E2 D9
4Mhz(internal) E3 D9
8Mhz(internal) E4 D9
12 mhz(eksternal) FF C9

Tabel konfigurasi crystal ATMEGA 32


CRYSTAL LOW FUSE HIGH FUSE
1 Mhz(internal) E1 D9
2 Mhz(internal) E2 D9
4Mhz(internal) E3 D9
8Mhz(internal) E4 D9
12 mhz(eksternal) FF C9

11. Setelah semua settingan selesai sekarang klik tombol “execute”. Jika terdapat
tampilan seperti ini :

Maka tidak ada mikro yang akan di program atau mikro rusak

413
Jika tampilannya seperti ini :

Mungkin usb downloader belum terhubung dengan computer.

Jika tampilannya seperti ini :

Maka program yang didownload sukses..

Jika mau membaca eeprom maka buat dulu file “kosong” misalnya “kalibrasi.hex”

dengan catatan yang di centang hanya read pada eeprom sadja.

414
Jika mau menulis ke eeprom,

Maka centang pada kolom write eeprom..

Nb: jika anda ingin mendownload dengan super cepat, maka lepaskan jumper yang
terpasang pada USB Downloader. Ini hanya berlaku pada mikrokontroller yang sudah
disetting fuses bit-nya.

415

Você também pode gostar