Membuat Fungsi Sendiri Pada Sketch Arduino

Segmentasi kode ke dalam fungsi memungkinkan programmer untuk membuat potongan kode modular yang melakukan tugas yang ditentukan dan kemudian kembali ke area kode dari mana fungsi itu "dipanggil". Kasus khas untuk membuat fungsi adalah ketika seseorang perlu melakukan tindakan yang sama beberapa kali dalam suatu program.

Untuk pemrogram yang terbiasa menggunakan BASIC, fungsi di Arduino menyediakan (dan memperluas) utilitas penggunaan subrutin (GOSUB dalam BASIC).

Standarisasi fragmen kode menjadi fungsi memiliki beberapa keuntungan:

  • Fungsi membantu programmer tetap teratur. Seringkali ini membantu untuk membuat konsep program.
  • Fungsi mengkodifikasi satu tindakan di satu tempat sehingga fungsi hanya perlu dipikirkan dan di-debug sekali.
  • Ini juga mengurangi kemungkinan kesalahan dalam modifikasi, jika kode perlu diubah.
  • Fungsi membuat keseluruhan sketsa lebih kecil dan lebih ringkas karena bagian kode digunakan berulang kali.
  • Mereka membuatnya lebih mudah untuk menggunakan kembali kode di program lain dengan membuatnya lebih modular, dan sebagai efek samping yang bagus, menggunakan fungsi juga sering membuat kode lebih mudah dibaca.

Contoh Deklarasi Fungsi Pertama

Ada dua fungsi yang diperlukan dalam sketch Arduino, setup() dan loop(). Fungsi lain harus dibuat di luar tanda kurung dari kedua fungsi tersebut. Sebagai contoh, kita akan membuat fungsi sederhana untuk mengalikan dua angka.
Bagian - bagian sebuah fungsi dalam bahasa C


Untuk "memanggil" fungsi perkalian sederhana tersebut, kami memberikan parameter tipe data yang diharapkannya yaitu
void loop(){
int i = 2;
int j = 3;
int k;

k = myMultiplyFunction(i, j); // k now contains 6
}

Fungsi yang kita buat perlu dideklarasikan di luar fungsi lain, jadi "myMultiplyFunction()" bisa berada di atas atau di bawah fungsi "loop()"

Seluruh sketch/program kemudian akan terlihat seperti ini:

void setup(){
  Serial.begin(9600);
}
void loop() {
  int i = 2;
  int j = 3;
  int k;
  k = myMultiplyFunction(i, j); // k now contains 6
  Serial.println(k);
  delay(500);
}
int myMultiplyFunction(int x, int y){
  int result;
  result = x * y;
  return result;
}

Contoh Deklarasi Fungsi Lainnya

Fungsi ini akan membaca sensor lima kali dengan analogRead() dan menghitung rata-rata lima pembacaan. Ini kemudian menskalakan data menjadi 8 bit (0-255), dan membalikkannya, mengembalikan hasil terbalik.

int ReadSens_and_Condition(){
  int i;
  int sval = 0;

  for (i = 0; i < 5; i++){
    sval = sval + analogRead(0);    // sensor on analog pin 0
  }

  sval = sval / 5;    // average
  sval = sval / 4;    // scale to 8 bits (0 - 255)
  sval = 255 - sval;  // invert output
  return sval;
}

Untuk memanggil fungsi kami, kami hanya menetapkannya ke variabel.

int sens;
sens = ReadSens_and_Condition();

Seperti yang Anda lihat, meskipun suatu fungsi tidak memiliki parameter dan tidak ada pengembalian yang diharapkan, tanda kurung "(" dan ")" dan ";" harus diberikan.

Penutup Catatan

Itu tadi sekilas catatan yang bersumber dari web arduino.cc. Semoga saja sedikit catatan ini bisa membantu dalam memahami deklarasi sebuah fungsi.