• Tidak ada hasil yang ditemukan

Serial Port

Dalam dokumen BAB II LANDASAN TEORI (Halaman 23-38)

3. Application Status

2.6.1 Serial Port

digitalWrite (6, HIGH) ; // memberikan logic HIGH pada pin 6

delay (1000) ; // menunda selama 1 detik

digitalWrite (6, LOW) ; // memberikan logic LOW pada pin 6 delay (2000) ; // 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

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.

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 void setup() { statements; } void loop() { statements; }

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 32bit 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.

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.

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

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 < y // 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

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.

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 :

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:

{ 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 {

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:

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; }

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 {

x = readSensors(); // assigns the value of // readSensors() to x delay (50); // pauses 50 milliseconds } while (x < 100); // loops if x is less than 100

2.7 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

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.

Dalam dokumen BAB II LANDASAN TEORI (Halaman 23-38)

Dokumen terkait