Dasar Pemograman Arduino IDE

Pada artikel sebelumnya sudah dijelaskan bahwa strukur dari pemograman Arduino IDE hanya ada 2, yaitu “void setup()”dan”void loop()”. Bagian Void Setup() adalah bagian yang hanya dijalankan sekali setelah program aktif, sedangkan void loop() merupakan bagian yang akan terus dijalankan.

Pada artikel kali ini kita akan membahas tentang Tipe Data,Operator,Control Statement,Loops,Delay.

A. Tipe Data

Tipe data pada arduino memiliki kesamaan dengan tipe data yang dimiliki oleh bahasa c/c++, karena pada dasarnya bahasa pemograman arduino merupakan bahasa c /c++ yang telah dimodifikasi. Setiap Board Arduino memiliki memory yang kecil, maka dari itu pemilihan tipe data yang tepat akan membuat pemakaian memory lebih efisien. Berikut beberapa tipe data yang ada di Arduino IDE:

Tipe DataUkuran BitRentang Nilai
bool8 BitTrue atau false
char 8 Bit-128 sampai 127
unsigned char8 Bit0 sampai 255
Byte8 Bit0 sampai 255
int16 Bit-32768 sampai 32767
unsigned int16 Bit0 sampai 65535
word 16 Bit0 sampai 65535
long32 Bit-2,147,483,648 sampai 2,147,483,647
unsigned long 32 Bit0 sampai 4.294.967.295
float32 Bit -3,4028235E38 sampai 3,4028235E38

Tipe data float dikhususkan untuk data yang memiliki bilangan dibelakang koma, contoh: 2,5 ; 0,55.

B. 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 :

int a;
int b;
int c;
void setup()
{
a=10;
b=5;

}
void loop () {
   c = a + b;
   c = a - b;
   c = a * b;
   c = a / b;
   c = a % b; ;
}

Hasil:


c = 15
c = 5
c = 50
c = 2
c = 0

2.Operator Pembanding

Operator pembanding pada arduino meliputi:

  • Sama dengan (==) berfungsi untuk membandingkan 2 nilai operan,jika kondisi 2 operan tersebut sama maka kondisi akan bernilai benar.
  • Tidak Sama Dengan (!=) berfungsi untuk membandingkan 2 nilai operan, jika kondisi 2 operan tersebut tidak sama maka kondisi akan bernilai benar.
  • Lebih kecil dari(<) berfungsi untuk membandingkan 2 nilai operan, jika nilai operan yang ada di sebelah kiri tanda (<) lebih kecil dari nilai operan yang ada di sebelah kanan tanda (<) maka kondisi akan bernilai benar.
  • Lebih besar dari(>) berfungsi untuk membandingkan 2 nilai operan, jika nilai operan yang ada di sebelah kiri tanda (>) lebih besar dari nilai operan yang ada di sebelah kanan tanda (>) maka kondisi akan bernilai benar.
  • Lebih kecil sama dengan dari(<=) berfungsi untuk membandingkan 2 nilai operan, jika nilai operan yang ada di sebelah kiri tanda (<=) lebih kecil atau sama dengan dari nilai operan yang ada di sebelah kanan tanda (<=) maka kondisi akan bernilai benar.
  • Lebih besar sama dengan dari(>=) berfungsi untuk membandingkan 2 nilai operan, jika nilai operan yang ada di sebelah kiri tanda (=>) lebih besar atau sama dengan dari nilai operan yang ada di sebelah kanan tanda (=>) maka kondisi akan bernilai benar.

Contoh Program :

int a;
int b;
bool c;
void setup()
{
a=10;
b=5;
c=false;

}
void loop () {

   if(a == b)
      {c = true;}
   else
      {c = false;}
 
   if(a != b)
      {c = true;}
   else
      {c = false;}
  
   if(a < b)
      {c = true;}
   else
      {c = false;}
  
   if(a > b)
      {c = true;}
   else
      {c = false;}
  
   if(a <= b)
      {c = true;}
   else
      {c = false;}
  
   if(a >= b)
      {c = true;}
   else
      {c = false;}
}

Hasil:


c = false
c = true
c = false
c = true
c = false
c = false

3.Operator Boolean

Operator boolean merupakan operator yang mirip seperti gerbang logika/ Operator ini memiliki operasi AND,OR dan NOT. Berikut penjelasannya:

  • AND (&&), merupakan operasi logika AND yang jika nilai kedua operan tidak bernilai nol maka kondisi menjadi benar.
  • OR (||), merupakan operasi logika OR yang jika nilai salah satu dari 2 operan bernilai tidak nol maka kondisi menjadi benar
  • NOT (!), merupakan operasi logika NOT yang digunakan untuk membalikan keadaan logika dari operan, jika nilai operan salah maka operator logika NOT akan membuat kondisi tersebut menjadi benar.

Contoh Program :

int a;
int b;
bool c;
void setup()
{
    a=10;
    b=5;
    c=false;

} 
void loop () { 

 if((a > b)&& (b < a))
      {c = true;}
   else
      {c = false;}
 
   if((a == b)|| (b < a))
      {c = true;}
   else
      {c = false;}
 
  if(!(a == b))
      {c = true;}
   else
     {c = false; }
} 

Hasil:

c = true
c = true
c = true

C. Control Statement

Control Statement merupakan bagian yang penting pada sebuah program. Sederhananya control statement berfungsi membuat program mengetahui apa yang harus dikerjakan jika terdapat statement/kondisi yang telah terpenuhi. Control statement pada arduino IDE yaitu “if” dan “switch”.

1.If

Perintah “if” merupakan dasar dari semua bahasa pemograman. Perintah tersebut dapat melakukan sesuatu jika kondisi yang ada dalam kurung “()” terpenuhui. Perintah “if” pada arduino IDE dapat di tulis seperti dibawah ini.

