BAB II LANDASAN TEORI
Pada bab ini akan dibahas mengenai teori-teori dasar yang digunakan untuk menunjang terciptanya sebuah alat eskalator otomatis berbasis Arduino . 2.1 Mekanik Bagian mekanik ini merupakan bagian-bagian yang bergerak secara langsung, untuk melakukan pekerjaan- pekerjaan tersebut diperlukan perintah yang sesuai dan tepat penggunaannya. 2.1.1 Motor DC Motor listrik merupakan perangkat elektromagnetis yang mengubah energi listrik menjadi energi mekanik. Energi mekanik ini digunakan untuk, misalnya memutar impeller pompa, fan atau blower, menggerakan kompresor, mengangkat bahan,dll. Motor listrik digunakan juga di rumah (mixer, bor listrik, fan angin) dan di industri. Motor listrik kadangkala disebut “kuda kerja” nya industri sebab
7
8
diperkirakan bahwa motor-motor menggunakan sekitar 70% beban listrik total di industri. Motor DC memerlukan suplai tegangan yang searah pada kumparan medan untuk diubah menjadi energi mekanik. Kumparan medan pada motor dc disebut stator (bagian yang tidak berputar) dan kumparan jangkar disebut rotor (bagian yang berputar). Jika terjadi putaran pada kumparan jangkar dalam pada medan magnet, maka akan timbul tegangan (GGL) yang berubah-ubah arah pada setiap setengah putaran, sehingga merupakan tegangan bolak-balik. Prinsip kerja dari arus searah adalah membalik phasa tegangan dari gelombang yang mempunyai nilai positif dengan menggunakan komutator, dengan demikian arus yang berbalik arah dengan kumparan jangkar yang berputar dalam medan magnet. Bentuk motor paling sederhana memiliki kumparan satu lilitan yang bisa berputar bebas di antara kutub-kutub magnet permanen.
Gambar 2.1 Motor DC sederhana
9
Catu tegangan dc dari baterai menuju ke lilitan melalui sikat yang menyentuh komutator, dua segmen yang terhubung dengan dua ujung lilitan. Kumparan satu lilitan pada gambar di atas disebut angker dinamo. Angker dinamo adalah sebutan untuk komponen yang berputar di antara medan magnet.
2.1.2 Pengendali Motor DC Pembuatan robot berbasis Arduino yang dikontrol oleh Android melalui Bluetooth ini agar dapat bergerak digunakan sebuah aktuator yaitu berupa motor DC. Untuk dapat mengaplikasikan motor DC ini pada robot yang akan dibuat maka diperlukan pengendalian motor DC. Terdapat dua jenis pengendalian yang harus dilakukan untuk dapat mengaplikasikan motor DC, yaitu :
A. Pengendalian arah putar motor DC Untuk mendapatkan arah putaran searah dengan jarum jam (clockwise, c) maka motor DC harus diberikan tegangan dengan polaritas bagian atas motor positif dan bawah negatif.
Gambar 2.2 Polarisasi Tegangan Untuk Putaran Motor Searah Jarum Jam
10
Sedangkan untuk mendapatkan arah putaran berlawanan arah dengan jarum jam (counter clockwise, ccw) maka motor DC harus diberikan tegangan dengan polaritas bagian atas motor negatif dan bawah positif.
Gambar 2.3 Polarisasi Tegangan Untuk Putaran Motor Berlawanan Dengan Arah Jarum Jam
B. Pengendalian Kecepatan Motor DC Pengendalian kecepatan putar motor DC dapat dilakukan dengan mengatur besar tegangan terminal motor. Metode lain yang biasa digunakan untuk mengendalikan kecepatan motor DC adalah dengan teknik modulasi lebar pulsa atau Pulse Width Modulation(PWM) yang ada pada driver motor.
11
2.1.3 Resistor
Gambar 2.4 Resistor Resistor menentukan aliran arus dalam rangkaian listrik.Dimana ada resistansi yang besar di rangkaian aliran arus kecil, dan resistansi rendah aliran arus besar.
2.1.4 Kapasitor
Gambar 2.5 Kapasitor Kapasitor adalah komponen yang digunakan untuk menyimpan muatan listrik dan digunakan dalam rangkaian timer.Sebuah kapasitor dapat digunakan dengan resistor untuk menghasilkan timer. Kadang-kadang kapasitor digunakan untuk memperhalus arus dalam sebuah rangkaian karena mereka dapat memotong
12
spike dari komponen lain seperti relay. Bila daya dipasok ke sirkuit yang mengandung kapasitor – Kapasitor mengisi daya.Bila daya dimatikan kapasitor mulai pembuangan muatan listrik secara perlahan-lahan.
2.1.5 Dioda
Gambar 2.6 Dioda Sebuah dioda memungkinkan listrik mengalir dalam satu arah saja dan menghalangi aliran ke arah yang berlawanan.Mereka dapat dianggap sebagai katup satu arah dan mereka digunakan dalam berbagai sirkuit, biasanya sebagai bentuk perlindungan. Ada berbagai jenis dioda namun fungsi dasar mereka adalah sama. 2.1.6 Transistor
Gambar 2.7 Transistor
13
Transistor dapat dianggap sebagai jenis switch. Transistor adalah pusat untuk elektronik dan ada dua jenis utama, NPN dan PNP. Kebanyakan sirkuit cenderung menggunakan NPN.Ada ratusan transistor yang bekerja pada tegangan yang berbeda, tetapi mereka semua jatuh ke dalam dua kategori tersebut.
2.1.7 Saklar
Gambar 2.8 Saklar Toggle Saklar toggle adalah bentuk saklar yang paling sederhana, dioperasikan oleh sebuah tuas toggle yang dapat ditekan ke atas atau ke bawah. Menurut konvensinya, posisi ke bawah mengindikasikan keadaan hidup atau menutup atau disambungkan. Saklar toggle yang diperlihatkan di dalam foto memiliki tuas dengan posisi ke atas. Di belakang tuas terdapat sebuah alur sekrup (dolly) yang dilengkapi dengan sebuah mur besar. Alur dan mur ini digunakan untuk memasangkan saklar disebuah panel. Di bagian belakang saklar terdapat dua buah ta (cantolan) terminal, tempat dimana kawat-kawat listrik disambung dan disolder
14
2.2 Arduino Arduino adalah kit elektronik atau papan rangkaian elektronik open source yang di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler dengan jenis AVR dari perusahaan Atmel. Mikrokontroler itu sendiri adalah chipatau IC (integrated Circuit) yang bisa diprogram menggunakan komputer. Tujuan menanamkan program pada mikrokontroler adalah agar rangkaian elektronik dapat membaca input, proses, dan output sebuah rangkaian elektronik. Arduino adalah inovasi dibidang elektronika yang telah membuat perubahan besar dalam dunia mikrokontroler sehingga seorang yang awam amatiran bisa membuat proyek-proyek elektronika atau robotika dengan relatif mudah dan cepat.Arduino lahir dari lingkungan mahasiswa dan dosen yang merasakan
sulitnya
mempelajari
mikrokontroler.Kemudian
mereka
mengembangkan sebuah sistem minimum berbasis AVR yang dilengkapi dengan bootloader dan software yang user friendly.Hasilnya adalah sebuah board mikrokontroler yang bersifat open source yang bisa dipelajari atau dikembangkan oleh mahasiswa, professional, atau penggemar mikrokontroler di seluruh dunia. Konon Arduino sudah lebih popular dibandingkan Basic Stamp yang lahir lebih awal yang harganya relatif mahal dan close source. Penjualan board Arduino bisa menghasilkan milyaran Rupiah pada penjualan kit online seperti Sparkfun. Mikrokontroler ada pada perangkat elektronik di sekelililng kita. Misalnya Handphone, MP3 player, DVD, televisi, AC, dll. Mikrokontroler juga dipakai untuk keperluan mengendalikan robot.
15
2.2.1 Jenis-Jenis Arduino 1. Arduino USB
Gambar 2.9 Arduino USB Dapat dibawa kemana-mana bersama laptop atau dimasukkan ke dalam saku.Walaupun bahasa pemrograman Arduino adalah bahasa C/C++, tetapi dengan penambahan library dan fungsi-fungsi standar membuat pemrograman Arduino lebih mudah dipelajari dan manusiawi. Contoh, untuk mengirimkan nilai HIGH pada pin 10 Arduino, cukup menggunakan fungsi digitalWrite (10, HIGH), sedangkan kalau menggunakan bahasa C aslinya adalah PORTB I=(1<<2). Tersedia library yang sangat banyak untuk menghubungkan Arduino dengan macam-macam sensor, actuator maupun modul komunikasi.Misalnya library untuk mouse, keyboard, servo, GPS, dsb.Berhubung Arduino adalah open source, maka library- library ini juga open source dan dapat di-download secara gratis di website Arduino.Dengan bahasa yang lebih mudah dan adanya library dasar yang lengkap, maka mengembangkan aplikasi elektronik relatif lebih mudah.Contoh, kalau kita ingin membuat robot wireless, cukup membeli sebuah modul Bluetooth dan menyambungkan ke Arduino.
16
Arduino tidak membuat bahasa pemrograman khusus, melainkan menggunakan bahasa C yang sudah ada, lebih tepatnya menggunakan bahasa C yang menggunakan compiler AVG – GCC (AVR GNU C – Compiler).Bahasa C adalah bahasa yang sangat lazim dipakai sejak awal-awal komputer diciptakan dan sangat berperan dalam perkembangan software. Bahasa C telah banyak membuat bermacam-macam sistem operasi Unix, linux, dsb. Bahasa C juga biasanya digunakan di akademi dan perguruan tinggi selain bahasa pemrograman basic atau pascal.Bahasa C adalah bahasa pemrograman yang sangat ampuh yang kekuatannya mendekati bahasa assembler. Bahasa C menghasilkan file kode objek yang sangat kecil dan dieksekusi dengan sangat cepat. Karena itu bahasa C sering digunakan pada sistem operasi dan pemrograman mikrokontroler. Bahasa C adalah multi-platform, bahasa C bisa diterapkan pada lingkungan windows, Unix, Linux, atau sistem operasi lain tanpa mengalami perubahan source code ( kalaupun ada perubahan, biasanya sangat minim). Karena Arduino menggunakan bahasa C yang multi-platform, maka software Ardunio pun bisa dijalankan pada semua sistem operasi yang umum, misalnya : Windows, Linux, MacOs. Bahasa C mudah dipelajari.Maksud kata mudah di sini adalah relatif, tergantung kemampuan dari tiap user. Kalau anda sudah mengerti bahasa C, anda dapat melakukan pengembangan dengan board lain atau mikrokontroler lain dengan lebih mudah. Diinternet banyak library bahasa C untuk Arduino yang bias di-download secara gratis.Setiap library Arduino biasanya disertai dengan contoh pemakaiannya.Keberadaan librarylibrary ini bukan hanya membantu kita membuat proyek mikrokontroler. Tetapi
17
bias dijadikan sarana untuk mendalami pemrograman bahasa C pada mikrokontroler.
Socket USB Soket USB adalah soket untuk kabel USB yang disambungkan ke
komputer atau laptop.Berfungsi untuk mengirimkan program ke Arduino dan juga sebagai port komunikasi serial.
Input / Output Digital Input/output
digital
atau
digital
pin
adalah
pin-pin
untuk
menghubungkan Arduino dengan komponen atau rangkaian digital. Misalnya, kalau igin membuat LED berkelip, LED tersebut dapat 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.
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.
Accu Accu adalah suatu alat yang menyimpan tegangan 12 VDC sesuai
keperluan yang akan dibutuhkan, accu menyuplai tegangan ke motor shield dengan tegangan 12 VDC untuk menggerakan motor dc pada robot.
18
2. Arduino Serial Menggunakan RS232 sebagai antar muka pemrograman atau komunikasi komputer.
Gambar 2.10 Arduino Serial 3. Arduino Pro Micro
Gambar 2.11 Arduino Pro Micro Arduino pro micro berbasis Atmega 32u4 yang didesign uleh Sparkfun Electronic. Arduino pro micro hampir sama seperti arduino leonardo yakni tidak membutuhkan USB – serial interface untuk memprogram arduino. Hanya memasukan kabel data ke arduino pro micro anda dapat langsung memprogram. Spesifikasi Arduino Pro Micro :
19
ATMega 32u4 running at 5V/16MHz
On – board micro – USB connector for programming
4 x 10 bit ADC pins
12 x digital I/Os (5 buah PWM)
RX dan TX Hardware Serial Connections
4. Arduino Fio Ditujukan untuk penggunaan nirkabel.
Gambar 2.12 Arduino Fio 5. Arduino Lilypad Papan dengan bentuk yang melingkar. Contoh: LilyPad Arduino 00, LilyPad Arduino 01, LilyPad Arduino 02, LilyPad Arduino 03, LilyPad Arduino 04.
20
Gambar 2.13 Lilypad 6. Arduino Nano dan Arduino Mini
Gambar 2.14 Arduino Nano dan Mini Papan berbentuk kompak dan digunakan bersama breadboard. Contoh:
Arduino Nano 3.0, Arduino Nano 2.x
Arduino Mini 04, Arduino Mini 03, Arduino Stamp 02
21
2.3
Sensor Jarak Ultrasonik PING Sensor jarak ultrasonik PING adalah sensor 40 KHz produksi parallax yang
banyakdigunakan untuk aplikasi atau kontes robot cerdas untuk mendeteksi jarak suatu objek.
Gambar 2.15 Sensor jarak ultrasonik
Sensor PING mendeteksi jarak objek dengan cara memancarkan gelombang ultrasonik ( 40 KHz ) selama t = 200 us kemudian mendeteksi pantulannya. SensorPING memancarkan gelombang ultrasonik sesuai dengan kontrol dari mikrokontrollerpengendali ( pulsa trigger dengan tout min 2 us ). Spesifikasi sensor ini : a. Kisaran pengukuran 3cm-3m. b. Input trigger –positive TTL pulse, 2uS min., 5uS tipikal. c. Echo hold off 750uS dari fall of trigger pulse. d. Delay before next measurement 200uS. e. Burst indicator LED menampilkan aktifitas sensor.
22
Gambar 2.16 Diagram waktu sensor ping
2.3.1
Prinsip Kerja Sensor PING
Pada dasanya, Sensor PINGterdiri dari sebuah chip pembangkit sinyal 40KHz, sebuah speaker ultrasonik dan sebuah mikropon ultrasonik. Speaker ultrasonik mengubah sinyal 40 KHz menjadi suara sementara mikropon ultrasonik berfungsi untuk mendeteksi pantulan suaranya.Sensor PING mendeteksi jarak obyek dengan cara memancarkan gelombang ultrasonik (40 kHz) selama tBURST (200 μs) kemudian mendeteksi pantulannya. Sensor PING memancarkan gelombang ultrasonik sesuai dengan kontrol dari mikrokontroler pengendali (pulsa trigger dengan tOUT min. 2 μs) .
23
Gambar 2.17 Prinsip kerja sensor ping
2.4
Motor Driver (Motor Shield) Ada beberapa macam driver motor DC yang biasa kita pakai seperti
menggunakan relay yang diaktifkan dengan transistor sebagai saklar, namun yang demikian dianggap tidak efisien dan terlalu ribet “repot” dalam pengerjaan hardware-nya. Dengan berkembangnya dunia IC, sekarang sudah ada H Bridge yang dikemas dalam satu IC dimana memudahkan kita dalam pelaksanaan hardware dan kendalinya apalagi jika menggunakan mikrokontroler saya rasa akan lebih mudah lagi dalam penggunaannya. IC yang familiar seperti IC L298.IC ini memiliki kelebihan dan kekurangan masing-masing.Modul yang menggunakan IC driver L298 yang memiliki kemampuan menggerakkan motor DC sampai arus 4A dengan tegangan maksimum 46VDC untuk satu kanalnya.Rangkaian driver motor DC dengan IC L298 diperlihatkan pada gambar di bawah. Pin enable A dan B untuk mengendalikan jalan atau kecepatan motor, pin input 1 sampai 4 untuk mengendalikan arah putaran. Pin enable diberi VCC 5 volt untuk kecepatan penuh dan PWM (Pulse Width Modulation) untuk kecepatan rotasi yang bervariasi tergantung dari level high-nya. Ilustrasinya ditunjukkan pada gambar di bawah.
24
Gambar 2.18 Driver Motor DC Shield dengan L298
2.5 Aplikasi Program Arduino IDE ( Integrated Development Environment ) Ketika kita membuka program Arduino IDE ( Integrated Development Environment ), akan terlihat serupa dengan tampilan gambar 2.4 di bawah ini. Jika kita menggunakan Windows atau Linux, akan terlihat perbedaan, tetapi pada dasarnya IDE akan sama, tidak perduli Opersai sistem apa yang digunakan.
25
Gambar 2.19 Tampilan Program IDE
2.6 Arduino Programming Tool Arduino merupakan perangkat pemrograman mikrokontroler jenis AVR yang tersedia secara bebas (open source) untuk membuat prototip elektronika yang dapat berinteraksi dengan keadaan sekitarnya. Arduino dapat menerima input dari berbagai jenis sensor dan mengendalikan sensor, servo, dan actuator lainnya.
26
Toolbar
Coding Area
Application Status Message
Gambar 2.20 Tampilan Utama Aplikasi Arduino
1. Toolbar
a
b
c
d
e
f
g
Gambar 2.21 Toolbar Pada Aplikasi Arduino
27
a. Verify Tombol
ini
digunakan
untuk
meng-compile
program
yang
telah
dibuat.Compile berguna untuk mengetahui apakah program yang telah dibuat benar atau masih memilki kesalahan. Apabia ada kesalahan yang terjadi, bagian messageakan menampilkan letak kesalahan tersebut.
b. Stop Tombol ini digunakan untuk membatalkan proses verify yang sedang berlangsung.
c. New Tombol ini digunakan untuk membuat coding pada layar baru d. Open Tombol ini digunakan untuk membuka coding
yang sudah disimpan
sebelumnya.
e. Save Tombol ini digunakan untuk menyimpan coding yang sedang dikerjakan.
28
f. Upload Tombol ini digunakan untuk mengirim coding yang sudah dikerjakan ke mikrokontroler.
g. Serial Monitor Tombol ini digunakan untuk melihat aktivitas komunikasi serial dari mikrokontroler baik yang dikirm oleh user
ke mikrokontroler maupun
sebaliknya.
2. Coding Area Bagian ini merupakan tempat penulisan coding dengan menggunakan bahasa pemrograman C. Coding di dalam Arduino memiliki dua bagian utama, yaitu : a. Void Setup ( ) Bagian ini merupakan inisialisasi yang diperlukan sebelum program utama dijalankan, contoh : void setup ( ) { Serial.begin (9600) ;
// Inisialisasi baudrate komunikasi serial
pinMode (6, INPUT) ; // set pin 6 Arduino sebagai input pinMode (7, OUTPUT) ; // set pin 7 Arduino sebagai output }
29
b. Void Loop ( ) Bagian ini merupakan fungsi utama yang dijalankan terus menerus selama modul Arduino terhubung dengan power supply.Contoh : void loop ( ) { digitalWrite (6, HIGH) ;
// memberikan logic HIGH pada pin
6 delay (1000) ;
// menunda selama 1 detik
digitalWrite (6, LOW) ; delay (2000) ;
// memberikan logic LOW pada pin 6
// menunda selama 2 detik
3. Application Status Bagian ini memberikan informasi kepada pengguna mengenai tugas yang yang sedang dujalankan oleh aplikasi Arduino.
4. Message Bagian ini memberikan informasi kepada pengguna mengenai besarnya ukuran file dari coding yang dibuat dan letak kesalahan yang terjadi pada coding.
2.6.1
Serial Port Serial digunakan untuk memprogram mikrokontroler langsung dari
aplikasi Arduino. Selain itu, komunikasi serial juga digunakan untuk mengirim
30
dan menerima data antara mikrokontroler dan komputer melalui fasilitas serial monitor yang terdapat pada aplikasi Arduino. Seperti gambar berikut ini :
Gambar 2.22 Tools Serial Ports
2.6.2 Programming (Arduino) 1. Struktur Struktur dasar dari bahasa pemrograman Arduino cukup sederhana dan berjalan dalam setidaknya dua bagian. Dibawah ini merupakan dua bagian yang diperlukan, termasuk blok pernyataan.
31
void setup() { statements; }
void loop() { statements; }
Dimana setup () adalah persiapan, loop() adalah eksekusi. Kedua fungsi yang dibutuhkan untuk program untuk bekerja. Fungsi setup() harus mengikuti deklarasi setiap variabel di awal program. Ini adalah fungsi pertama yang berjalan di program, dijalankan hanya
sekali,
dan
digunakan
untuk
mengatur
pinMode
atau
menginisialisasi komunikasi serial. Fungsi loop() yang dijalankan berikutnya dan termasuk kode yang akan dieksekusi berulang kali - membaca input, memicu output, dll. Fungsi ini adalah inti dari semua program Arduino dan melakukan sebagian besar pekerjaan.
2. Tipe Data
32
A. byte byte menyimpan nilai numerik 8-bit tanpa bilangan desimal. Bernilai 0-255. B. int Integer adalah tipe data utama untuk penyimpanan nomor tanpa bilangan desimal dan menyimpan nilai 16-bit dengan kisaran 32.767 sampai -32.768. Note: Variabel integer akan direset jika melewati nilai maksimum atau nilai minimum dikarenakan program atau perbandingan. Sebagai contoh, jika x = 32767 dan pernyataan berikutnya menambahkan 1 x, x = x + 1 atau x + +, x kemudian akan direset dan setara 32.768.
C. long Tipe data utama untuk penyimpanan nomor, tanpa bilangan desimal, disimpan dalam nilai 32-bit dengan kisaran 2147483647 untuk 2147483648. D. float Sebuah datatype untuk angka floating-point, atau angka yang memiliki titik desimal. Angka floating-point memiliki resolusi lebih besar dari bilangan bulat dan disimpan sebagai nilai 32-bit dengan kisaran 3.4028235E +38 ke-3.4028235E +38. Note: Angka floating-point tidak exact, dan dapat menghasilkan hasil yang aneh bila dibandingkan. floating-point juga jauh lebih lambat dibandingkan integer dalam melakukan perhitungan, sehingga harus dihindari jika mungkin.
33
E. array Array adalah koleksi nilai yang diakses dengan nomor indeks. Setiap nilai dalam array dapat dipanggil dengan memanggil nama array dan nomor indeks nilai. Array harus dideklarasikan dan opsional ditugaskan nilai sebelum mereka dapat digunakan. int myArray[ ] = {value0, value1, value2...} Demikian juga dimungkinkan untuk mendeklarasikan array dengan mendeklarasikan tipe array dan ukuran dan kemudian memberikan nilai pada posisi indeks: int myArray[5]; // declares integer array w/ 6 positions myArray[3] = 10; // assigns the 4th index the value 10 Untuk mengambil nilai dari sebuah array, menetapkan variabel ke array dan posisi indeks: x = myArray[3]; // x now equals 10 Array sering digunakan dalam untuk loop, di mana counter kenaikan juga digunakan sebagai posisi indeks untuk setiap nilai array.
3. Aritmatika Operator aritmatika termasuk penambahan, pengurangan, perkalian, dan pembagian. Mereka mengembalikan jumlah, selisih, produk, atau quotient (masing-masing) dari dua operan.
34
y = y + 3; x = x – 7; i = j * 6; r = r / 5;
Operasi ini dilakukan dengan menggunakan tipe data dari operan, jadi, misalnya, 9/4 menghasilkan 2 bukannya 2,25 sejak 9 dan 4 ints dan tidak mampu menggunakan bilangan desimal. Ini juga berarti bahwa operasi bisa bertambah jika hasilnya lebih besar dari apa yang dapat disimpan
dalam
tipe
data.
Jika operan dari berbagai jenis, jenis yang lebih besar digunakan untuk perhitungan. Misalnya, jika salah satu nomor (operan) adalah dari tipe float dan lainnya bertipe integer, floating point akan digunakan untuk perhitungan. Pilih ukuran variabel yang cukup besar untuk menampung hasil terbesar dari perhitungan. Tahu pada titik apa variabel Anda akan rollover dan juga apa yang terjadi di arah lain misalnya (0 - 1) ATAU (0-32.768). Untuk matematika yang memerlukan pecahan, menggunakan variabel float, tetapi menyadari kekurangan mereka: ukuran besar dan kecepatan
perhitungan
lambat.
Note: Gunakan cast operator misalnya (int) myFloat untuk mengkonversi satu jenis variabel yang lain dengan cepat. Misalnya, i = (int) 3,6 akan menetapkan i sama dengan 3.
4. Compound Assignments compound assignment menggabungkan operasi aritmatika dengan tugas
35
variabel. Ini biasanya ditemukan dalam untuk loop seperti yang dijelaskan kemudian. compound assignment yang paling umum yaitu: x ++ // same as x = x + 1, or increments x by +1 x --
// same as x = x - 1, or decrements x by -1
x += y // same as x = x + y, or increments x by +y x -= y // same as x = x - y, or decrements x by -y x *= y // same as x = x * y, or multiplies x by y
x /= y // same as x = x / y, or divides x by y Note: Misalnya, x * = 3 akan tiga kali lipat nilai lama x dan kembali menetapkan hasilnya sebagai x.
5. Operator Pembanding Perbandingan satu variabel atau konstan terhadap yang lain sering digunakan dalam jika pernyataan untuk menguji apakah kondisi tertentu adalah benar. x == y // x is equal to y x != y // x is not equal to y x
// x is less than y
x>y
// x is greater than y
x <= y // x is less than or equal to y
x >= y // x is greater than or equal to y
36
6. Operator Logika Logical operator biasanya cara untuk membandingkan dua ekspresi dan mengkategorikan TRUE atau FALSE, tergantung pada operator. Ada tiga operator logika, AND, OR, dan NOT, yang sering digunakan dalam pernyataan if: Logical AND: if (x > 0 && x < 5) // true only if both // expressions are true
Logical OR: if (x > 0 || y > 0) // true if either // expression is true
Logical NOT: if (!x > 0) // true only if
// expression is false 7. Konstanta Bahasa Arduino memiliki nilai-nilai yang telah ditetapkan, yang disebut konstanta. Mereka digunakan untuk membuat program lebih mudah dibaca. Konstanta diklasifikasikan dalam kelompok. A. true/false Ini adalah konstanta Boolean yang mendefinisikan tingkat logika. FALSE mudah didefinisikan sebagai 0 (nol) sedangkan TRUE sering didefinisikan sebagai 1, tetapi juga bisa menjadi apa pun kecuali nol.
37
Jadi dalam arti Boolean, -1, 2, dan -200 semua juga didefinisikan sebagai TRUE. if (b == TRUE); { doSomething;
} B. high/low Konstanta ini mendefinisikan tingkat pin sebagai HIGH atau LOW dan digunakan ketika membaca atau menulis ke pin digital. HIGH didefinisikan sebagai tingkat logika 1, ON, atau 5 volt sementara LOW adalah tingkat logika 0, OFF, atau 0 volt. digitalWrite(13, HIGH); C. input/output Konstanta digunakan dengan fungsi pinMode () untuk menentukan mode pin digital baik sebagai INPUT atau OUTPUT. pinMode(13, OUTPUT); 8. Flow Control A. if if menguji apakah kondisi tertentu telah tercapai, seperti nilai analog berada di atas jumlah tertentu, dan mengeksekusi pernyataan di dalam kurung jika pernyataan tersebut benar. Jika program tidak sesuai maka pernyataan tersebut akan dilewati. Format untuk if :
38
if (someVariable ?? value) { doSomething;
} Contoh di atas membandingkan someVariable ke nilai lain, yang dapat berupa variabel atau konstanta. Jika perbandingan, atau kondisi dalam kurung adalah benar, pernyataan di dalam kurung kurawal dijalankan. Jika tidak, program akan dilewati dan melanjutkan ke program di bawahnya. Note: Waspadai menggunakan '=', seperti dalam if (x = 10), sedangkan secara teknis mendefinisikan variabel x dengan nilai 10 dan sebagai akibat selalu benar. Alih-alih menggunakan '==', seperti dalam if (x == 10), yang hanya menguji apakah x terjadi menyamai nilai 10 atau tidak.
B. if… else if… else terbatas pada dua pilihan yang harus dibuat. Misalnya, jika Anda ingin menguji input digital, dan melakukan satu hal jika input HIGH atau sebaliknya melakukan hal lain jika input adalah LOW, Anda akan menulis dengan cara ini:
if (inputPin == HIGH)
39
{ doThingA; }
else { doThingB;
} else juga dapat mendahului lain if tes, sehingga bisa lebih dari satu, tes saling eksklusif dapat dijalankan pada waktu yang sama. Hal ini bahkan dimungkinkan untuk memiliki jumlah yang tidak terbatas dari cabang tersebut. Ingat juga, hanya satu set pernyataan akan dijalankan tergantung pada tes kondisi: if (inputPin < 500) { doThingA; }
else if (inputPin >= 1000) { doThingB; }
else {
40
doThingC;
} Note: Sebuah pernyataan if hanya menguji apakah kondisi di dalam kurung adalah benar atau salah. Pernyataan ini bisa menjadi pernyataan C berlaku seperti dalam contoh pertama, jika (inputPin == HIGH). Dalam contoh ini, jika pernyataan hanya memeriksa untuk melihat apakah memang input yang ditetapkan bernilai HIGH, atau +5 v
C. for pernyataan for digunakan untuk mengulang blok pernyataan diapit oleh kurung kurawal sejumlah tertentu kali. Counter increment sering digunakan untuk kenaikan dan mengakhiri loop. Ada tiga bagian, dipisahkan dengan titik koma (;), untuk for loop header:
for (initialization; condition; expression) { doSomething;
}
Inisialisasi variabel lokal, atau counter kenaikan, terjadi pertama dan hanya sekali. Setiap kali melalui loop, kondisi berikut diuji. Jika kondisi tetap benar, pernyataan dan ekspresi berikut dijalankan dan kondisi diuji lagi. Ketika kondisi menjadi salah, loop berakhir.
Contoh berikut mulai i bilangan bulat pada 0, tes untuk melihat apakah saya masih kurang dari 20 dan jika benar, kenaikan i oleh 1 dan mengeksekusi pernyataan yang didalam kurung kurawal:
41
for (int i=0; i<20; i++) {
// declares i, tests if less // than 20, increments i by 1
digitalWrite(13, HIGH); // turns pin 13 on delay(250);
// pauses for 1/4 second
digitalWrite(13, LOW); // turns pin 13 off delay(250);
// pauses for 1/4 second
} Note: bahasa C untuk loop jauh lebih fleksibel daripada loop ditemukan dalam beberapa bahasa komputer lainnya, termasuk BASIC. Salah satu atau semua dari tiga elemen header yang dapat diabaikan, meskipun titik koma diperlukan. Juga pernyataan untuk inisialisasi, kondisi, dan ekspresi dapat berupa pernyataan bahasa C berlaku dengan variabel terkait. Jenis yang tidak biasa untuk laporan dapat memberikan solusi untuk beberapa masalah pemrograman.
D. while while loops akan dieksekusi terus menerus, dan tak terbatas, sampai ekspresi dalam kurung menjadi false. Sesuatu harus mengubah variabel diuji, atau loop while tidak akan pernah keluar. Hal ini bisa dalam kode Anda, seperti variabel bertambah, atau kondisi eksternal, seperti pengujian sensor.
while (someVariable ?? value) { doSomething;
}
42
Contoh berikut tes apakah 'someVariable' kurang dari 200 dan jika benar mengeksekusi pernyataan di dalam kurung dan akan terus looping sampai 'someVariable' tidak lagi kurang dari 200. while (someVariable < 200) // tests if less than 200 { doSomething;
// executes enclosed statements
someVariable++;
// increments variable by 1
}
E. do… while do loop adalah didorong loop bawah yang bekerja dalam cara yang sama seperti loop while, dengan pengecualian bahwa kondisi ini diuji pada akhir loop, sehingga do loop akan selalu berjalan setidaknya sekali. do { doSomething;
} while (someVariable ?? value); Contoh berikut memberikan readSensors () untuk variabel 'x', jeda selama 50 milidetik, kemudian loop tanpa batas waktu sampai 'x' tidak lagi kurang dari 100: do {
43
x = readSensors(); // assigns the value of // readSensors() to x delay (50);
// pauses 50 milliseconds
} while (x < 100);
2.7
// loops if x is less than 100
LED LED adalah komponen elektronik yang dapat memancarkan cahaya
ketika dilalui arus listrik pada kedua kutubnya. Arus listrik mengalir dari kutub positif (anoda) menuju kutub negatif (katoda). Bentuk fisik dan simbol LED dapat dilihat pada gambar 2.22
Gambar 2.23 Bentuk fisik dan simbol LED
44
2.8
Acrylic
Gambar 2.24Lembar Acrylic
Acrylic bersifat isolator sehingga aman digunakan sebagai mekanik robot dan juga acrylic memiliki berbagai macam pilihan warna sehingga dalam
menambah
estetika
eskalator.
Tidak
direkomendasikan
menggunakan acrylic bening untuk bagian mekanik robot yang bertanggungjawab pada beban yang berat , karena acrylic berwarna lebih kuat dari acrylic bening.