KRCT KONTES ROBOT CERDAS
TANJUNGPINANG 2012
[MODUL WORKSHOP 1] Modul ini sebagai panduan untuk para peserta workshop KRCT 2012, materi di dalam modul ini terdiri dari konsep robot, pengenalan mikrokontroler ATmega 16, pengenalan robot edukasi, pemrograman dengan menggunakan arduino untuk robot edukasi.
Modul Workshop KRCT 2012
Pengenalan Robot
Robot adalah sebuah alat mekanik maupun elektronik hasil rakitan karya manusia yang dapat di program maupun tidak di program, dengan tujuan dapat membantu pekerjaan manusia itu sendiri. Saat ini hampir tidak ada orang yang tidak mengenal robot, namun pengertian robot tidaklah dipahami secara sama oleh setiap orang. Sebagian membayangkan robot adalah suatu mesin tiruan manusia (humanoid), meski demikian humanoid bukanlah satusatunya jenis robot.
Gambar Wright Karel Capek
Robot Ciptaannya
Kata robot berasal dari bahasa Czech, yaitu kata robota yang berarti pekerja. Robot pertama kali diperkenalkan pertama kali oleh Wright Karel Capek pada tahun 1920 melalui sebuah acara sandiwara.
2
Modul Workshop KRCT 2012
Kategori Umum Robot Secara umum robot terbagi menjadi 2 : 1.Robot manipulator = bersifat diam dan tidak berpindah posisi,biasanya dicirikan berbentuk lengan dan biasa banyak di gunakan di industry-industri.
2.Robot Mobil = mengarah ke robot yang bergerak tidak berdiam di satu tempat. Ada 3 jenis robot Mobil: - Robot Daratan / ground robot - Robot air - Robot Udara
Kategori Robot Daratan } Robot Beroda
} Robot Berkaki
3
Modul Workshop KRCT 2012
Sistem Dasar Robot
Sistem Mekanik : merupakan salah satu
bagian penting yang di gunakan untuk
menyusun sebuah robot. Sistem mekanik meliputi bentuk dan desain robot, material penyusun robot, serta sistem penunjang penggerak robot.
Sistem Elektronik : merupakan sistem untuk mengendalikan, menggerakan, menstabilkan robot. Sistem elektronik meliputi rangkaian pcb seperti Rangkaian sensor, rangkaian driver, rangkaian catu daya, rangkaian control.
4
Modul Workshop KRCT 2012
Mengenal Mikrokontroler Mikrokontroler disebut juga MCU adalah salah satu komponen elektronik atau IC yang memiliki beberapa sifat seperti komputer, yaitu CPU (Central Processing Unit) atau unit pemrosesan terpusat, memori program, memori data, I/O (port untuk input dan output), bentuknya yang kecil dan harganya murah sehingga dapat ditanam (embedded dalam berbagai peralatan rumah tangga, kantor, industri, robot dll.
Robot beraksi karena ada program didalamnya yang di simpan didalam mikrokontroler. Input dan Output Robot diproses oleh mikrokontroler.
.
5
Modul Workshop KRCT 2012
Mikrokontroler AVR ATMEGA 16 Datasheet Mikrokontroler AVR Atmega 16 :
Port Input/Output ATMEGA 16
6
Modul Workshop KRCT 2012
Proses Memprogram Mikrokontroler
Keterangan 1. Proses 1 : Kita membuat program kedalam bahasa pemrograman, bahasa pemrograman computer yang bisa di gunakan adalah C, Bascom, Arduino dan masih banyak lagi, Disini kita menggunakan ARDUINO karena lebih simple dan mudah dimengerti. 2. Proses 2 : Setelah kita membuat program tersebut maka akan di compiler menjadi bilangan .HEX (Hexadecimal). 3. Proses 3 : Bilangan .HEX tersebut kemudian di rubah ke biner melalui alat yang namanya programmer, jenis yang digunakan adalah programmer K125R yang dapat menyuntik/mengupload program kedalam mikrokontroler. 4. Proses : Mikrokontroler akan memproses robot sesuai dengan yang kita upload ke mikrokontroler tersebut.
Dibawah ini adalah gambar Programer K125R yang di gunakan untuk mengupload program:
7
Modul Workshop KRCT 2012
Penghantar Bahasa Pemrograman ARDUINO
Arduino adalah bahasa pemrograman yang bersifat yang bersifat open-source, diturunkan dari Wiring platform, dirancang untuk memudahkan penggunaan elektronik dalam berbagai bidang.
Kegunaan Arduino tergantung kepada kita yang membuat program. Arduino bisa digunakan untuk mengontrol LED, bisa juga digunakan untuk mengontrol helikopter. Bahasa Pemrograman Arduino Bahasa pemrograman Arduino adalah bahasa C. Tetapi bahasa ini sudah dipermudah menggunakan fungsi-fungsi yang sederhana sehingga pemula pun bisa mempelajarinya dengan cukup mudah. Panduan bahasa pemograman Arduino beserta dengan contoh-contohnya bisa dibaca di halaman http://arduino.cc/en/Reference/HomePage
Gambar Tampilan ARDUINO
8
Modul Workshop KRCT 2012
Struktur Awal Penulisan ARDUINO
Struktur Penulisan Awal ARDUINO Terdiri dari : void setup( ) { } Semua kode didalam kurung kurawal akan dijalankan hanya satu kali ketika program Arduino dijalankan untuk pertama kalinya. void loop( ) { } Fungsi ini akan dijalankan setelah setup (fungsi void setup) selesai. Setelah dijalankan satu kali fungsi ini akan dijalankan lagi, dan lagi secara terus menerus sampai catu daya (power) dilepaskan.
Variabel ARDUINO Variabel adalah suatu pengenal yang digunakan untuk mewakili suatu nilai tertentu di dalam proses program. Contoh penulisan variabel : 1. int a; 2. char nama[20];
Scope 1. Global, di-definisikan di paling atas. 2. Lokal, di-definisikan di dalam fungsi.
9
Modul Workshop KRCT 2012
Tipe Data ARDUINO Tipe data merupakan bagian dari suatu program yang dibuat untuk menyatakan suatu bentuk nilai. Contoh : Kita ingin menyimpan nilai pada variabel LUAS dan akan di gunakan untuk proses perhitungan maka tipe data yang di gunakan adalah int.
Operator Aritmatika ARDUINO Operator Aritmatika adalah operator yang dipakai dalam proses perhitungan dalam suatu program.
Operator Kondisi ARDUINO Operator Kondisi adalah operator yang dipakai dalam proses perbandingan antara 1 logic program dengan logic program lainnya.
10
Modul Workshop KRCT 2012
Operator Boolean ARDUINO Operator boolean adalah operator yang menghasilkan true atau false.
11
Modul Workshop KRCT 2012
Struktur Pengkondisian IF ARDUINO Struktur Pengkondisian adalah struktur yang di gunakan untuk memilih 1 dari 2 kondisi(pernyataan) atau lebih.
Contoh Penggunaan IF : Ada 3 tombol untuk menghidupkan lampu
1. Lampu Kuning 2. Lampu Hijau 3. Lampu Merah
Kenyataan : Saya menekan tombol 2 Bentuk If nya :
Hasilnya Maka Yang Hidup Adalah Lampu HIjau
12
Modul Workshop KRCT 2012
Struktur Pengkondisian Switch ARDUINO
Struktur Pengulangan FOR ARDUINO
13
Modul Workshop KRCT 2012
Struktur Pengulangan WHILE ARDUINO
Pin Mapping ARDUINO
14
Modul Workshop KRCT 2012
Input Mikrokontroler Input Mikrokontroler Dapat Berupa Digital Dan Analog Input Digital - Input Digital adalah input yang memiliki tegangan 5 volt (HIGH) dan 0 volt (LOW). - Contoh INPUT Digital : - Membaca Tombol Switch Input Analog - Input Analog adalah input yang memiliki tegangan antara 5 volt s/d 0 volt (LOW). - Contoh INPUT Analog : - Potensiometer - Line Sensor
Output Mikrokontroler Output Mikrokontroler Hanya Berupa Digital Output Digital - Output Digital adalah output yang memiliki tegangan 5 volt (HIGH) dan 0 volt (LOW). - Output Digital Bisa juga di pin Digital PWM -
Contoh OUTPUT Digital : - Menghidup dan mematikan LED - Menghidupkan dan mematikan Buzzer
15 Created By Panitia KRCT 2012
Modul Workshop KRCT 2012
Pemrograman Input / Output Digital Arduino Perintah pinMode() Digunakan untuk menentukan pin mana yang akan di gunakan dan menentukan apakah sebuah pin : INPUT atau OUTPUT Contoh : Untuk menentukan pin Input : pinMode(8,INPUT); Untuk menentukan pin Output : pinMode(8,OUTPUT); Perintah digitalWrite() Digunakan untuk memberikan logika LOW atau HIGH pada sebuah pin I/O. Contoh : Menghidupkan led pada pin 18 : digitalWrite(18,HIGH); Mematikan led pada pin 18 : digitalWrite(18,LOW); Perintah digitalRead() Digunakan Untuk membaca logika dari sebuah pin I/O Contoh : Membaca switch pada pin 10 : digitalRead(10);
Pemrograman Input / Output Analog Arduino Perintah analogWrite() - analogWrite() dapat digunakan untuk menulis nilai analog (gelombang PWM) untuk sebuah pin. - Dapat juga digunakan menyalakan LED dengan cahaya yang bervariasi atau mengontrol motor dengan kecepatan yang bervariasi. - Value (nilai) analogWrite adalah angka antara 0 ( 0% duty cycle ~ 0V) dan 255 (100% duty cycle ~ 5V). Contoh : Menulis kecepatan motor/dinamo pada pin 6 : analogWrite(5,255);
Perintah analogRead() Ketika pin analog ditetapkan sebagai INPUT kita dapat membaca keluaran voltase-nya. Keluarannya berupa angka antara 0 (untuk 0 volts) dan 1024 (untuk 5 volts). Contoh : - Membaca sensor suara pada pin 24 analog : analogRead(0);
16 Created By Panitia KRCT 2012
Modul Workshop KRCT 2012
Perintah Waktu Tunda 1. delay()
Akan memberi jeda pada program untuk beberapa waktu ( dalam millisecond). Contoh : kita akan menulis waktu tunda 2 detik maka delay(2000); 2. delayMicroseconds()
memberi jeda program dalam beberapa waktu (mikrodetik), 1000 microsecond adalah 1 milisecond dan 1 juta microsecond adalah 1 detik. Contoh : kita akan menulis waktu tunda 2 microsecond maka delayMicroseconds (2000);
Perintah Map Map adalah Memetakan ulang sebuah angka dari sebuah range ke yang range lainnya. Contoh : Kita akan mengubah range angka antara 0 s/d 1023 menjadi 0 s/d 100 maka Map(angka_yang_ingin_diubah,0,1023,0,100);
17 Created By Panitia KRCT 2012
Modul Workshop KRCT 2012
LED (Light Emiting Diode)
Contoh Program Arduino Menghidupkan LED : void setup() { pinMode(18,OUTPUT); pinMode(19,OUTPUT); pinMode(20,OUTPUT); pinMode(21,OUTPUT); pinMode(22,OUTPUT); pinMode(23,OUTPUT); } void loop() { digitalWrite(18,HIGH); digitalWrite(19,HIGH); digitalWrite(20,HIGH); digitalWrite(21,HIGH); digitalWrite(22,HIGH); digitalWrite(23,HIGH); }
18
Modul Workshop KRCT 2012 Contoh Program Arduino Menghidupkan LED Secara FLIP-FLOP(hidup mati dengan jedah waktu 1 detik) : void setup() { pinMode(18,OUTPUT); pinMode(19,OUTPUT); pinMode(20,OUTPUT); pinMode(21,OUTPUT); pinMode(22,OUTPUT); pinMode(23,OUTPUT); } void loop() { digitalWrite(18,HIGH); digitalWrite(19,HIGH); digitalWrite(20,HIGH); digitalWrite(21,HIGH); digitalWrite(22,HIGH); digitalWrite(23,HIGH); delay(1000); digitalWrite(18,LOW); digitalWrite(19,LOW); digitalWrite(20,LOW); digitalWrite(21,LOW); digitalWrite(22,LOW); digitalWrite(23,LOW); delay(1000); }
KETERANGAN : - LED sudah terpasang pada robot edukasi pada port C2,C3,C4,C5,C6,C7, tidak perlu memasang kabel lagi.
19 Created By Panitia KRCT 2012
Modul Workshop KRCT 2012
Buzzer
Untuk menggunakan Buzzer, hubungkan pin K1 dengan salah satu pin mikrokontroler. Buzzer diaktifkan dengan sinyal HIGH. Berikut adalah contoh program untuk membunyikan buzzer yang terhubung dengan PORTB.0 atau pin 8. Contoh Program Arduino Menghidupkan Buzzer : void setup() { pinMode(8,OUTPUT); } void loop() { digitalWrite(8,HIGH); }
Contoh Program Arduino Menghidupkan Buzzer secara flip-flop : void setup() { pinMode(8,OUTPUT); } void loop() { digitalWrite(8,HIGH); delay(1000); digitalWrite(8,LOW); delay(1000); }
20
Modul Workshop KRCT 2012
Touch Sensor (Switch)
Contoh Program Arduinonya : Hubungkan pin dari touch sensor dengan port input digital yang telah disediakan. Dalam contoh berikut, touch sensor dihubungkan dengan port A3 (pin 27) Konfigurasi dari touch sensor adalah active LOW dengan resistor pull up internal diaktifkan. Ketika salah satu touch sensor tertekan, LED yang terhubung dengan port C2 (pin 18) akan menyala selama 1 detik. void setup() { pinMode(27,INPUT); digitalWrite(27,HIGH); pinMode(18,OUTPUT); } void loop() { if ( digitalRead(27) == 0) { digitalWrite(18,HIGH); delay(1000); digitalWrite(18,LOW); } }
21
Modul Workshop KRCT 2012
Komunikasi Serial
. Berikut ini adalah perintah dalam arduino untuk Komunikasi Serial :
22
Modul Workshop KRCT 2012 Menggunakan Serial Pastikan kabel serial terhubung dengan port serial dari komputer. Pastikan setting baudrate di terminal komputer sudah sesuai. Dalam contoh di bawah digunakan baudrate 9600.
Pasang Ke Port USB Komputer. Dan cek Nomor PORT USB yang dipasang Kabel Serial Tersebut
Membaca serial ke komputer void setup() { Serial.begin(9600); } void loop() { Serial.println(“Hello World”); delay(2000); }
Mengirim inputan keyboard angka 1 ke robot kemudian akan ada bunyi buzzer void setup() { pinMode(8,OUTPUT); Serial.begin(9600); } void loop() { if ( Serial.available() > 0 ) { int terima = Serial.read(); if(terima == '1') { digitalWrite(8,HIGH); }else{ digitalWrite(8,LOW); } } }
23
Modul Workshop KRCT 2012
Potensiometer
. Membaca serial potensio ke computer Pasang kabel 3 ke ground, kabel 2 ke port A0 , kabel 1 ke 5 volt
void setup(){ Serial.begin(9600); } void loop(){ int nilai_potensio = analogRead(0); Serial.print("TIDAK DI MAPPING : "); Serial.print(nilai_potensio); nilai_potensio=map(nilai_potensio,0,1023,0,100); Serial.print(", DI MAPPING : "); Serial.print(nilai_potensio); Serial.println(); delay(500); }
24
Modul Workshop KRCT 2012 Membuat Lampu Indikator Dengan Potensiometer void setup(){ pinMode(18,OUTPUT); pinMode(19,OUTPUT); pinMode(20,OUTPUT); pinMode(21,OUTPUT); pinMode(22,OUTPUT); pinMode(23,OUTPUT); Serial.begin(9600); } void loop(){ int nilai_potensio = analogRead(0); nilai_potensio=map(nilai_potensio,0,1023,0,120); if(nilai_potensio>0 && nilai_potensio<20){ digitalWrite(18,HIGH); digitalWrite(19,LOW); digitalWrite(20,LOW); digitalWrite(21,LOW); digitalWrite(22,LOW); digitalWrite(23,LOW); }else if(nilai_potensio>20 && nilai_potensio<40){ digitalWrite(18,HIGH); digitalWrite(19,HIGH); digitalWrite(20,LOW); digitalWrite(21,LOW); digitalWrite(22,LOW); digitalWrite(23,LOW); }else if(nilai_potensio>40 && nilai_potensio<60){ digitalWrite(18,HIGH); digitalWrite(19,HIGH); digitalWrite(20,HIGH); digitalWrite(21,LOW); digitalWrite(22,LOW); digitalWrite(23,LOW); }else if(nilai_potensio>60 && nilai_potensio<80){ digitalWrite(18,HIGH); digitalWrite(19,HIGH); digitalWrite(20,HIGH); digitalWrite(21,HIGH); digitalWrite(22,LOW); digitalWrite(23,LOW); }else if(nilai_potensio>80 && nilai_potensio<100){ digitalWrite(18,HIGH); digitalWrite(19,HIGH); 25 Created By Panitia KRCT 2012
Modul Workshop KRCT 2012 digitalWrite(20,HIGH); digitalWrite(21,HIGH); digitalWrite(22,HIGH); digitalWrite(23,LOW); }else if(nilai_potensio>100 && nilai_potensio<120){ digitalWrite(18,HIGH); digitalWrite(19,HIGH); digitalWrite(20,HIGH); digitalWrite(21,HIGH); digitalWrite(22,HIGH); digitalWrite(23,HIGH); } } Perhatikan : Setelah jadi putar potensiometer tersebut..perhatikan lampu led di robot controler
TABEL KOMPONEN INPUT DAN OUTPUT Nama Komponen LED Buzzer Potensio Switch
Input / Output Output Output Input Input
Digital / Analog Digital Digital Analog Digital
PORT Yang Digunakan SEMUA PORT PORT B,C,D PORT A Single PORT A Double
26 Created By Panitia KRCT 2012
Modul Workshop KRCT 2012 PWM (Pulse Width Modulation) PWM adalah mengatur besar keluaran tegangan antara 0 Volt sampai dengan 5 Volt. Teknik PWM biasa digunakan : - mengatur kecepatan putar motor yaitu motor dapat digerakan dengan kecepatan penuh dengan pemberian tegangan 5 volt atau motor bergerak dengan kecepatan sedang dengan memberikan tegangan 2.5 volt atau bergerak berhenti dengan pemberian tegangan 0 volt. - Selain mengatur kecepatan motor, teknik pwm bias juga digunakan untuk mengatur Suara Buzzer menjadi pelan atau kuat Nilai pwm berkisar antara 0 s/d 255 dimana 0 mempresentasikan tegangan 0 volt sedangkan 255 mempresenstasikan tegangan 5 volt. Jadi kalau kita ingin 2.5 volt maka bagi saja 255/2=127,5 (kita bulatkan saja 128) maka 128 mempresentasikan 2.5 volt. Pada mikrokontroler atmega 16 terdapat 4 pin pwm yaitu PORT B.3, PORT D.4, PORT D.5, PORT D.7
Jadi kalau kita ingin menggunakan teknik PWM hanya terdapat pada 4 pin tersebut. Pada pemrograman ARDUINO untuk menggunakan teknik PWM bisa menggunakan perintah analogWrite(pin,nilai_pwm); Contoh : analogWrite(4,255); Ingat : - Nilai_pwm analogWrite adalah angka antara 0 ( 0% duty cycle ~ 0V) dan 255 (100% duty cycle ~ 5V).
27
Modul Workshop KRCT 2012 Motor DC
Motor DC atau dinamo adalah satu motor penggerak yang dikendalikan dengan arus searah (DC). Dengan memberikan beda tegangan pada kedua terminal tersebut, motor akan berputar pada satu arah. Motor DC memerlukan suplai tegangan (energy listrik) yang searah pada kumparan medan magnet untuk diubah menjadi berputar (energi mekanik). Dibawah ini merupakan konsep cara kerja motor DC berputar :
Arah Putar Motor DC
28
Modul Workshop KRCT 2012 Pengendali Motor DC Pengendali Motor DC atau biasa disebut dengan driver motor DC adalah sebuah rangkaian elektronik yang digunakan untuk mengendalikan arah putaran dan kecepatan motor DC Pengendali motor DC menggunakan komponen IC L293D Dual H-Bridge, bentuknya seperti gambar di bawah ini :
. Jadi mikrokontroler pada robot kontroler yang akan mengatur pengendali motor, sehingga pengendali motor akan mengatur arah putar dan kecepatan pada motor dc
MikroKontroler
Pengendali Motor IC L293D
Motor DC
29
Modul Workshop KRCT 2012 Pengendali Motor DC (Gearbox) Pada robot controller sudah terpasang Pengendali motor DC yang menggunakan IC L293D letaknya seperti gambar di bawah ini :
Keterangan : PORT D.4 (PIN 4) : Merupakan pin PWM yang digunakan untuk mengatur kecepatan putaran pada motor dc kiri. Contoh ardudino-nya: analogWrite(4,255); PORT D.2 (PIN 2) dan PORT D.3 (PIN 3) : Merupakan pin untuk mengatur arah motor dc kiri. Contoh : digitalWrite(2,HIGH); digitalWrite(3,LOW); Maka motor DC kiri akan berputar(arah putar tergantung pemasangan kabel pin motor ke Driver motor) PORT D.5 (PIN 5) : Merupakan pin PWM yang digunakan untuk mengatur kecepatan putaran pada motor dc kanan. Contoh : analogWrite(5,255); 30
Modul Workshop KRCT 2012
PORT D.6 (PIN 6) dan PORT D.7 (PIN 7): Merupakan pin untuk mengatur arah pada motor dc kanan. Contoh : digitalWrite(6,HIGH); digitalWrite(7,LOW); Maka motor DC kanan akan berputar(arah putar tergantung pemasangan kabel pin motor ke Driver motor)
Ingat !!! pada robot controller sudah terpasang PORT untuk mengendalikan motor , yaitu : PORT Motor DC PORT D.4 (PWM) PORT D.2 PORT D.3 PORT D.5 (PWM) PORT D.6 PORT D.7
Pin Mapping Arduino 4 2 3 5 6 7
Menggerakan Motor DC Gearbox Pasang kabel gearbox motor kiri dan kanan pada pengendali motor, jalankan program dibwah ini maka akan mengakibatkan gearbox berputar kedepan / robot berjalan, jika robt mundur berarti pemasangan kabel terbalik. void setup() { pinMode(2,OUTPUT); pinMode(3,OUTPUT); pinMode(6,OUTPUT); pinMode(7,OUTPUT); } void loop() { digitalWrite(2,HIGH); digitalWrite(3,LOW); digitalWrite(6,HIGH); digitalWrite(7,LOW);
analogWrite(4,150); analogWrite(5,150); }
31 Created By Panitia KRCT 2012
Modul Workshop KRCT 2012 Menggunakan Function Untuk Menggerakan Motor DC pada Gearbox void maju(int kecepatanKiri,int kecepatanKanan) { digitalWrite(2,HIGH); digitalWrite(3,LOW); digitalWrite(6,HIGH); digitalWrite(7,LOW);
analogWrite(4, kecepatanKiri); analogWrite(5, kecepatanKanan); } void setup() { pinMode(2,OUTPUT); pinMode(3,OUTPUT); pinMode(6,OUTPUT); pinMode(7,OUTPUT); } void loop() { maju(150,150); delay(1000); maju(200,50); delay(1000);
}
32 Created By Panitia KRCT 2012
Modul Workshop KRCT 2012 Pengendali Motor DC untuk Kipas Pemadam Api Prinsipnya sama dengan menggerakan motor pada gearbox, tapi port yang digunakan berbeda kalau pengendali motor dc untuk gearbox sudah terpasang di robot controller tapi kalau pengendali motor dc untuk kipas pemadam api di pasang eksternal
Keterangan : -
PIN dari mikrokontroler yang digunakan bisa PORT B.0 dan B.1 PIN PWM Mikrokontroler pada robot controller edukasi hanya bisa digunakan di PORT B.3
Menjalan Motor DC kipas pemadam api pada arduino : Pasang motor dc kipas pemadam api ke output motor DC pada pengendali Motor DC, kemudian pasang kabel pin B.0 dan B.1 Robot kontroler ke pengendali motor DC (PIN dari mikrokontroler) lihat gambar diatas, kemudian pasang juga kabel PORT B.3 Robot kontroler ke PIN PWM pada pengendali motor DC. void setup(){ pinMode(8,OUTPUT); pinMode(9,OUTPUT); } void loop(){ digitalWrite(8,HIGH); digitalWrite(9,LOW); analogWrite(11,255); }
33
Modul Workshop KRCT 2012 LINE SENSOR ( SENSOR PHOTODIODA) Merupakan sensor yang digunakan untuk mendeteksi adanya suatu garis hitam dan putih. Pada sensor garis ini terdiri komponen yang namanya LED dan photodioda. Disini tugas LED sebagai pengirim cahaya kemudia diterima oleh pohotodioda. Photodioda adalah jenis photodetektor mampu mengubah cahaya menjadi arus.
Gambar PhotoDioda Proses Kerja Sensor ini LED akan memancarkan cahaya kemudian dipantulkan dan diterima oleh photo dioda. ketika sensor terkena garis putih cahaya led akan memantul dan diterima photo dioda, resistansi photo dioda akan menjadi kecil dan begitu juga sebaliknya jika mengenai garis hitam cahaya yang memantul sedikit resistansi photo dioda akan memjadi besar.
Kesimpulan ketika sensor photodioda baca putih :
Kesimpulan ketika sensor photodioda baca hitam :
34
Modul Workshop KRCT 2012 Membaca Nilai Resistansi pada Line Sensor / Sensor Photodioda
Pasang ke 5 volt
Pasang ke Gnd /Ground
Sensor 1 Pasang ke A0 (1 Pin)
Sensor 2 Pasang Ke A1 (1 Pin)
Sensor 5 Pasang Ke A4 (1 Pin Sensor 3 Pasang Ke A2 (1 Pin)
Sensor 4 Pasang Ke A3 (1 Pin)
void setup() { Serial.begin(9600); } void loop() { int Sensor1 = analogRead(0); int Sensor2 = analogRead(1); int Sensor3 = analogRead(2); int Sensor4 = analogRead(3); int Sensor5 = analogRead(4); Serial.println(“============”); Serial.print(“Sensor 1 = ”); Serial.println(Sensor1); Serial.print(“Sensor 2 = ”); Serial.println(Sensor2); Serial.print(“Sensor 3 = ”); Serial.println(Sensor3); Serial.print(“Sensor 4 = ”); Serial.println(Sensor4); Serial.print(“Sensor 5 = ”); Serial.println(Sensor5); Serial.println(“============”); delay(2000); }
35