DISUSUN OLEH:
NAMA: RAHMAT PURNAMA
NIM: 222010009
PRODI: TEHNIK IINFORMATIKA
2. Values
Values merepresentasikan konstanta dan variabel.
Tipe data yang bisa digunakan seperti array, boolean, char, float, dan lainnya sangat mirip
dengan C++.
3. Structure
Structure adalah bagian dari bahasa Arduino yang mengandung elemen kode, seperti
operator.
Berikut adalah contoh kode dan tampilan software saat mengerjakan pemrograman dengan
Arduino.
Cara Memprogram Arduino
Dasar dari logika kode Arduino adalah struktur “if-then“, atau jika-maka.
Struktur ini akan dibagi menjadi empat block, yaitu setup, input, manipulate data, dan output.
1. Setup
Setup dalam Arduino adalah kode yang ditulis untuk menjalankan suatu perintah satu kali,
seperti kalibrasi sensor.
2. Input
Input merupakan value yang digunakan sebagai kondisi atau syarat (if/jika).
3. Manipulate data
Bagian ini digunakan untuk mengubah data menjadi bentuk yang lebih mudah untuk
pelaksanaan kalkulasi.
4. Output
Output dalam Arduino adalah hasil dari logika kode yang dimasukkan (then).
Hasil output didapatkan dari data yang dikalkulasi dari tahap sebelumnya, tergantung dari
syarat “if” yang telah ditentukan.
3.Komentar
Sketch umumnya mengandung Komentar Program. Tentu saja, suatu Sketch bisa saja
tidak mengandung Komentar Program. Komentar Program ditujukan untuk memberi
keterangan kepada pembaca Sketch maupun bagi sang programer itu sendiri. Jadi Komentar
Program bukanlah suatu baris perintah. Ada atau tidaknya Komentar Program tidak ada
pengaruhnya bagi Arduino itu sendiri. Akan tetapi, Komentar Program menjadi sangat
penting untuk menusia, khususnya pembaca Sketch yang ingin mengetahui rahasia dibalik
kode-kode Sketch. Keterangan yang diberikan bisa berupa kegunaan Sketch, pencipta Sketch,
versi Sketch, ataupun berupa penjelasan untuk instruksi-instruksi yang terdapat di sketch.
Suatau Komentar Program dapat dibentuk dengan menuliskan simbol // dibagian mana saja
di Sketch. Jika pada Sketch ditulis simbol // maka tulisan pada baris yang sama setelah
simbol tersebut akan otomatis dianggap sebagai Komentar Program. Penggunaan simbol //
sebagai komentar program akan membuat komentar program pada baris yang sama saja.
Berikut contoh pembuatan Komentar Program dengan menggunakan simbol //
// ---------------------------------------------------------
// Sketch ini dibuat oleh Atok (Admin Bangka Robotic School)
// Ditujukan sebagai contoh penggunaan Komentar Program
// Tgl Pembuatan : 23 Desember 2015
// ---------------------------------------------------------
Pada contoh diatas, setiap komentar mencakup satu baris. Dalam praktik seringkali
Komentar Program bercampur dengan pernyataan dalam baris yang sama. Biasanya
digunakan untuk memberi keterangan kegunaan baris suatu program. Contonya sebagai
berikut
Pada contoh diatas Srial.begin(9600) adalah sebuah pernyataan dan disebelah kanannya
adalah sebuah Komentar Program. Selain menggunakan simbol //, Komentar Program juga
dapat dibuat dengan menggunakan pasangan simbol /* dan */ Kelebihan penggunaan
pasangan simbol tersebut adalah memungkinkan pembuatan Komentar Program yang terdiri
atas beberapa baris sekaligus. Berikut contohnya:
// ---------------------------------------------------------
// Sketch ini dibuat oleh Atok (Admin Bangka Robotic School)
// Ditujukan sebagai contoh penggunaan Komentar Program
// Tgl Pembuatan : 23 Desember 2015
// ---------------------------------------------------------
Dapat ditulis menjadi
/* ---------------------------------------------------------
Sketch ini dibuat oleh Atok (Admin Bangka Robotic School)
Ditujukan sebagai contoh penggunaan Komentar Program
Tgl Pembuatan : 23 Desember 2015
--------------------------------------------------------- */
//////////////////////////////////////////////// Inisialisasi
void setup() { //
// put your setup code here, to run once: //
Serial.begin(9600); //
} //
////////////////////////////////////////////////
/////////////////////////////////////////////////// Looping
void loop() { //
// put your main code here, to run repeatedly: //
Serial.print("Hai !!!"); //
Serial.println("Saya Belajar Sketch di"); //
Serial.print("Bangka Robotic School"); //
} //
///////////////////////////////////////////////////
dengan konfigurasi forward bias. Berbeda dengan dioda pada umumnya, kemampuan
mengalirkan arus pada LED (Light Emitting Dioda) cukup rendah yaitu maksimal 20 mA.
Apabila LED (Light Emitting Dioda) dialiri arus lebih besar dari 20 mA maka LED akan
rusak, sehingga pada rangkaian LED dipasang sebuah resistor sebgai pembatas arus.
Gambar memperlihatkan bahwa LED memiliki kaki 2 buah seperti dengan dioda yaitu
kaki anoda dan kaki katoda. Pada gambar diatas kaki anoda memiliki ciri fisik lebih
panjang dari kaki katoda pada saat masih baru, kemudian kaki katoda pada LED (Light
Emitting Dioda) ditandai dengan bagian body LED yang di papas rata. Kaki anoda dan
kaki katoda pada LED (Light Emitting Dioda) disimbolkan seperti pada gambar diatas.
Pemasangan LED (Light Emitting Dioda) agar dapat menyala adalah dengan memberikan
tegangan bias maju yaitu dengan memberikan tegangan positif ke kaki anoda dan tegangan
negatif ke kaki katoda.
1. ketika modul ini mendeteksi halangan di depan sinyal inframerah, lampu indikator
warna hijau akan menyala dan port output mengeluarkan sinyal rendah secara
menerus. Module ini dapat mendeteksi jarak 2 - 30cm dengan sudut deteksi 35 derajat.
Jarak deteksi dapat dinaikkan dengan memutar potensio searah jarum jam dan untuk
mengurangi jarak deteksi diputar berlawanan arah jarum jam;
2. sensor aktif inframerah mendeteksi pantulan, oleh karenanya bentuk pantulan dari
objek sangat penting. Permukaan warna hitam memiliki permukaan pantulan yang
paling kecil dan permukaan putih memiliki pantulan yang paling besar;
3. port output dapat dihubungkan langsung dengan IO port pada mikrokontroler atau
dapat juga langsung dihubungkan dengan relay 5V. Memiliki spesifikasi teknis dimana
tegangan external (VCC) berkisar antara 3,3V hingga 5V, GND (ground) dengan ouput
digital 0 dan 1.
4. menggunakan pembanding LM393 comparator yang stabil; dan dapat digunakan pada
tegangan 3-5V DC dan ketika diaktifkan, lampu indikator warna merah menyala.
Ultrasonic Sensor
Sensor ultrasonik adalah sebuah sensor yang berfungsi untuk mengubah besaran fisis
(bunyi) menjadi besaran listrik dan sebaliknya. Cara kerja sensor ini didasarkan pada
prinsip dari pantulan suatu gelombang suara sehingga dapat dipakai untuk menafsirkan
eksistensi (jarak) suatu benda dengan frekuensi tertentu. Disebut sebagai sensor ultrasonik
karena sensor ini menggunakan gelombang ultrasonik (bunyi ultrasonik). Gelombang
ultrasonik adalah gelombang bunyi yang mempunyai frekuensi sangat tinggi yaitu 20.000
Hz. Bunyi ultrasonik tidak dapat di dengar oleh telinga manusia. Bunyi ultrasonik dapat
didengar oleh anjing, kucing, kelelawar, dan lumba-lumba. Bunyi ultrasonik nisa
merambat melalui zat padat, cair dan gas. Reflektivitas bunyi ultrasonik di permukaan zat
padat hampir sama dengan reflektivitas bunyi ultrasonik di permukaan zat cair. Akan
tetapi, gelombang bunyi ultrasonik akan diserap oleh tekstil dan busa. Pada sensor
ultrasonik, gelombang ultrasonik dibangkitkan melalui sebuah alat yang disebut dengan
piezoelektrik dengan frekuensi tertentu. Piezoelektrik ini akan menghasilkan gelombang
ultrasonik (umumnya berfrekuensi 40kHz) ketika sebuah osilator diterapkan pada benda
tersebut. Secara umum, alat ini akan menembakkan gelombang ultrasonik menuju suatu
area atau suatu target. Setelah gelombang menyentuh permukaan target, maka target akan
memantulkan kembali gelombang tersebut. Gelombang pantulan dari target akan
ditangkap oleh sensor, kemudian sensor menghitung selisih antara waktu pengiriman
gelombang dan waktu gelombang pantul diterima.
Secara detail, cara kerja sensor ultrasonik adalah sebagai berikut:
1. Sinyal dipancarkan oleh pemancar ultrasonik dengan frekuensi tertentu dan dengan
durasi waktu tertentu. Sinyal tersebut berfrekuensi diatas 20kHz. Untuk mengukur jarak
benda (sensor jarak), frekuensi yang umum digunakan adalah 40kHz.
2. Sinyal yang dipancarkan akan merambat sebagai gelombang bunyi dengan kecepatan
sekitar 340 m/s. Ketika menumbuk suatu benda, maka sinyal tersebut akan dipantulkan
oleh benda tersebut.
3. Setelah gelombang pantulan sampai di alat penerima, maka sinyal tersebut akan
diproses untuk menghitung jarak benda tersebut. Jarak benda dihitung berdasarkan
rumus: S = 0,034.t/2 dimana S merupakan jarak antara sensor ultrasonik dengan benda
(bidang pantul), dan t adalah selisih antara waktu (durasi) pemancaran gelombang oleh
transmitter dan waktu ketika gelombang pantul diterima receiver.
Motor Servo
Motor servo adalah jenis motor DC dengan sistem umpan balik tertutup yang terdiri dari
sebuah motor DC, serangkaian gear, rangkaian kontrol, dan juga potensiometer. Jadi motor
servo sebenarnya tak berdiri sendiri, melainkan didukung oleh komponen-komponen lain
yang berada dalam satu paket. Sedangkan fungsi potensiometer dalam motor servo adalah
untuk menentukan batas sudut dari putaran servo. Sementara sudut sumbu motor servo
dapat diatur berdasarkan lebar pulsa yang dikirim melalui kaki sinyal dari kabel servo itu
sendiri. Oleh karena itu motor servo dapat berputer searah dan berlawanan arah jarum jam.
Motor servo dapat menampilkan gerakan 0 derajat, 90 derajat, 180 derajat, hingga 360
derajat. Tak heran jika motor ini banyak diaplikasikan untuk penggerak kaki dan juga
lengan robot. Selain itu motor servo juga memiliki torsi yang besar sehingga mampu
menopang beban cukup berat. Gambar 8. Bagian-bagian motor servo Prinsip kerja dari
motor servo tak jauh berbeda dibanding dengan motor DC yang lain. Hanya saja motor ini
dapat bekerja searah maupun berlawanan jarum jam. Derajat putaran dari motor servo juga
dapat dikontrol dengan mengatur pulsa yang masuk ke dalam motor tersebut. Motor servo
akan bekerja dengan baik bila pin kontrolnya diberikan sinyal PWM dengan frekwensi 50
Hz. Frekwensi tersebut dapat diperoleh ketika kondisi Ton duty cycle berada di angka 1,5
ms. Dalam posisi tersebut rotor dari motor berhenti tepat di tengah-tengah alias sudut nor
derajat atau netral. Pada saat kondisi Ton duty cycle kurang dari angka 1,5 ms, maka rotor
akan berputar berlawanan arah jarum jam. Sebaliknya pada saat kondisi Ton duty cycle
lebih dari angka 1,5 ms, maka rotor akan berputar searah jarum jam.
Operator
Operator dalam pemograman merupakan simbol yang menjelaskan kepada compiler
untuk melakukan fungsi matematika dan logika khusus. Pada arduino terdapat banyak
operator bawaan antara lain:
1. Operator Aritmatika.
2. Operator Pembanding.
3. Operator Boolean.
1.Operator Aritmatika
Operator aritmatika pada arduino meliput:
Operator Penugasan (=) berfungsi untuk menyimpan nilai yang ada di sebelah
tanda (=) kanan ke dalam variabel yang ada di sebelah kiri tanda (=)
Penjumlahan (+) berfungsi menjumlahkan operan.
Pengurangan (-) berfungsi mengurangi operan .
Perkalian (*) berfungsi mengalikan operan.
Pembagian (:) berfungsi membagi operan.
Modulo (%) berfungsi menghasilkan sisa dari nilai bagi.
Contoh Program :
2. OPERATOR LOGIKA
Operator Logika digunakan untuk memberi perintah AND, OR, NOT.
&& ( AND )
Contoh :
if (input1 == HIGH && input2 == HIGH)
{ digitalWrite (led, HIGH); }
Artinya : Jika ‘input1’ DAN ‘input2’ sama sama berlogika HIGH maka ‘led’ akan berlogika
HIGH.
| | ( OR )
Contoh :
if (input1 == HIGH || input2 == HIGH)
{ digitalWrite (led, HIGH); }
Artinya :Jika ‘input1’ berlogika HIGH ATAU ‘input2’ berlogika HIGH maka ‘led’ akan
berlogika HIGH.
! ( NOT )
Contoh :
if ( ! input == LOW )
{ digitalWrite (led, HIGH); }
Artinya : Jika ‘input’ berlogika LOW maka ‘led’ akan berlogika LOW.
Operator ini terdiri dari dua jenis yaitu increment (++) dan decrement (- -). Operator
increment digunakan untuk menambah nilai suatu variabel dengan 1, sedangkan operator
decrement digunakan untuk mengurangi nilai suatu variabel dengan 1.
contoh:
Increment (--)
Kedua pernyataan diatas sama, apabila X = 2, maka kedua pernyataan tersebut akan menghasilkan X
= 3 ketika dieksekusi.
Perbedaaanya adalah untuk ++X , kurangi dulu nilai X dgn 1 baru di proses baris kode tsb, sedangkan
X++ , proses dulu baris code tsb baru kurangi nilai X dgn 1
Decrement (--)
Untuk decrement penjelasannya sama dengan increment, perbedaannya hanyalah jika increment
digunakan untuk kenaikan sedangkan decrement digunakan untuk penurunan.
Karakter
Karakter dapat berupa huruf,digit,simbol,dan bahkan karakter kontrol (seperti spasi dan
*).
·Huruf:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abedefghijklmnopqrstuvwxyz
Digit:
0123456789
\n*+Spasi
Pengenal(Identifier)
Pengenal adalah suatu nama yang biasa dipakai dalam pemrograman untuk
menyatakan:
variabel;
· konstanta bernama;
·tipe data;
fungsi;
Penamaan Pengenal
huruf,
digit,
garis-bawah(_),
Pemberian nama pengenal sebaiknya menggunakan kata yang berarti dan mudah
dibaca. Sebagai contoh pengenal
ataupun
suhu ruangan
Untuk pengenal yang melibatkan lebih dari satu kata, model punuk unta kadang
digunakan. Sebagai contoh,
suhu Ruangan
suhu_ruangan
Aturan yang berlaku pada punuk unta:
Konstanta
Selain dalam bentuk desimal (sistem bilangan dengan basis 10),konstanta bilangan
bulat(char, int, short,dan long dapat disajikan dalam bentuk sistem oktal (sistem bilangan
berbasis 8) ataupun sistem heksadesimal (sistem bilangan berbasis 16).
Konstanta Boolean
Konstanta yang menyatakan nilai benar di tipe boolean ditulis seperti berikut:
true
Adapun,konstanta yang menyatakan nilai salah ditulis sebagai berikut:
false
Konstanta Karakter
Konstanta karakter ditulis dengan awalan dan akhiran petik tunggal(‘). Contoh:
‘A’
‘5’
(*)
Karakter tertentu ditulis dengan tanda khusus. Contoh:
Konstanta integer atau bilangan bulat ditulis tanpa mengandung tanda pecahan.Tanda
+untuk menyatakan bilangan positif bersifat opsional.Contoh:
-23
56
+56 (identik dengan 56)
Konstanta bertipe long ditulis dengan akhiran L atau l. Contoh:
45678901L
Konstanta bertipe unsigned long bisa ditulis dengan akhiran UL atau ul. Contoh:
234567989UL
Konstanta Oktal
Dalam sistem oktal, digit yang digunakan berkisar antara 0 sampai dengan 7. Penulisan
konstanta diawali dengan 0 (nol).Contoh:
010(9 desimal)
011(10 desimal)
Konstanta Heksadesimal
Pada sistem heksadesimal,digit yang dapat dipakai berupa salah satu di antara 16 simbol
berikut:
0123456789ABCDEF
Contoh:
direpresentasikan dengan sejumlah LED. LED berwarna putih menyatakan hidup (on).
0011 1100=0x3C
0010 01000×24
0010 0100=0x24
0111 1110*0x7E
0110 0010=0x62
0110 0010=0x62
0110 0010=0x62
Konstanta Biner
Arduino menyediakan cara penulisan konstanta dalam bentuk biner. Dalam hal ini,
deretan angka o dan yang diawali dengan B adalah konstanta biner.Contoh:
Konstanta Titik-Mengambang
Di dalam menuliskan konstanta yang menyatakan tipe float atau d0uble, tanda
pecahan yang digunala berupa titik.Contoh:konstanta 2.5 berarti 2,5 (dua
setengah). Notasi E atau e boleh digunakan unt menyatakan tanda eksponen
(pangkat).Contoh:
1.2E3 atau 1.2e+3
Konstanta String
Konstanta string merupakan deretan karakter yang diawali dan diakhiri dengan tanda
petik-ganda Contoh:
“Resistor”
“a”
‘a’
sebab, “a” berarti konstanta string, sedangkan ‘a’ adalah konstanta karakter.
“\n”
Penamaan Konstanta
Konstanta boleh diberi nama. Nama konstanta bisa diwujudkan dengan menggunakan
kata kunci const. Bentuk deklarasinya seperti berikut:
Contoh:
Ungkapan
pengenal;
konstanta;
fungsi;
kombinasi elemen-elemen di atas dengan operator.
Contoh ungkapan:
3+2-1
Contoh lain:
a=b+c-2
Operator+,-,*, dan /
7.0+2.0
9.0 7.0-2.0 5.0
9.0 7.0-2 5.0
7.0+2
9 7-2 5
7+2
7*2 14 7/2 3
Operator sisa pembagian (operator modulus) yang berupa % mempunyai manfaat pada
berbagai aplika Sebagai contoh,dengan menggunakan operator ini dapat dipastikan
bahwa suatu bilangan rand0m ya dibangkitkan oleh sistem selalu berada antara
jangkauan 0 dan 10. Contoh lain,operator ini dapat dipa sebagai dasar penentuan suatu
bilangan termasuk bilangan genap atau bilangan ganjil.
berikut:
Secara prinsip, sisa pembagian x dengan y dapat diperoleh dengan menggunakan cara
berikut:
1. 1.z=8/3=2
2. sisa pembagian=8-3*z=8-2*2=2
Operator Prioritas
++dan–(Khusus yang
Tertinggi
-(Unary minus) Terendah
* %/
+-(Penjumlahan dan
pengurangan)
Jika operator memiliki prioritas sama (di Tabel 1.18 terletak pada baris yang sama),
operator yang terletak di sebelah kiri dalam suatu ungkapan yang akan diutamakan
untuk dikerjakan terlebih dahulu.
Contoh 1:
x=2+3*2;
x=2+(3*2);
Contoh 2:
x=2*3%2;
x=(2*3)。2;
x=(2+3)*2;
akan memberikan nilai 10 ke x, sebab 2+3 dikerjakan terlebih dahulu dan hasilnya baru
dikalikan dengan 2.
Operator Penugasan
Operator penugasan, yang berupa simbol sama dengan (=), berguna untuk memberikan
suatu nilai ke suatu variabel. Operator ini dapat dikenakan sebagal ungkapan ataupun
berdiri sebagai pernyataan,
Penugasan Sederhana
a=1:
a-2+b:
a=2+(b=1);
Pada contoh di atas, mula-mula variabel b diisi 1.Kemudian,variabel a diisi dengan hasil
ungkapan 2+1
Berkaitan dengan operasi aritmatika, tersedia operator yang disebut sebagai operator
penaikan (increme dan operator penurunan (decrement).Kedua operator ini biasa
digunakan pada operand bertipe bilang bulat. Tabel 1.8 memperlihatkan simbol untuk
kedua operator tersebut.
Operator Keterangan
++ Operator penaikan
— Operator penurunan
Operator penaikan digunakan untuk menaikkan nilai variabel sebesar satu, sedangkan
operator penunuma dipakai untuk menurunkan nilai variabel sebesar satu. Penempatan
operator terhadap variabel da dilakukan di muka atau di belakangnya. Contoh:
x=x+1;
y=y-1;
x++;
y–;
Variabel Keterangan
Tertinggi >><<
&
Terendah
V
Operator<<
Jika x bernilai 93,kemudian digeser ke kiri satu bit, maka hasilnya adalah 186
Operator atau,dan,xor
Operasi bit dilakukan antara operand1 dan operand2 untuk posisi bit yang sama (bit 0
operand1 dengan bit 0 operand2,bit 1 operand1 dengan bit 1 operand 2, dan
seterusnya).
Operator Atau
operand1 | operand2
Pada operasi dengan operator ini, hasil operasi per bit sebagai berikut:
0 0 0
0 1 1
1 0 1
1 1 1
Operator Dan
operandl &operand2
hasil O kalau dari dua bit yang dibandingkan ternyata ada yang bernilai 0;
hasil 1 kalau dua bit yang dibandingkan sama-sama bernilai 1.
Seluruh kemungkinan operasi dengan & diperlihatkan di Tabel 1.12.
0 0 0
0 1 0
1 0 0
1 1 1
Operator xor
Simbol operator xor (exclusive or) berupa ^,dengan bentuk penggunaannya seperti
berikut:
operand1 ^ operand2
hasil 1 kalau satu bit dari kedua dua bit yang dibandingkan bernilai 1;
hasil 0 untuk kondisi yang lain.
Seluruh kemungkinan operasi dengan^diperlihatkan di Tabel 1.13.
0 0 0
0 1 1
1 0 1
1 1 0
Operator Komplemen
~operand
Operator ini mempunyai sifat membalik (mengonversi) nilai setiap bit operand. Jika bit
bernilai 1, hasilnya 0.P Jika bit bernilai 0, hasilnya 1 (lihat Tabel 1.14).
Operand Hasil
0 1
1 0
Operator Majemuk
x=x+2;
y=y*4:
menjadi:
x+= 2;
K *=4;
Operator Relasional
Operator Keterangan
x==y
Operator Logika
Operator logika biasa digunakan untuk menghubungkan dua ungkapan kondisi menjadi
satu ungkapan kondisi.Operator-operator yang tergolong sebagai operator logika
adalah:
Pada bentuk pertama, hasi ungkapan bermilai benar kalau ungkapant dan ungkapanz
berila n bentuk keduia,hasil ungkapan berupa benar hanya kalau ungkapant dan
ungkapan2 bernilal be 1.17 memberikan seluruh kemungkinan pada operasi dengan //
dan &&.
Benar
Operator Logika !
!ungkapan atau
not ungkapan
Hasilnya berupa:
()
Pemanggilan fungsi
Elemen array
[]
++ Pre-increment
— Post-increment
i Logika bukan(NOT)
– Minus(unary)
* Perkalian
/ Pembagian
Kiri ke kanan
% Sisa pembagian(modulus)
+ Penjumlahan
– Pengurangan Kiri ke kanan
== Sama dengan
!= Tidak sama dengan Kiri ke kanan
*= Operator majemuk
/= Operator majemuk
%= Operator majemuk
+= Operator majemuk
-= Operator majemuk
Operator majemuk
>>= Operator majemuk
^= Operator majemuk
|= Operator majemuk
Sejumlah fungsi yang disediakan di Arduino berhubungan dengan bit. Sebagai contoh,
Anda d mengnolkan suatu bit dengan mudah dengan menggunakan bitClear (). Silakan
lihat Tabel 1.19 m mengenali fungsi-fungsi seperti itu.
Fungsi Keterangan
1.