BAB II LANDASAN TEORI

advertisement
BAB II
LANDASAN TEORI
2.1
Pengertian Microcontroller
Mikrokontroler adalah sebuah sistem komputer fungsional dalam sebuah
chip. Di dalamnya terkandung sebuah inti prosesor, memori (sejumlah kecil
RAM, memori program, atau keduanya), dan perlengkapan input output.
Mikrokontroler merupakan komputer didalam chip yang digunakan untuk
mengontrol peralatan elektronik, yang menekankan efisiensi dan efektifitas biaya.
Secara harfiahnya bisa disebut “pengendali kecil” dimana sebuah sistem
elektronik
yang
sebelumnya
banyak
memerlukan
komponen-komponen
pendukung seperti IC TTL dan CMOS dapat direduksi/diperkecil dan akhirnya
terpusat serta dikendalikan oleh mikrokontroler, Mikrokontroler terdiri
beberapa bagian seperti yang terlihat pada gambar di bawah ini :
Gambar 2.1.
Bagian Mikrokontroler
7
dari
8
Pada Gambar 2.1. tampak suatu mikrokontroler standar yang tersusun atas
komponen-komponen sebagai berikut :
A. Central Processing Unit (CPU)
CPU merupakan bagian utama dalam suatu mikrokontroler. CPU pada
mikrokontroler ada yang berukuran 8 bit ada pula yang berukuran 16 bit. CPU ini
akan membaca program yang tersimpan di dalam ROM dan melaksanakannya.
B. Read Only Memory (ROM)
ROM merupakan suatu memori (alat untuk mengingat) yang sifatnya
hanya dibaca saja. Dengan demikian ROM tidak dapat ditulisi. Dalam dunia
mikrokontroler ROM digunakan untuk menyimpan program bagi mikrokontroler
tersebut. Program
tersimpan dalam
format biner („0‟
atau „1‟).
Susunan
bilangan biner tersebut bila telah terbaca oleh mikrokontroler akan memiliki arti
tersendiri.
C. Random Acces Memory (RAM)
Berbeda dengan ROM, RAM adalah jenis memori selain dapat dibaca juga
dapat ditulis berulang kali. Tentunya dalam pemakaian mikrokontroler ada
semacam data yang bisa berubah pada saat mikrokontroler tersebut bekerja.
Perubahan data tersebut tentunya juga akan tersimpan ke dalam memori. Isi pada
RAM akan hilang jika catu daya listrik hilang.
D. Input / Output (I/O)
Untuk
berkomunikasi
dengan
dunia
luar,
maka
mikrokontroler
menggunakan terminal I/O (port I/O), yang digunakan untuk masukan atau
keluaran.
9
E. Komponen lainnya
Beberapa mikrokontroler memiliki timer/counter, ADC (Analog to Digital
Converter), dan komponen lainnya. Pemilihan komponen tambahan yang
sesuai dengan tugas mikrokontroler akan sangat membantu perancangan sehingga
dapat mempertahankan ukuran yang kecil. Apabila komponen komponen tersebut
belum ada pada suatu mikrokontroler, umumnya komponen tersebut masih dapat
ditambahkan pada sistem mikrokontroler melalui port-portnya.
2.2
Kit Mikrokontroler Arduino Uno
2.2.1
Pengertian Arduino
Arduino adalah pengendali mikro single-board yang bersifat open-source,
diturunkan dari Wiring platform, dirancang untuk memudahkan penggunaan
elektronik dalam berbagai bidang. Hardware-nya memiliki prosesor Atmel AVR
dan softwarenya memiliki bahasa pemrograman sendiri.
Arduino Uno kit elektronik atau papan rangkaian elektronik open source
yang di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler
dengan jenis AVR dari perusahaan Atmel. Arduino adalah sebuah board
mikrokontroller yang berbasis ATmega328. Arduino memiliki 14 pin input/output
yang mana 6 pin dapat digunakan sebagai output PWM, 6 analog input, crystal
osilator 16 MHz, koneksi USB, jack power, kepala ICSP, dan tombol reset.
Arduino mampu men-support mikrokontroller; dapat dikoneksikan dengan
komputer menggunakan kabel USB. Berikut gambar 2.2 adalah pin-pin pada kit
arduino uno.
10
Gambar 2.2. Board Arduino Uno ATmega328
Pada gambar 2.2 terdapat 14 pin output/input yang mana 6 pin dapat
digunakan sebagai output PWM, 6 analog input, cristal osilator 16 MHZ dan
tombol reset. Arduino tersebut menggunakan chip mikrokontroler ATmega328.
2.2.2
Fungsi Pada Kit Arduino uno
PIN Power
Arduino dapat diberikan power melalui koneksi USB atau power supply.
Powernya diselek secara otomatis. PIN power terdapat pada kaki 1 sampai kaki 6,
Power supply dapat menggunakan adaptor DC atau baterai. Adaptor dapat
dikoneksikan dengan mencolok jack adaptor pada koneksi port input supply.
Board arduino dapat dioperasikan menggunakan supply dari luar sebesar 6 - 20
volt. Jika supply kurang dari 7V, kadang kala pin 5V akan menyuplai kurang dari
5 volt dan board bisa menjadi tidak stabil. Jika menggunakan lebih dari 12 V,
tegangan di regulator bisa menjadi sangat panas dan menyebabkan kerusakan
pada board. Rekomendasi tegangan ada pada 7 sampai 12 volt.
11
Penjelasan pada pin power adalah sebagai berikut :
Vin
Tegangan input ke board arduino ketika menggunakan tegangan dari luar
(seperti yang disebutkan 5 volt dari koneksi USB atau tegangan yang
diregulasikan). Pengguna dapat memberikan tegangan melalui pin ini, atau jika
tegangan suplai menggunakan power jack, aksesnya menggunakan pin ini.
5V
Regulasi power supply digunakan untuk power mikrokontroller dan komponen
lainnya pada board. 5V dapat melalui Vin menggunakan regulator pada board,
atau supply oleh USB atau supply regulasi 5V lainnya.
3V3
Suplai 3.3 volt didapat oleh FTDI chip yang ada di board. Arus maximumnya
adalah 50mA.
Pin Ground berfungsi sebagai jalur ground pada arduino
Memori
ATmega328 memiliki 32 KB flash memori untuk menyimpan kode, juga 2
KB yang digunakan untuk bootloader. ATmega328 memiliki 2 KB untuk SRAM
dan 1 KB untuk EEPROM. Input dan Output Setiap 14 pin digital pada arduino
dapat digunakan sebagai input atau output, menggunakan fungsi pinMode(),
digitalWrite(), dan digitalRead(). Input/output dioperasikan pada 5 volt. Setiap pin
dapat menghasilkan atau menerima maximum 40 mA dan memiliki internal pullup resistor (disconnected oleh default) 20- 50 KOhms.
Beberapa pin memiliki fungsi sebagai berikut :
12
 Serial : 0 (RX) dan 1 (TX). Digunakan untuk menerima (RX) dan