if (kondisi)
{
//yang akan dilakukan jika kondisi terpenuhi
}

Variasi dalam statement “if “antara lain:

  • if….else : Sama dengan statement “if” tetapi jika kondisi tidak terpenuhi maka program juga akan melakukan sesuatu.
 if (kondisi)
{
//yang akan dilakukan jika kondisi terpenuhi
}
else
{
//yang akan dilakukan jika kondisi tidak terpenuhi
}
  • if….else if….else : Pada statement ini jika kondisi pertama tidak terpenuhi maka kondisi ke dua akan di cek oleh program, jika kondisi kedua tidak terpenuhi maka kondisi ke tiga akan dicek, begitu seterusnya sampai dengan statement terakhir.
 if (kondisi)
{
//Akan dilakukan jika kondisi terpenuhi
}
else if (kondisi ke 2)
{
//Akan dilakukan jika kondisi ke 2 terpenuhi
}
else
{
//Akan dilakukan jika semua kondisi tidak terpenuhi
}

2.Switch

Perintah “switch” memilik cara kerja yang sama dengan perintah if…else if, perintah “switch” akan membandingkan nilai yang terdapat dalam “case”, jika nilai yang di dalam “case” tersebut terpenuhi maka akan menjalankan perintah tertentu, setiap “case” akan di akhiri dengan “break”. Contoh dari perintah “switch” adalah sebagai berikut.

switch (var) //variabel yang akan di bandingkan
{
case ‘1’: // nilai yang akan di bandingkan dengan variabel yang ada di dalam ""switch""
// jika var=1, perintah akan dijalankan
break; // mengakhiri setiap case

case ‘2’:
// jika var=2, perintah akan dijalankan
break;
}

3.While

Perintah while adalah perintah pada arduino yang akan melakukan pengulangan program yang ada di dalam kurung kurawal “{}” sampai kondisi sudah tidak terpenuhi lagi. Bentuk umum dari perintah while yaitu :

 while(var < 50)//kondisi yang harus terpenuhi agar terus berulang
{
// program akan melakukan looping sebanyak 50 kali
myVar=myVar + 1;
}

4.For Loop

Perintah “for” digunakan untuk mengulang suatu blok program yang terdapat di dalam kurung kurawal ({}) setelah perintah “for”. perintah “for” biasanya digunakan untuk menyederhanakan suatu perintah. Format dan contoh penulisan perintah “for” adalah sebagai berikut :

/*
    for (kondisi awal variabel ; tes kondisi ; proses increment variabel)
    {
                  //perintah akan terus menerus dijalankan selama tes kondisi masih terpenuhi
     } 
*/
//Contoh:
   for (int a=0 ; a<10 ; a++)
    {
            int b=0;
           Serial.println(b);       
     }  

Pada contoh di atas dapat dijelaskan bahwa program tersebut akan mencetak nilai “b” di serial monitor sebanyak 10 kali. Hal itu terjadi karena nilai a setelah 10 kali pengulangan akan bernilai 10 yang artinya nilai a sudah tidak termasuk lagi dalam kodisi test “a<10”, “a++” pada perintah tersebut maksudnya adalah “a=a+1”. Jadi jika kita ingin menambah nilai variabel dengan 1 dapat memakai code “a++”.

C.delay()

Delay() merupakan suatu fungsi yang terdapat dalam Arduino IDE yang berguna untuk menahan suatu program agar tidak melanjutkan perintah ke baris selanjutnya sampai delay yang telah ditentukan. Sintaks dari delay() yaitu:

delay( var);

Variabel “var” dalam kurung tersebut mempresentasikan delay yang akan di jalankan oleh program. Satuan untuk fungsi delay() adalah ms atau mili seconds. Dalam Arduino IDE tedapat juga delay yang satuannya adalah microseconds yaitu :

 delayMicroseconds(var);

D. millis()

Millis merupakan sebuah fungsi pada arduino IDE yang berfungsi sebagai pewaktu internal setiap 1 milisecond pada arduino. fungsi ini akan terus di jalankan walaupun arduino sedang mengerjakan perintah yang lain. Jadi dengan fungsi ini arduino dapat melakukan multi tasking. Contoh pekerjaan multi tasking yang itu ketika LED pertama berkedip selama 1000ms dan LED kedua berkedip selama 2000ms. Jika kita menggunakan fungsi delay, pekerjaan tersebut tidak akan berjalan dengan semestinya. Jika memakai millis, pekerjaan tersebut dapat dikerjakan dengan baik.

Contoh program blink dengan menggunakan fungsi millis():

unsigned long currentMillis;
unsigned long previousMillis;
unsigned int interval;
int ledstate;
void setup() {
  Serial.begin(9600);
  interval=1000; //waktu yang ingin dicapai,satuannya ms 
  pinMode(LED_BUILTIN,OUTPUT);
  ledstate=HIGH;
  digitalWrite(LED_BUILTIN,ledstate);
}

void loop() {
  currentMillis=millis();// menyimpan waktu saat ini pada variable "currentmillis"

  if (currentMillis-previousMillis>=interval)
  {
    previousMillis=currentMillis; // jika waktu interval telah terpenuhi, nilai dari variabel "currentMillis" harus di simpan ke dalah variabel "previousMillis"
    Serial.println(previousMillis);
    
    // mengecek kondisi LED, jika HIGH maka buat jadi LOW dan sebaliknya
    if (ledstate==LOW)
    {
      ledstate=HIGH;
    }
    else
    {
      ledstate=LOW;
    }
    digitalWrite(LED_BUILTIN,ledstate);
  }

}

Was this article helpful?

Related Articles

Leave A Comment?