Jumat, 15 Mei 2020

Pemograman Arduino

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.

0 Comments:

Posting Komentar