Pemograman Arduino
Pemrogaman arduino menggunakan struktur Bahasa
C. Mekanisme pemrogamanya arduino sama dengan mikrokontroler pada umumnya.
Mulai dari membuat sket progam, meng-compile, selanjutnya proses upload
pada papan arduino. Pengisian progam dengan metode upload ialah mengisi papan
arduino dengan progam yang sudah berbentuk Hex atau hasil compile dari
bahasa C ke bahasa mesin.
TULIS PROGRAM -> COMPILE PROGRAM -> UPLOAD PROGRAM
Program Arduino dapat dibagi dalam tiga bagian
utama: struktur, nilai-nilai (variabel dan konstanta), dan fungsi.
1.2 Struktur utama
•
Setup()
Fungsi setup() dipanggil ketika sketsa progam
dimulai. Fungsi ini digunakan untuk menginisialisasi variabel, mode pin,
penggunaan librari, dll. Fungsi setup() hanya akan berjalan sekali, setelah
power arduino dinyalakan atau saat mereset papan Arduino.
Contoh : Progam 1.1
int ledPin = 13;
void setup(){
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, HIGH);
delay(5000);
digitalWrite(ledPin, HIGH);
}
void loop(){
// ...
}
|
Progam 1.1 akan menyalakan LED pada pin 13
selama 5 detik lalu mati. Eksekusi ini dilakukan hanya sekali.
•
Loop()
Setelah membuat fungsi setup(), maka
berikutnya adalah fungsi loop(). Fungsi loop() akan melakukan loop
berturut-turut dimana program akan dijalankan terus menerus secara berurutan
dan loop untuk mengontrol papan Arduino.
Contoh : Progam 1.2
const int buttonPin = 3;
setup ()
{
Serial.begin(9600); pinMode(buttonPin,
INPUT);
}
loop()
{
if (digitalRead (buttonPin) == HIGH)
Serial.write ( 'H');
else
Serial.write ( 'L');
delay (1000);
}
|
Progam 1.2 pada serial monitor akan menampilkan huruf H ketika tombol
pada pin 3 ditekan dan bila dilepaskan akan tampil huruf L.
• //Komentar
Komentar digunakan untuk memberikan keterangan
pada progam yang dibuat. Komentar tidak dieksekusi maka komentar tidak menambah
ukuran file hasil compile. Cara membuat komentar ialah sebagai berikut :
//komentar segaris diawali dengan dua
garis miring
/*komentar untuk lebih dari satu baris
diawali dengan garis miring lalu tanda bintang serta diakhiri dengan bintang
lalu garis miring*/
|
Adapun
sintaks lain yang ada di dalam arduino seperti
•
; (semicolon)
Digunakan untuk mengakhiri sebuah pernyataan.
•
{} (curly braces)
Bagian utama dari bahasa pemrograman C yang
digunakan dalam beberapa konstruksi yang berbeda dalam beberapa fungsi.
•
#define
Komponen C yang berguna yang memungkinkan programmer untuk memberi
nama untuk nilai konstan sebelum program dikompilasi.
•
#include
Digunakan untuk memasukkan perpustakaan atau
library di luar di sketsa progam.
Dalam pemrogaman bahasa C pada arduino,
bilangan dapat diekspresikan dalam beberapa format, yaitu :
•
Biner
Ditulis dengan awalan huruf ‘0b’. Contoh :
b11110010
•
Desimal
Ditulis biasa tanpa awalan. Contoh : 435
•
Oktal
Ditulis dengan awalan angka ‘0’. Contoh : 0753
•
Heksadesimal
Diawali dengan ‘0x’. Contoh : 0x5A
1.3 Tipe Data
Tipe data yang berbeda – beda memiliki
kapasitas penyimpanan yang berbeda – beda pula. Berikut tipe data tersebut :
tipe data
|
Lebar Data
|
Jangkauan
|
char
|
1 byte
|
-128 s/d 127
|
unsigned char
|
1 byte
|
0 s/d
255
|
byte
|
1 byte
|
0 s/d 255
|
word
|
2 byte
|
0 s/d 65535
|
int
|
2 byte
|
-32768 s/d 32767
|
unsigned int
|
2 byte
|
0 s/d 65535
|
long
|
4 byte
|
-2147438648 s/d 2147438647
|
unsigned long
|
4 byte
|
0 s/d 4294967295
|
float
|
4 Byte
|
-3.4028235E+38 s/d3.4028235E+38
|
2.1.Variabel
Variabel adalah suatu wadah untuk menyimpan
atau menampung data. Nama variable dibebaskan namun ada peraturan tersendiri
seperti tidak boleh ada spasi, maksimal 32 karakter dan tidak boleh menggunakan
istilah baku dalam bahasa C arduino karena dapat tercaji progam yang error.
Cara memndeklarasikan variable sebelum
digunakan sebagai berikut :
int nilai_1;
atau bisa diisi dengan nilai :
[tipe
data][spasi][nama variable][=][nilai]
Contoh :
int nilai_1=17; //variabel bilangan tipe integer diisi nilai 17
1.4 Operator
operator
yang ada di arduino sama saja dengan operator yang ada di pemograman yang
lainnya seperti operator aritmatika, operator perbandingan, operator boolean,
operator bitwise dan operator penambahan dan pengurangan.
1.5 Operator
aritmatika
Operator
|
Keterangan
|
=
|
Pemberian Nilai
|
+
|
Penjumlahan
|
-
|
Pengurangan
|
*
|
Perkalian
|
/
|
Pembagian
|
%
|
Sisa
Bagian
|
1.6 Operator
perbandingan
Operator
|
Keterangan
|
|
==
|
Persamaan. Jika kedua nilai yang
dibandingkan sama maka hasilnya ‘true’
|
|
!=
|
Pertidaksamaan. Jika kedua nilai yang
dibandingkan tidak sama hasilnya ‘true’
|
|
>
|
Lebih Besar
|
|
<
|
Lebih Kecil
|
|
>=
|
Lebih Besar atau Sama Dengan
|
|
<=
|
Lebih Kecil atau Sama Dengan
|
|
1.7 Operator Boolean
Operator
|
Keterangan
|
&&
|
and
|
||
|
Or
|
!
|
Not
|
2.5.1.
Operator Bitwise
Bitwise Operator = Digunakan untuk operasi bit
per bit pada nilai integer. Terdiri dari operator NOT, AND, OR, XOR, Shl, Shr.
Type : int atau char.
Bitwise operator, dari namanya sudah jelas
diketahui pasti berhubungan dgn bit. Biasanya digunakan utk memanipulasi data
bertipe bit dari tipe data integer atau byte.
Operator
|
Keterangan
|
<<
|
Geser Kiri
|
>>
|
Geser Kanan
|
&
|
AND
|
|
|
OR
|
^
|
XOR
|
~
|
NOT
|
2.5.2.
Operator Pertambahan dan Pengurangan
Operator
|
Keterangan
|
Contoh
|
Keterangan
|
++
|
Pertambahan
1/increment
|
a++
|
A=a+1
|
--
|
Pengurangan
1/ decrement
|
a--
|
A=a-1
|
2.2.Struktur
Kontrol
Setiap progam yang dibuat membutuhkan suatu
kontrol. Tak hanya perulangan namun suatu eksekusi dengan syarat tertentu juga diperlukan.
Pengujian Kondisi :
•
if
Digunakan untuk mengecek suatu kondisi. Jika benar maka perintah
didalam if akan dikerjakan.
if(kondisi){
Pernyataan / perintah
}
Contoh :
if(x==6)
{
a=a+5;}
|
•
if – else
seperti dengan if, hanya
saja ada 2 pilihan pernyataan / perintah. Jika kondisi benar maka perintah
didalam if akan dikerjakan, jika kondisinya salah maka
pernyataan didalam else
lah yang akan dikerjakan.
if(kondisi){
Pernyataan
/ perintah 1
}
else
{
Pernyataan
/ perintah 2
}
|
Contoh :
if(x==1)
{
a=1;
}
else {
a=0;
}
|
•
if – else if
Untuk melakukan pengecekan suatu kondisi lebih
dari satu maka bisa menggunakan if – else if.
if(kondisi1){
Pernyataan / perintah 1
}
else if(kondisi2){
Pernyataan / perintah 2
}
else if(kondisi ke-n){
Pernyataan / perintah ke-n
}
|
Contoh :
if(x==1)
{
a=1;
}
else
if(x==2){
a=2;
}
else
if(x==3){
a=3;
}
|
•
switch case
Pernyataan ini digunakan untuk memilih kondisi
yang sesuai untuk kemudian mengerjakan perintahnya. Bedanya adalah kondisi yang
diuji berupa sebuah nilai variable.
switch(variabel){ //variable yang
diuji case 1 : //pernyataan/perintah 1 break;
case 2 : //pernyataan/perintah 2 break;
case n : //pernyataan/perintah n break;
default
: //pernyataan/perintah default
}
|
Jika variable memenuhi syarat dari salah satu
case maka dia akan mengerjakan pernyataan/perintah tersebut. Misal nilai
variable = 2 maka dia kan mengerjakan pernyataan/perintah 2. Jika tidak
memenuhi maka dia akan mengerjakan default.
Contoh :
switch(a){
case 1 : digitalWrite(pin1,HIGH)
break;
case 2 : digitalWrite(pin2,HIGH)
break;
case 3 : digitalWrite(pin3,HIGH)
break;
default
: digitalWrite(pin4,LOW)
}
|
2.3.Perulangan
•
while
Perulangan ini digunakan untuk membuat
perulangan yang tidak terbatas selama kondisi dalam while benar.
while(kondisi){
//pernyataan/perintah
}
|
Contoh :
while(a<200){
a++;
}
|
Perulangan while akan berhenti atau keluar setelah a mencapai angka
200.
•
do … while
Perulangan ini akan melakukan pernyataan /perintah lalu akan melihat
kondisi dalam while. Jika benar maka pernyataan / perintah akan
dieksekusi kembali.
do{
//pernyataan/perintah
}
while(kondisi);
|
Contoh :
do{
a++;
}
while(a<200);
|
Perulangan pertambahan a+1 akan dilakukan
sampai nilai a=200.
•
for
Digunakan untuk perulangan yang sifatnya
terbatas.
for(inisialisasi;kondisi;step){
//pernyataan/perintah
}
|
Contoh :
for(a=0;a<=10;a++){
Serial.println(a);
}
|
§ Inisialisasi : nilai awal suatu variable untuk proses perulangan.
§ Kondisi : kondisi yang menentukan proses perulangan,
jika benar perulangan dikerjakan.
§ Step : tahap perulangan bisa dalam bentuk perkalian,
pertambahan, pengurangan dan pembagian.
§ Progam tersebut akan menampilkan nilai a dari
0 sampai 10.
•
goto
Perintah ini digunakan untuk melompat/menuju
perintah yang telah diberi label.
goto label;
Contoh :
while(1){
digitalWrite(pin0,HIGH);
delay(1000);
digitalWrite(pin0,LOW);
delay(1000);
if(digitalRead(pin1)==HIGH); {goto keluar;}
}
|
keluar:
•
return
Digunakan untuk memberikan nilai balik dari
sebuah fungsi. Contoh :
int
data(){ if(analogRead(A0)>100){
return
1; else
return 0;
}
}
|
•
continue
untuk melewati perulangan yang tersisa dari
struktur looping (do, for, atau while).
Contoh :
for(a=0;a<=255;a+10){
if(digitalRead(pin0)==HIGH){
continue;
}
digitaWrite(pwm1,a);
delay(100);
}
|
•
break
Perintah ‘keluar’ dari pernyataan perulangan
do, for, atau while. Juga digunakan untuk mengakhiri pernyataan dalam switch –
case.
ayo segera bergabung dengan kami hanya dengan minimal deposit 20.000
ReplyDeletedapatkan bonus rollingan dana refferal ditunggu apa lagi
segera bergabung dengan kami di i*o*n*n*q*q