mengirim (TX) TTL data serial. Pin ini terhubung pada pin yang
koresponding dari USB FTDI ke TTL chip serial.
 Interupt eksternal : 2 dan 3. Pin ini dapat dikonfigurasikan untuk trigger
sebuah interap pada low value, rising atau falling edge, atau perubahan
nilai.
 PWM : 3, 5, 6, 9, 10, dan 11. Mendukung 8-bit output PWM dengan
fungsi analogWrite().
 LED : 13. Ini adalah dibuat untuk koneksi LED ke digital pin 13. Ketika
pin bernilai HIGH, LED hidup, ketika pin LOW, LED mati.
Konektor USB
Konektor USB adalah soket untuk kabel USB yang disambungkan ke
komputer atau laptop. Berfungsi untuk mengirimkan program ke Arduino dan
juga sebagai port komunikasi serial.
Pin Input /Output Digital
Input/Output Digital atau digital pin adalah pin-pin untuk menghubungkan
Arduino dengan komponen atau rangkaian digital.Input/Output digital pada KIT
arduino terdapat pada kaki 1 sampai kaki 13. Misalnya kalau ingin membuat LED
berkedip, LED tersebut bisa dipasang pada salah satu pin I/O digital dan ground.
Komponen lain yang menghasilkan output digital atau menerima input digital bisa
disambungkan ke pin-pin ini.
13
Pin Input Analog
Input Analog atau analog pin adalah pin-pin yang berfungsi untuk
menerima sinyal dari komponen atau rangkaian analog. Misalnya dari
potensiometer, sensor suhu, sensor cahaya, dsb.
Baterai / Adaptor
Soket baterai atau adaptor digunakan untuk menyuplai Arduino dengan
tegangan dari baterai/adaptor 9V atau 12V, pada saat Arduino sedang tidak
disambungkan ke komputer. Kalau Arduino sedang disambungkan ke komputer
melalui USB, Arduino mendapatkan suplai tegangan dari USB, jadi tidak perlu
memasang baterai/adaptor saat memprogram Arduino.
2.2.3
Mikrokontroler ATMega328
Mikrokontroller merupakan sebuah processor yang digunakan untuk
kepentingan kontrol. Meskipun mempunyai bentuk yang jauh lebih kecil dari
suatu komputer pribadi dan computerainframe, mikrokontroller dibangun dari
elemen – elemen dasar yang sama. Seperti umumnya komputer, mikrokontroller
adalah alat yang mengerjakan instruksi – instruksi yang diberikan kepadanya.
Artinya, bagian terpenting dan utama dari suatu sistem terkomputerisasi adalah
program itu sendiri yang dibuat oleh seorang programmer. Program ini
menginstruksikan komputer untuk melakukan tugas yang lebih kompleks yang
diinginkan oleh programmer.
14
Kontruksi Mikrokontroler ATmega328
ATMega328 adalah mikrokontroller keluaran dari atmel yang mempunyai
arsitektur RISC (Reduce Instruction Set Computer) yang dimana setiap proses
eksekusi data lebih cepat dari pada arsitektur CISC (Completed Instruction Set
Computer).
Mikrokontroller ini memiliki beberapa fitur antara lain :
 130 macam instruksi yang hampir semuanya dieksekusi dalam satu siklus
clock.
 32 x 8-bit register serba guna.
 Kecepatan mencapai 16 MIPS dengan clock 16 MHz.
 32 KB Flash memory dan pada arduino memiliki bootloader yang
