Electronics Art Belajar Robot
Electronics Art Belajar Robot
Electronics Art Belajar Robot
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
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.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%.
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
3
Gambar 1.7 Simbot Fotoresistor / LDR Gambar 1.8 Bentuk Fotoresistor / LDR
1 2 3 4
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
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)
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.
g
Gambar 1.12 Kapasitor Milar Gambar 1.13 Kapasitor Keramik Gambar 1.14 Kapasitor elco
b. Kapasitor Variabel
7
1.1.3 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.
9
negatif dan akibatnya transistor menjadi jenuh (ON) lalu kaki emitor dan kaki kolektor
tersambung. Untuk mematikan LED maka posisi SW1 harus OFF.
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.
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.
ATMEL
MCS AVR
13
Gambar 1.21 Bentuk ATMega8
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.
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.
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
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 -
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
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:
Contoh penggunaannya :
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 :
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 :
Cara penggunaanya :
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 :
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:
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 :
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
26
G. GOSUB
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
For X = 0 To 9 1
Led_menyala_1
Next
EXIT FOR
28
BAB 2
Downloader
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
Keterangan :
NAMA FUNGSI
MOSI Jalur data masuk 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..
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.
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.
32
Ke Minimum System
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.
34
MOSI VCC
MISO GND
USB SCK USB
Downloader Downloader
Komputer lama RESET baru
USBasp.hex
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
36
a. Pada Menu File
37
Untuk menggunakan software download lain seperti “ProgISP” terdapat beberapa
setting-an khusus yang perlu diperhatikan, seperti gambar berikut.
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
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.
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.
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.
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.
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.
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.
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.
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
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
Keterangan:
- 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
45
Ke RX, TX
Minimum System
Bahan-bahan:
a. Capasitor Polar 1uF / 16v x 4 buah
b. DB9 male / female x 1 buah
c. IC MAX232 x 1 buah
46
BAB 4
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
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.
Bahan-Bahan:
a. ATMega8 x 1 buah
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.
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.
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
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
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:
2. Robot Balancing
54
3. Robot Pemadam Api
4. Robot Avoider
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
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.
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.
Photo Dioda
Track / Lintasan
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.
a. Kontroler Proportional
Persamaan matematis =
u(t) = KP . e(t)
59
Diagram blok
b. Kontroler Integral
Persamaan Matematis =
t
u (t ) K i e(t )dt
0
60
Diagram blok
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
Respon Berosilasi
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
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
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.
64
5.2.1 Prinsip Kerja Robot
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.
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
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.
67
Keterangan :
Led Super Bright Putih / Infrared
Photo Dioda
Resistor 330 ohm
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
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
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
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.
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.
72
Declare Sub Maju_dikit
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)
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
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
Waitms 50
Loop Until Tombol1 = 0
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
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)
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
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
Set Portb.0
Set Portb.1
Set Portb.2
Set Portb.3
Reset Portc.7
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 A As Byte
'================================================================
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
Bobot_lalu = Bobot
X = 0
Response:
Incr X
Call Ceksensor
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
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
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
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 = 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
88
Sensor.5 = 1
Set Regkir.1
End If
If Dataadc5 < Vref5 Then
Waitms 1
Sensor.5 = 0
End If
End Sub
'=======================================
Liatadc:
Do
Call Bacaadc
Call Ceksensor
Cls
Locate 2 , 5
Lcd Bin(sensor)
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
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 >============
Sub Ceksensor
Call Bacaadc
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
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:
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
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
Minimum System
Roda
Roda
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
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
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.
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
100
b. Rangkaian Minimum System ATMega16
Bahan-Bahan :
Ke sensor
Downloader
LCD
Regulator
Ke Motor driver
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
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
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.
103
Input 2 1 0 1 1
Input 3 1 0 1 1
Input 4 0 1 0 0
'------------------
'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
'------------------------
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 , "#.#")
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
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.
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.
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
Ke Minimum System
Pada Pin INT0
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.
BUZZER
LCD
REGULATOR
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
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
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
Maju
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.
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
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.
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.
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 JY-MCU
Motor Driver
Downloader
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.
119
6.2.227.11. Penggunaan software Bluesoleil ini cukup mudah yaitu aktifkan softwarenya
sehingga nampak seperti gambar berikut.
Port Serial
120
Gambar 5.5g Tampilan Menu General
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.
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
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.
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
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
Downloader
Motor driver
LCD
Ke APC220 slave
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.
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
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
‘-----------------------------
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
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
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.
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.
Mikro Servo
Kepala Robot
Badan Robot
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.
Mikro servo
Komputer Minimum
Kabel DKU-5
System
LED SB 5mm
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.
Ke PortC.0
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.
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.
133
Ke Rangkaian LED
Ke kabel DKU-5
Ke Mikro servo
Downloader
134
Servo(1) = 220
Case "6" : ‘menggerakkan servo
Servo(1) = 10
End Select
Loop
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
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
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.
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.
Mikrokontroler hanya bertugas untuk menmpilkan data yang ditangkap oleh sensor
kemudian ditampilkan ke layar LCD dan pada interface visual basic.
GND
Data
VCC
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
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.
139
Ke pengkondisi sinyal
Downloader
Lcd
Komunikasi Serial
SAVE
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
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:
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
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.
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.
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
Ke DHT11
Downloader
LCD
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
Do
Waitms 1500
Call Get_th(t , H)
Cls
Lcd "TMP: " ; T ; "C"
Lowerline
Lcd "PHP: " ; H ; "%"
Loop
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
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
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.
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
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
Ke Sensor PIR
Downloader
Ke BUZZER
LCD
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
Deflcdchar 0 , 31 , 31 , 31 , 31 , 31 , 31 , 31 , 31
Deflcdchar 1 , 31 , 17 , 17 , 17 , 17 , 17 , 17 , 31
Cls
Cursor Off
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
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.
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.
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
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
$lib "ds1307clock.lib"
158
Ddrd.0 = 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
Loop
End
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
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
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.
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.
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.
Reader
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.
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.
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.
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 :
Exit Sub
errcode:
MsgBox "Port Salah !", vbOKOnly, "Peringatan"
Combo1.SetFocus
End Sub
166
End With
Timer1.Enabled = False
cmdConnect.Enabled = True
cmdDisconnect.Enabled = False
End Sub
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
' MSComm1.InBufferCount = 0
'FGerbang_Keluar.Focus()
'Timer2.Enabled = False
End Sub
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
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.
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.
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 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.
TX ke Minsys
S3 RX ke komputer
Ke RS232
S1 S2
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)
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.
172
Downloader
LED
Regulator
LCD
Bahan-Bahan :
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
S1 S2
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
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
175
Cls
Cursor Off
Locate 1 , 3
Lcd “Belum terdaftar”
Wait 2
End Select
Loop
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
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
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.
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 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.
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.
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.
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
b. Minimum System.
LCD
TOMBOL
VCC 5 volt
Downloader
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
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:
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
187
Cls
Upperline
Lcd "Anda terkena"
Lowerline
Lcd "Obesitas ringan"
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
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
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.
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
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
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 :
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
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
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)
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.
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.
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
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
201
6.11.3 Rangkaian Hardware
Ke Rangkaian Led
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
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.
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
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.
'------------------
'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)
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 , "#.##")
205
End If
If Tegangan >= 4.45 Then
Portd = &B00111111 ‘led merah aktif
Portb.0 = 1 ‘buzzer aktif
End If
Loop
'------------------------ end
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.
207
Dari grafik tersebut jika diambil data per kenaikannya maka akan menghasilkan
seperti data pada tabel berikut.
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.
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
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.
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 = 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
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.
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.
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
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.
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.
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
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
216
c. Rangkaian Minimum System ATMega16
R. = Rangkaian R. Buzzer
R. Led
R. Tombol
R. Regulator LCD
Bahan-Bahan :
217
11. Pinheader Male Secukupnya
12. Pinheader Female Secukupnya
Ke PortB.0 - 3
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
$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
Ddra = &B11111111
Porta.5 = 1
Ddrd = &B11110000
Portd = &HFF
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
'KOLOM 2
Portd = &B11011111
If Pind.0 = 0 Then
Angka = 1
Gosub Entri_data
Waitms 200
'KOLOM 3
Portd = &B10111111
If Pind.0 = 0 Then
Angka = 2
Gosub Entri_data
Waitms 200
221
Angka = 9
Gosub Entri_data
Waitms 200
End If
'KOLOM 4
Portd = &B01111111
If Pind.0 = 0 Then
Angka = 3
Gosub Entri_data
Waitms 200
Next
Loop Until Tombol2 = 0
Goto Mulai
End Sub
'Entri Data
Sub Entri_data()
Incr Urut
222
Pass = Nilai
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
'KOLOM 2
Portd = &B11011111
If Pind.0 = 0 Then
Angka = 1
Gosub Entri_data1
Waitms 200
224
Waitms 200
End If
'KOLOM 3
Portd = &B10111111
If Pind.0 = 0 Then
Angka = 2
Gosub Entri_data1
Waitms 200
End If
'KOLOM 4
Portd = &B01111111
If Pind.0 = 0 Then
Angka = 3
Gosub Entri_data1
Waitms 200
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
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
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.
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
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
VCC VCC
GND GND
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
232
b. Minimum System ATMega32
ke Sensor
led
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
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
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)
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 , "#.###")
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
237
6.13.6 Setting IP Komputer
Untuk settingan IP Address, Subnet Mask dan Default Gateway pada komputer
seperti gambar 6.13i
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
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
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
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.
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.
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 Buzzer
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
Bahan – bahan :
a. Photodioda 5mm x 1 buah
b. Resistor 330ohm x 1 buah
c. Variabel Resistor 1Kohm x 1 buah
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
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
245
Ke PortB.0 dan PortB.1
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
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 = 0 then
portB.0 = 1 ‘led hijau mati
portB.1 = 0 ‘led merah menyala
portD.0 = 1 ‘buzzer hidup
end if
Loop
'--------------------------- end
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.
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
Kamera Komputer
APC220 APC220
linksprite
Wireless
VCC
GND
TX
RX
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.
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
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
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.
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
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
255
4. Tahap 4 dari Transistor 2N3906 ke Dotmatrik
Dotmatrik 1a Dotmatrik 1b
IN
Dotmatrik 2a Dotmatrik 2b
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
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
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.
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.
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.
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.
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
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
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
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.
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
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
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.
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.
Battery 9v
Mikondenser Speaker
GND
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
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.
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.
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.
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
273
Ke Trafo 220v to 12v
AC to DC Converter
4700uF 4700uF/50v
Rangkaian Regulator 5v
12v DC 5v DC
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
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
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
100
5v 0v 5v 5v
Gambar 6.21b
Perintah konfigurasi Bascom AVR untuk mengatur OC1A dan OC1B adalah
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.
PortD.5
279
b. Resistor 330 x 1 buah
c. Motor DC 12 v x 1 buah
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 = 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
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
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.
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
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
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
Ke output LM35
Ke ADC port
GND
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
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
e. SD Card Module
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
'===============================================================
'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
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 " "
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
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)
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
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.
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?
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.
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.
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.
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
295
c. Rangkaian Minimum System ATMega16
Ke Keypad Matrik
Downloader
LCD
Regulator Rx,Tx
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
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
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
TX TX
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
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”
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
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
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.
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
305
b. Minimum System ATMega16
downloader
lcd
Ke keypad matrix
Bahan-Bahan :
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
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
Box hitam
Push Button
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.
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.
311
A . Minimum System ATMega16
lcd
Ke rangkaian led
Bahan-Bahan :
312
B. Rangkaian Led
VCC 5 volt
Ke PortD.0 – PortD.7
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
Set Portb.0
Ddrd = &B11111111
Putar = 1
Do
'----------------------------
'jika ingin move up
If Tombol1 = 0 Then
Waitms 200
Putar = Putar + 1
End If
'batas move up
If Putar > 4 Then
Putar = 1
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
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.
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.
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.
RX TX RX TX
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
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
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.
TX RX
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
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.
downloader
LCD
Ke RDM630
Bahan-Bahan :
320
11. Pinheader Male Secukupnya
12. Pinheader Female Secukupnya
'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
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
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.
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.
Led
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
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 -
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
$regfile = "m8def.dat"
$crystal = 8000000
327
Config Spi = Hard , Interrupt = Off , Data Order = Lsb , Master = Yes ,
Polarity = High , Phase = 1 , Clockrate = 128
Spiinit
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
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
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.
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.
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.
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.
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
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
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
335
6.28.4 Program Bascom AVR
'==========================================================================
'Programmer: Yanuar Mukhammad
'E-mail : Yanuarm@hotmail.com
'==========================================================================
$regfile = "m32def.dat"
$crystal = 12000000
$baud = 9600
Enable Interrupts
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
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
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 bluetoothj2me() {
display = Display.getDisplay(this);
menu = new Menu();
cmdExit = new Command("Exit", Command.EXIT, 0);
menu.setCommandListener(this);
menu.addCommand(cmdExit);
}
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.*;
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);
}
341
g.setColor(250, 250, 250);
g.fillRect(0, 0, getWidth(), getHeight());
drawMenu(g);
}
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”
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
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
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.
346
b. Rangkaian Minumum System ATMgea16
Ke Rangkaian Led
SDA SCL
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.
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)
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 X As Single
Dim Y As Single
Dim Z As Single
Dim Angle As Single
Ddrb = &B11111111
'---------------------------------------------------------------------
'=====[ 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
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
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
'------------------------------------------------------------------------
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.
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
Bahan-Bahan :
354
b. Rangkaian RS232 Serial I/O
Ke Port RX dan TX
ATMega8
Ke I/O Serial
Modem Wavecom
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
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
TX TX
357
Ke GND output 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.
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
End If
End If
Loop
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.
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.
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.
Bahan-Bahan :
362
b. 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
Dim Y As Integer
Dim Temp As Integer
Dim Hitung As Integer
364
Strobe = 1
Oe = 0
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
366
BAB 7
Macam-Macam Sensor
b. Sensor Cahaya
LDR Photodioda
367
c. Sensor Tekanan
MPX4100 MPX2050
d. Sensor Jarak
PIR
TGS2610 MQ5
368
g. Sensor Getaran
MMA7361 ADXL345
i. Sensor Api
369
j. Sensor Suara
l. Sensor Magnet
370
BAB 8
Macam-Macam Module
Q2406A FXT009
M1306B
371
b. Module Ethernet-Web Server
WIZ812MJ nm7010a
c. Module Mikrokontroler
NS.ONE ATMega32
372
Arduino UNO ARM Leaf Maple Cortex M3
d. Module Suara
373
Bluetooth Module JY-MCU TSOP Receiver Module IR Transmitter
f. Module RFID
RDM6300 RDM880
g. Module SD Card
374
BAB 9
Cara Membuat Rangkaian di PCB
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
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
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
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.
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
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
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.
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.
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
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”
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
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,
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
‘------------------------------------------------------------------------------
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”.
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”
393
A. Bagaimana hasil akhir dari program VB 6.0 dengan Database Ms. Access nya ?
SELAMAT MENCOBA……………!!!
394
BONUS ARTICLE
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
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
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
‘------------------------------
398
End If
End Sub
‘---------------------------------------
MSComm2.CommPort = ComboCOM.Text
MSComm2.Settings = "9600,N,8,1"
MSComm2.RThreshold = 15
MSComm2.InputLen = 15
MSComm2.InputMode = comInputModeText
MSComm2.PortOpen = True ' buka port
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
401
Kata – Kata Mutiara :
-------------000--------------
402
DAFTAR PUSTAKA
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
Tim Pustaka ITB, 2011, Jago Membuat Robot. Bekasi : Dunia komputer
404
PANDUAN
MENGGUNAKAN
DOWNLOADERAVRUSB
Petunjuk Instalasi Downloader AVR USB
1. Hubungkan downloader pada computer atau notebook , maka akan tampil :
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”.
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:
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 :
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
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 :
Jika mau membaca eeprom maka buat dulu file “kosong” misalnya “kalibrasi.hex”
414
Jika mau menulis ke 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