menggunakan 2 KB dari flash memori sebagai bootloader.
 Memiliki EEPROM (Electrically Erasable Programmable Read Only
Memory) sebesar 1KB sebagai tempat penyimpanan data semi permanent
karena EEPROM tetap dapat menyimpan data meskipun catu daya
dimatikan.
 Memiliki pin I/O digital sebanyak 14 pin ,6 diantaranya PWM (Pulse
Width Modulation) output.
Mikrokontroller ATmega 328 memiliki arsitektur Hardware, yaitu
memisahkan memori untuk kode program dan memori untuk data sehingga dapat
memaksimalkan kerja dan parallelism. Instruksi – instruksi dalam memori
program dieksekusi dalam satu alur tunggal, dimana pada saat satu instruksi
dikerjakan instruksi berikutnya sudah diambil dari memori program. Konsep
15
inilah yang memungkinkan instruksi – instruksi dapat dieksekusi dalam setiap
satu siklus clock. Ketiga register pointer 16-bit ini disebut dengan register X (
gabungan R26 dan R27 ), register Y ( gabungan R28 dan R29 ), dan register Z (
gabungan R30 dan R31 ).
2.3.
Pemrograman Dasar Arduino Uno
2.3.1 Stuktur Dasar Pemrograman Arduino
Struktur dasar arduino hanya terjadi dalam dua bagian:
Void setup()
{
// Statement; di eksekusi satu kali}
Void loop()
{
// Statement; di eksekusi terus menerus
}
Setup
Fungsi setup() hanya dipanggil satu kali ketika program pertama kali di
jalankan. Ini digunakan untuk mendifinisikan mode pin atau memulai komunikasi
serial. Fungsi setup() harus di ikut sertakan dalam program ,walaupun tidak ada
statement yang di jalankan.
16
Contoh pemrograman yang menggunakan fungsi setup sebagai berikut:
Void setup ()
{
pinMode(3,OUTPUT) ;
// men-set “pin” 3 sebagai Output
pinMode(6, INPUT);
// men-set pin 6 sebagai Input
Serial.begin(9600);
}
Keterangan:
pinMode() = berfungsi untuk mengatur fungsi sebuah pin sebagai input atau
output.
Serial.begin(9600)
=
digunakan
untuk
mengaktifkan
fitur
UART
dan
menginisialisasinya.
Loop
Setelah melakukan fungsi setup() maka secara langsung akan melakukan fungsi
loop() secara berurutan dan melakukan instruksi-instruksi yang ada dalam fungsi
loop(). Contoh pemrograman yang menggunakan fungsi loop sebagai berikut:
void loop()
{
If (digitalRead(6)==HIGH)
// membaca input digital pin 6
{
xstart = millis();
//aktifkan timer
digitalWrite(3, HIGH);
// nyalakan pin 3
delay(1000);
// pause 1detik
digitalWrite(3, LOW);
// matikan pin 3
17
}
}
Keterangan:
digitalWrite
: Untuk memberikan nilai low dan high pada sebuah pin output.
Delay
: Untuk memberikan waktu tunda dalam satuan millisekon.
digitalRead
: Untuk membaca logika low dan high.
2.3.2
Struktur Pengaturan Program
Program sangat tergantung pada pengaturan apa yang akan dijalankan
berikutnya, berikut ini adalah elemen dasar pengaturan program:
if..else, dengan format seperti berikut ini:
if (kondisi) { }
else if (kondisi) { }
else { }
Dengan struktur seperti diatas program akan menjalankan kode yang ada di dalam
kurung kurawal jika kondisinya true, dan jika tidak (false) maka akan diperiksa
apakah kondisi pada else if dan jika kondisinya false maka kode pada else yang
akan dijalankan.
for, dengan format seperti berikut ini:
for (int i = 0; i < #pengulangan; i++) { }
Digunakan bila anda ingin melakukan pengulangan kode di dalam kurung kurawal
beberapa kali, ganti #pengulangan dengan jumlah pengulangan yang diinginkan.
Melakukan penghitungan ke atas dengan i++ atau ke bawah dengan i–.
18
Input/Output Digital
a. pinMode(pin, mode)
Digunakan untuk menetapkan mode dari suatu pin, pin adalah nomor pin
yang akan digunakan dari 0-19 (pin analog 0-5 adalah 14-19). Mode yang bisa
digunakan adalah input atau output.
b. digitalWrite(pin, value)
Ketika sebuah pin ditetapkan sebagai output , pin tersebut dapat dijadikan
high (ditarik menjadi 5 volts) atau low (diturunkan menjadi ground).
c. digitalRead(pin)
Ketika sebuah pin ditetapkan sebagai INPUT maka anda dapat
menggunakan kode ini untuk mendapatkan nilai pin tersebut apakah high (ditarik
menjadi 5 volts) atau low (diturunkan menjadi ground).
Input/Output Analog
Arduino adalah mesin digital tetapi mempunyai kemampuan untuk
beroperasi di dalam alam analog (menggunakan trik).
Berikut ini cara untuk menghadapi hal yang bukan digital.
a) analogWrite(pin, value)
Beberapa pin pada Arduino mendukung PWM (pulse width modulation)
yaitu pin 3, 5, 6, 9, 10, 11. Ini dapat merubah pin hidup (on)atau mati (off) dengan
sangat cepat sehingga membuatnya dapat berfungsi layaknya keluaran analog.
Value (nilai) pada format kode tersebut adalah angka antara 0 ( 0% duty cycle ~
0V) dan 255 (100% duty cycle ~ 5V).
19
b) analogRead(pin)
Ketika pin analog ditetapkan sebagai input anda dapat membaca keluaran
voltase-nya. Keluarannya berupa angka antara 0 (untuk 0 volts) dan 1024 (untuk 5
volts).
2.4
Melakukan Penginstalan Arduino Ke Komputer
Untuk melakukan pemrogaman pada papan Arduino, disarankan untuk
men-download IDE Arduino terlebih dahulu yang dapat diperoleh dari situs:
www.arduino.cc/en/Main/Software. Dan kemudian pilih versi yang tepat untuk
sistem operasi komputer yang digunakan.
Setelah melakukan download, lakukanlah proses uncompress dengan cara
melakukan double-click pada file tersebut. Proses ini secara otomatis akan
membuat suatu folder yang bernama arduino-[version], contohnya seperti
arduino-0012.
Setelah melakukan penginstalan IDE Arduino pada komputer, tahap
selanjutnya adalah harus melakukan penginstalan untuk driver. Fungsi utama
penginstalan driver ini adalah agar komputer dapat melakukan komunikasi
dengan papan Arduino melalui USB port.
2.4.1
Melakukan Penginstalan Driver Untuk Windows
Koneksikan papan Arduino dengan komputer dan ketika Found New
Hardware Wizard pada layar muncul, Windows secara otomatis akan mencoba
menemukan terlebih dahulu driver tersebut pada halaman Windows Update.
20
Windows XP akan meminta untuk memeriksa Windows Update, dan jika
tidak ingin menggunakan Windows Update pilih menu “No,not at this time” dan
tekan tombol Next. Dan pada layar selanjutnya, pilih menu “Install from a list or
specific location” dan tekan tombol Next.
Periksa layar berjudul “Include this location in the search” dan tekan
tombol Browse. Kemudian pilih folder dimana Arduino sudah terinstal dan pilih
folder Drivers\FTDIUSB Drivers untuk menetukan lokasinya dan tekan tombol
OK dan Next pada layar tesebut.
Windows Vista akan berusaha menemukan driver tersebut pada Windows
Update, dan jika terjadi kegagalan dalam melakukan pencarian driver, maka
lakukan pencarian secara manual pada folder Drivers\FTDIUSB Drivers.
Proses pencarian driver secara manual memiliki dua prosedur yang harus
dilewati, yang pertama komputer harus menginstal driver low-level terlebih
dahulu dan yang kedua adalah menginstal bagian kode yang membuat papan
Arduino terlihat seperti suatu serial port untuk komputer.
Apabila driver telah terinstal, maka Arduino IDE dapat diaktifkan dan
papan Arduino dapat digunakan pada komputer. Untuk tahap selanjutnya adalah
harus selalu mengingat serial port komputer yang telah ditandai untuk papan
Arduino.
2.4.2
Identifikasi Port Pada Windows
Pada Windows, proses untuk melakukan identifikasi port sedikit lebih
rumit dibandingkan dengan Machintosh. Pertama, buka layar Device Manager
dengan cara memilih menu Start, lakukan right-clicking pada Computer (Vista)
atau My Computer (XP), dan pilih Properties.
21
Pada Windows XP, pilih Hardware dan kemudian pilih Device Manager.
Sedangkan untuk Windows Vista, pilih Device Manager yang telah ada didalam
daftar pada sebelah kiri layar.
Cari Arduino device yang berada dibawah daftar “Port (COM & LPT)”.
Arduino akan muncul sebagai suatu USB serial port dan akan memiliki suatu
nama seperti COM3, hal ini dapat dilihat pada Gambar 2.2.
Gambar 2.3. Device Manager pada Windows menampilkan semua terminal serial.
22
2.4.3 Masalah Dengan IDE
Pada beberapa kasus terutama pada Windows, mungkin memiliki masalah
yang berhubungan dengan penggunaan IDE Arduino.
Jika terdapat kesalahan saat membuka Arduino, gunakan metode alternatif
dengan cara membuka file run.bat.
Biasanya pemakai Windows juga sering mendapatkan masalah jika sistem
operasi memberikan nomor COM10 atau yang benomor lebih untuk papan
Arduino. Untuk mengatasi masalah ini, kita dapat menentukan nomor yang lebih
rendah untuk Arduino dengan cara sebagai berikut:
1. Buka layar Device Manager pada Windows dengan membuka menu Start.
Lakukan klik kanan (right-click) pada layar komputer untuk Vista atau My
Computer dan pilih menu Properties untuk XP. Kemudian pilih menu
Device Manager.
2. Cari serial device di dalam daftar “Ports (COM & LPT)”. Dan pilih serial
device bernomor COM9 atau bernomor lebih rendah yang tidak digunakan
dengan cara pilih menu Properties (right-click). Kemudian pada tab Port
Setting, pilih menu Advanced dan lakukan pengaturan nomor pada
COM10 atau yang bernomor lebih besar.
3. Lakukan hal yang sama pada serial terminal USB yang digunakan untuk
mengoperasikan Arduino.
Jika beberapa saran tersebut masih tidak dapat membantu, atau jika
mengalami permasalahan yang belum dijelaskan pada laporan ini, untuk
troubleshooting Arduino yang lebih lengkap dapat dilihat dari halaman situs:
www.arduino.cc/en/Guide/Troubleshooting
23
2.4.4 Troubleshooting Arduino
Dalam membuat suatu eksperimen atau percobaan dengan Arduino,
memungkinkan sekali terjadinya kegagalan dalam melakukan pengoperasiannya.
Sedangkan kita dituntut harus dapat memperbaiki kegagalan yang terjadi agar
Arduino dapat beroperasi dengan benar.
Troubleshooting dan debugging merupakan seni yang sudah ada dari dulu.
Dan agar didapatkan suatu hasil yang diinginkan oleh kita, maka kita harus
memenuhi peraturan yang dimiliknya terlebih dahulu.
Semakin sering kita menggunakan komponen elektronik dan Arduino
dalam membuat suatu percobaan, maka kita akan semakin banyak belajar dan
semakin banyak mendapatkan pengalaman. Oleh karena itu, jangan putus asa
dengan permasalahan yang akan muncul dalam melakukan suatu percobaan
karena semuanya akan menjadi lebih mudah apabila sudah dihadapi.
Seperti semua percobaan Arduino yang telah dibuat, jika terdapat
kesalahan baik yang berasal dari hardware maupun software maka disana
kemungkinan akan ada lebih dari satu hal yang perlu dicari penyebab dari
kesalahan tersebut.
Ketika mencari suatu bug atau akar dari suatu masalah yang muncul
seharusnya kita mengoperasikan Arduino meliputi tiga langkah berikut:
1. Pemahaman (understanding)
Mencoba untuk memahami sebanyak mungkin bagaimana cara kerja dari
setiap bagian komponen yang digunakan dan bagaimana bagian dari
komponen tersebut telah memberikan pengaruh terhadap percobaan yang
dibuat.
24
2. Penyederhanaan dan pembagian (simplification and segmentation)
Orang Romawi kuno mengatakan devide et impera: divide and rule, atau
dalam bahasa Indonesia berarti pembagi dan peraturan. Oleh karena itu, untuk
membuat percobaan Arduino cobalah lakukan perincian (break down)
terhadap percobaan ke dalam setiap komponennya dengan pemahaman yang
kita miliki dan memperhitungkan dimana tanggung jawab dari setiap
komponen tersebut.
3. Pemisahan dan kepastian (exclusion and certainty)
Ketika melakukan investigasi, melakukan pengujian secara terpisah pada
setiap komponen sangat dibutuhkan untuk memastikan bahwa setiap
komponen bekerja dengan benar. Dengan melakukan tahap ini akan
membangun rasa keyakinan pada diri kita sendiri terhadap bagian percobaan
mana yang bekerja dengan benar maupun yang tidak.
Debugging adalah istilah yang telah digunakan software komputer untuk
menggambarkan suatu proses tidak bekerja dengan benar. Konon dikatakan
bahwa istilah tersebut dipakai untuk pertama kalinya oleh Garce Hopper pada
sekitar tahun 1940-an. Dimana pada waktu itu, komputer yang sebagian besarnya
merupakan peralatan elektromekanis, ada yang berhenti beroperasi karena ada
serangga yang terjebak di dalam sistem mekaniknya.
Tetapi pada saat ini, bug bukan berbentuk fisik lagi, melainkan suatu
virtual yang tidak dapat dilihat. Oleh karena itu, terkadang dibutuhkannya suatu
proses indentifikasi yang panjang dan membosankan dalam menemukan bug.
Proses Debugging bukan merupakan pengujian, tetapi selalu terjadi
sebagai bagian akibat dari pengujian. Proses debungging dimulai dengan eksekusi
25
terhadap suatu test case. Hasilnya dinilai, dan ditemukan kurangnya hubungan
antara harapan dan yang sesungguhnya. Dalam banyak kasus, data yang tidak
berkaitan merupakan gejala dari suatu penyebab pokok tetapi masih tersembunyi,
sehingga perlu ada koreksi kesalahan.
Proses debugging akan selalu memiliki salah satu dari dua hasil akhir berikut:
Penyebab akan ditemukan, dikoreksi, dan dihilangkan, atau
Penyebab tidak akan ditemukan
Dalam kasus yang terakhir, orang yang melakukan debugging mungkin
mencurigai suatu penyebab, mendesain suatu test case untuk membantu
kecurigaannya, dan bekerja untuk koreksi kesalahan dengan gaya yang iterative.
2.5
Sensor InfraRed
Sensor adalah alat yang mendeteksi suatu perubahan pada kondisi fisik
yang mendorong dan mengubah aktivitas yang dideteksi menjadi sinyal yang bisa
dicatat atau direkam. Sedangkan cahaya infra merah tergolong ke dalam cahaya
yang tidak tampak. Mempunyai panjang gelombang mulai 750 nm sampai 25 µm.
Cahaya infra merah tidak bisa terlihat oleh mata manusia, karena jarak pandang
manusia antara 400 nm sampai dengan 750 nm, seperti terlihat pada gambar 2.4
26
Gambar 2.4. Beberapa spektrum gelombang cahaya
IR Emiter
Sensor IR emiter adalah LED (Light Emmiting Diode) yang terbuat dari
bahan gallium arsenide, yang memancarkan cahaya infra-merah pada kisaran
880nm.
(a)
(b)
Gambar 2.5. (a) Prinsip kerja IR Emiter (b) Contoh IR Emiter
2.5.1
Sensor Proximity
Sensor proximity mempunyai pengertian sebagai sensor yang mampu
mendeteksi ada atau tidaknya suatu obyek. Bila obyek berada di depan sensor dan
dapat terjangkau oleh sensor maka output rangkaian sensor akan berlogika “1”
atau “high” yang berarti obyek “ada”. Sebaliknya jika obyek berada pada posisi
yang tidak terjangkau oleh sensor maka output rangkaian sensor akan bernilai “0”
atau “low” yang berarti obyek “tidak ada”.
27
Dalam dunia robotika, sensor proximity seringkali digunakan untuk
mendeteksi ada atau tidaknya suatu garis pembimbing gerak robot atau yang lebih
dikenal dengan istilah “line following” atau “line tracking”, juga biasa digunakan
untuk mendeteksi adanya benda-benda penghalang seperti dinding atau bendabenda lainnya sehingga robot dapat menghindari tabrakan dengan benda-benda
tersebut.
limit switch (saklar mekanik), ultrasonic proximity, infrared proximity
(infra merah), kamera dan lain sebagainya masuk dalam jenis sensor proximity.
Prinsip kerja
Salah satu kegunaan sensor proximity yang sering dijumpai dalam dunia
robottika sebagai deteksi garis. Sensor ini dapat dibuat dari pasangan LED dan
fototransistor 1 dan 2. Bila cahaya LED memantul pada garis dan diterima oleh
basis fototransistor maka fototransistor menjadi (on) sehingga tegangan output
(Vout) menjadi sama dengan Vce saturasi atau mendekati 0 volt. Sebaliknya jika
tidak terdapat pantulan, maka basis fototransistor tidak mendapat arus bias
sehingga fototransistor menjadi cut-off (C-E open), dengan demikian nilai Vout
sama dengan Vcc..
28
Gambar 2.6. Prinsip kerja proximity tanpa halangan
sinyal led atau infrared akan menyebar jika tak ada halangan. berbeda
dengan jika diberi halangan seperti gambar 2.7 dibawah ini.
Gambar 2.7. Prinsip kerja proximity jika ada halangan
Saat ada halangan maka pacaran sinar cahaya dari LED atau Infrared akan
memantul. berkas cahaya yang memantul tersebut akan tertangkap oleh proximity
sensor. Banyaknya intesitas cahaya yang tertangkap akan menjadi acuan nilai
untuk mengetahui warna line atau bidang pantulnya.
29
2.6
Photodioda
Photodioda adalah dioda yang bekerja berdasarkan intensitas cahaya, jika
photodioda terkena cahaya maka photodioda bekerja seperti dioda pada
umumnya, tetapi jika tidak mendapat cahaya maka photodioda akan berperan
seperti resistor dengan nilai tahanan yang besar sehingga arus listrik tidak dapat
mengalir.
Gambar 2.8. Photodioda
Photodioda merupakan sensor cahaya semikonduktor yang dapat
mengubah besaran cahaya menjadi besaran listrik. Photodioda merupakan sebuah
dioda dengan sambungan p-n yang dipengaruhi cahaya dalam kerjanya. Cahaya
yang dapat dideteksi oleh photodioda ini mulai dari cahaya infra merah, cahaya
tampak, ultra ungu sampai dengan sinar-X.
Prinsip kerja, karena photodioda terbuat dari semikonduktor p-n junction
maka cahaya yang diserap oleh photodioda akan mengakibatkan terjadinya
pergeseran foton yang akan menghasilkan pasangan electron-hole dikedua sisi
dari sambungan. Ketika elektron-elektron yang dihasilkan itu masuk ke pita
konduksi maka elektron-elektron itu akan mengalir ke arah positif sumber
tegangan sedangkan hole yang dihasilkan mengalir ke arah negatif sumber
tegangan sehingga arus akan mengalir di dalam rangkaian. Besarnya pasangan
30
elektron ataupun hole yang dihasilkan tergantung dari besarnya intensitas cahaya
yang diserap oleh photodioda.
Photodiodes dibuat dari semikonduktor dengan bahan yang populer adalah
silicon ( Si) atau galium arsenida ( GaAs), dan yang lain meliputi InSb, InAs,
PbSe. Material ini menyerap cahaya dengan karakteristik panjang gelombang
mencakup: 2500 Å - 11000 Å untuk silicon, 8000 Å – 20,000 Å untuk GaAs.
Ketika sebuah photon (satu satuan energi dalam cahaya) dari sumber cahaya
diserap, hal tersebut membangkitkan suatu elektron dan menghasilkan sepasang
pembawa muatan tunggal, sebuah elektron dan sebuah hole, di mana suatu hole
adalah bagian dari kisi-kisi semikonduktor yang kehilangan elektron. Arah Arus
yang melalui sebuah semikonduktor adalah kebalikan dengan gerak muatan
pembawa.
cara
tersebut
didalam
sebuah
photodiode
digunakan
untuk
mengumpulkan photon - menyebabkan pembawa muatan (seperti arus atau
tegangan) mengalir/terbentuk di bagian-bagian elektroda.
Photodioda digunakan sebagai penangkap gelombang cahaya yang
dipancarkan oleh Infrared. Besarnya tegangan atau arus listrik yang dihasilkan
oleh photodioda tergantung besar kecilnya radiasi yang dipancarkan oleh infrared.
31
Gambar 2.9. panjang gelombang yang dihasilkan oleh bahan photodioda yang
berbeda terhadap pengliatan mata
Photo dioda digunakan sebagai komponen pendeteksi ada tidaknya
cahaya maupun dapat digunakan untuk membentuk sebuah alat ukur akurat yang
dapat mendeteksi intensitas cahaya dibawah 1pW/cm2 sampai intensitas diatas
10mW/cm2. Photo dioda mempunyai resistansi yang rendah pada kondisi forward
bias, kita dapat memanfaatkan photo dioda ini pada kondisi reverse bias dimana
resistansi dari photo dioda akan turun seiring dengan intensitas cahaya yang
masuk.
Dioda peka cahaya adalah jenis dioda yang berfungsi mendektesi cahaya.
Berbeda dengan dioda biasa, komponen elektronika ini akan mengubah menjadi
arus listrik. Cahaya yang dapat dideteksi oleh dioda peka cahaya ini mulai dari
cahaya inframerah, cahaya tampak, ultra ungu sampai dengan sinar-X. Aplikasi
dioda peka cahaya mulai dari penghitung kendaraan di jalan umum secara
otomatis, pengukur cahaya pada kamera serta beberapa peralatan di bidang medis.
32
Alat yang mirip dengan dioda peka adalah transistor foto (phototransistor).
Transistorfoto ini pada dasarnya adalah jenis transistor bipolar yang menggunakan
kontak (junction) base-collector untuk menerima cahaya.
Gambar 2.10. Phototransistor
Komponen ini mempunyai sensitivitas yang lebih baik jika dibandingkan
dengan diodapeka cahaya. Hal ini disebabkan karena electron yang ditimbulkan
oleh foton cahaya pada junction ini diinjeksikan di bagian Base dan diperkuat di
bagian kolektornya. Namun demikian,waktu respons dari transistor foto secara
umum akan lebih lambat dari pada dioda peka cahaya.
Jika photo dioda tidak terkena cahaya, maka tidak ada arus yang mengalir
ke rangkaian pembanding, jika photo dioda terkena cahaya maka photodiode akan
bersifat sebagai tegangan, sehingga Vcc dan photo dioda tersusun seri, akibatnya
terdapat arus yang mengalir ke rangkaian pembanding.
33
Gambar 2.11. Stuktur photodioda
Sifat dari Photodioda adalah :
1. Jika terkena cahaya maka resistansi nya berkurang
2. Jika tidak terkena cahaya maka resistansi nya meningkat
Kenapa Photodioda dipasang reverse?? Berdasarkan teori mengenai dioda.
Pada saat dioda dipasang reverse, maka arus tidak akan mengalir karena hambatan
yg sangat besar sekali. Jadi bisa dikatakan ini dioda sebagai kondisi Open Circuit
jika dianalogikan seperti sakelar. namun pada photodioda, hambatan yang besar
tadi bisa menjadi kecil karena pengaruh cahaya yang masuk. Hal seperti ini bisa
menyebabkan arus mengalir sehingga kondisi seperti ini bisa dikatakan sebagai
Close Circuit jika dianalogikan seperti saklar.
2.7
Motor Dc
Motor arus searah, sebagaimana namanya, menggunakan arus langsung
yang tidak langsung/direct-unidirectional. Motor DC digunakan pada penggunaan
khusus dimana diperlukan penyalaan torque yang tinggi atau percepatan yang
tetap untuk kisaran kecepatan yang luas.
34
Gambar 2.12. Motor Dc
2.7.1
Motor DC Memiliki tiga komponen utama
Kutub medan Secara sederhada digambarkan bahwa interaksi dua kutub
magnet akan menyebabkan perputaran pada motor DC. Motor DC
memiliki kutub medan yang stasioner dan dinamo yang menggerakan
bearing pada ruang diantara kutub medan. Motor DC sederhana memiliki
dua kutub medan: kutub utara dan kutub selatan. Garis magnetik energi
membesar melintasi bukaan diantara kutub-kutub dari utara ke selatan.
Untuk motor yang lebih besar atau lebih komplek terdapat satu atau lebih
elektromagnet.Elektromagnet menerima listrik dari sumber daya dari luar
sebagai penyedia struktur medan.
Dinamo Bila arus masuk menuju dinamo, maka arus ini akan menjadi
elektromagnet. Dinamo yang berbentuk silinder, dihubungkan ke as
penggerak untuk menggerakan beban. Untuk kasus motor DC yang kecil,
dinamo berputar dalam medan magnet yang dibentuk oleh kutub-kutub,
sampai kutub utara dan selatan magnet berganti lokasi. Jika hal ini terjadi,
arusnya berbalik untuk merubah kutub-kutub utara dan selatan dinamo.
35
Commutator adalah Komponen ini terutama ditemukan dalam motor DC.
Kegunaannya adalah untuk membalikan arah arus listrik dalam dinamo.
Commutator juga membantu dalam transmisi arus antara dinamo dan
sumber daya.
Keuntungan utama motor DC adalah sebagai pengendali kecepatan, yang tidak
mempengaruhi kualitas pasokan daya. Motor ini dapat dikendalikan dengan
mengatur:
Tegangan
dinamo
–
meningkatkan
tegangan
dinamo
akan
meningkatkan kecepatan.
Arus medan – menurunkan arus medan akan meningkatkan kecepatan.
2.8
Relay
Relay adalah Saklar (Switch) yang dioperasikan secara listrik dan merupakan
komponen Electromechanical (Elektromekanikal) yang terdiri dari 2 bagian utama yakni
Elektromagnet (Coil) dan Mekanikal (seperangkat Kontak Saklar/Switch). Relay
menggunakan Prinsip Elektromagnetik untuk menggerakkan Kontak Saklar
sehingga dengan arus listrik yang kecil (low power) dapat menghantarkan listrik
yang bertegangan lebih tinggi. Sebagai contoh, dengan Relay yang menggunakan
Elektromagnet 5V dan 50 mA mampu menggerakan Armature Relay (yang
berfungsi sebagai saklarnya) untuk menghantarkan listrik 220V 2A.
36
Gambar 2.13. Relay dan Simbol Relay
2.8.1
Prinsip Kerja Relay
Sebelum membahas lebih lanjut mengenai Prinsip Kerja atau Cara Kerja
sebuah Relay, kita perlu mengetahui Komponen-komponen dasar pembentuk
sebuah Relay. Pada dasarnya, Di sebuah Relay sederhana terdiri dari 4 komponen
dasar yaitu :
1. Electromagnet (Coil)
2. Armature
3. Switch Contact Point (Saklar)
4. Spring
37
Gambar 2.14. Stuktur Sederhana Relay
Kontak Poin (Contact Point) Relay terdiri dari 2 jenis yaitu:
Normally Close (NC) yaitu kondisi awal sebelum diaktifkan akan selalu
berada di posisi CLOSE (tertutup).
Normally Open (NO) yaitu kondisi awal sebelum diaktifkan akan selalu
berada di posisi OPEN (terbuka).
Berdasarkan gambar diatas, sebuah Besi (Iron Core) yang dililit oleh
kumparan Coil yang berfungsi untuk mengendalikan Besi tersebut. Apabila
Kumparan Coil diberikan arus listrik, maka akan timbul gaya Elektromagnet yang
kemudian menarik Armature untuk berpindah dari Posisi sebelumnya (NC) ke
posisi baru (NO) sehingga menjadi Saklar yang dapat menghantarkan arus listrik
di posisi barunya (NO). Posisi dimana Armature tersebut berada sebelumnya (NC)
akan menjadi OPEN atau tidak terhubung. Pada saat tidak dialiri arus listrik,
Armature akan kembali lagi ke posisi Awal (NC), Coil membutuhkan arus listrik
38
yang relatif kecil untuk mengaktifkan electromagnet dan menarik Contact Poin ke
posisi Close.
Fungsi Relay
2.8.2
Beberapa fungsi Relay yang telah umum diaplikasikan kedalam peralatan
Elektronika diantaranya adalah :
1. Relay digunakan untuk menjalankan Fungsi Logika (Logic Function)
2. Relay digunakan untuk memberikan Fungsi penundaan waktu (Time Delay
Function)
3. Relay digunakan untuk mengendalikan Sirkuit Tegangan tinggi dengan
bantuan dari Signal Tegangan rendah.
4. Ada juga Relay yang berfungsi untuk melindungi Motor ataupun
komponen lainnya dari kelebihan Tegangan ataupun hubung singkat
(Short).
2.9 Microsoft Visual C# ( C Sharp) .Net
C# (dibaca: C sharp) merupakan sebuah bahasa pemrograman yang
berorientasi objek yang dikembangkan oleh Microsoft sebagai bagian dari
inisiatif kerangka .NET Framework. Bahasa pemrograman ini dibuat
berbasiskan bahasa C++ yang telah dipengaruhi oleh aspek-aspek ataupun
fitur bahasa yang terdapat pada bahasa-bahasa pemrograman lainnya seperti
Java, Delphi, Visual Basic, dan lain-lain dengan beberapa penyederhanaan.
Menurut standar ECMA-334 C# Language Specification, nama C# terdiri
atas sebuah huruf Latin C (U+0043) yang diikuti oleh tanda pagar yang
39
menandakan angka # (U+0023). Tanda pagar # yang digunakan memang
bukan tanda kres dalam seni musik (U+266F), dan tanda pagar # (U+0023)
tersebut digunakan karena karakter kres dalam seni musik tidak terdapat di
dalam keyboard standar.
Gambar 2.15. Microsoft visual C#.Net
„
2.9.1
Sejarah C#
Pada akhir dekade 1990-an, Microsoft membuat program Microsoft Visual
J++ sebagai sebuah langkah percobaan untuk menggunakan Java di dalam sistem
operasi Windows untuk meningkatkan antarmuka dari Microsoft Component
Object Model (COM). Akan tetapi, akibat masalah dengan pemegang hak cipta
bahasa pemrograman Java, Sun Microsystems, Microsoft pun menghentikan
pengembangan J++, dan beralih untuk membuat pengganti J++, kompilernya dan
mesin virtualnya sendiri dengan menggunakan sebuah bahasa pemrograman yang
bersifat general-purpose. Untuk menangani proyek ini, Microsoft merekrut
40
Anders Helsberg, yang merupakan mantan karyawan Borland yang membuat
bahasa Turbo Pascal, dan Borland Delphi, yang juga mendesain Windows
Foundation Classes (WFC) yang digunakan di dalam J++. Sebagai hasil dari
usaha tersebut, C# pun pertama kali diperkenalkan pada bulan Juli 2000 sebagai
sebuah bahasa pemrograman modern berorientasi objek yang menjadi sebuah
bahasa pemrograman utama di dalam pengembangan di dalam platform Microsoft
.NET Framework.
Pengalaman Helsberg sebelumnya dalam pendesain bahasa pemrograman
seperti Visual J++, Delphi, Turbo Pascal) dengan mudah dilihat dalam sintaksis
bahasa C#, begitu pula halnya pada inti Common Language Runtime (CLR). Dari
kutipan atas interview dan makalah-makalah teknisnya ia menyebutkan
kelemahan-kelemahan yang terdapat pada bahasa pemrograman yang umum
digunakan saat ini, misalnya C++, Java, Delphi, ataupun Smalltalk. Kelemahankelemahan yang dikemukakannya itu yang menjadi basis CLR sebagai bentukan
baru yang menutupi kelemahan-kelemahan tersebut, dan pada akhirnya
memengaruhi desain pada bahasa C# itu sendiri. Ada kritik yang menyatakan C#
sebagai bahasa yang berbagi akar dari bahasa-bahasa pemrograman lain. [1] Fiturfitur yang diambilnya dari bahasa C++ dan Java adalah desain berorientasi objek,
seperti garbage collection, reflection, akar kelas (root class), dan juga
penyederhanaan terhadap pewarisan jamak (multiple inheritance). Fitur-fitur
tersebut di dalam C# kini telah diaplikasikan terhadap iterasi, properti, kejadian
(event), metadata, dan konversi antara tipe-tipe sederhana dan juga objek.
41
C# didisain untuk memenuhi kebutuhan akan sintaksis C++ yang lebih
ringkas dan Rapid Application Development yang 'tanpa batas' (dibandingkan
dengan RAD yang 'terbatas' seperti yang terdapat pada Delphi dan Visual Basic).
Agar mampu mempromosikan penggunaan besar-besaran dari bahasa C#,
Microsoft, dengan dukungan dari Intel Corporation dan Hewlett-Packard,
mencoba mengajukan standardisasi terhadap bahasa C#. Akhirnya, pada bulan
Desember 2001, standar pertama pun diterima oleh European Computer
Manufacturers Association atau Ecma International (ECMA), dengan nomor
standar ECMA-334. Pada Desember 2002, standar kedua pun diadopsi oleh
ECMA, dan tiga bulan kemudian diterima oleh International Organization for
Standardization (ISO), dengan nomor standar ISO/IEC 23270:2006.
2.9.2
Tujuan Desain
Standar
European
Computer
Manufacturer
Association
(ECMA)
mendaftarkan beberapa tujuan desain dari bahasa pemrograman C#, sebagai
berikut:
1. Bahasa pemrograman C# dibuat sebagai bahasa pemrograman yang bersifat
bahasa pemrograman general-purpose (untuk tujuan jamak), berorientasi
objek, modern, dan sederhana.
2. Bahasa pemrograman C# ditujukan untuk digunakan dalam mengembangkan
komponen perangkat lunak yang mampu mengambil keuntungan dari
lingkungan terdistribusi.
3. Portabilitas programmer sangatlah penting, khususnya bagi programmer yang
telah lama menggunakan bahasa pemrograman C dan C++.
42
4. Dukungan untuk internasionalisasi (multi-language) juga sangat penting.
5. C# ditujukan agar cocok digunakan untuk menulis program aplikasi baik
dalam sistem klien-server (hosted system) maupun sistem embedded
(embedded system), mulai dari perangkat lunak yang sangat besar yang
menggunakan sistem operasi yang canggih hingga kepada perangkat lunak
yang sangat kecil yang memiliki fungsi-fungsi terdedikasi.
6. Meskipun aplikasi C# ditujukan agar bersifat 'ekonomis' dalam hal kebutuhan
pemrosesan dan memori komputer, bahasa C# tidak ditujukan untuk bersaing
secara langsung dengan kinerja dan ukuran perangkat lunak yang dibuat
dengan menggunakan bahasa pemrograman C dan bahasa rakitan.
Bahasa C# harus mencakup pengecekan jenis (type checking) yang kuat,
pengecekan larik (array), pendeteksian terhadap percobaan terhadap penggunaan
Variabel-variabel yang belum diinisialisasikan, portabilitas kode sumber, dan
pengumpulan sampah (garbage collection) secara otomatis.
Download