Fungsi serialEvent() adalah fungsi yang akan dipanggil secara otomatis pada akhir program dari fungsi loop() ketika ada data yang masuk pada buffer komunikasi serial.

Fungsi ini boleh dibilang hanyalah sebuah variasi fitur yang ditawarkan oleh IDE Arduino. Tidak ada fungsi ini pun tidak masalah. Namun demikian, dengan adanya fungsi ini, maka struktur program bisa menjadi lebih rapi.

Saya sendiri lebih sering menempatkan program atau fungsi terima data serial di bagian awal dari fungsi loop(), bukan di akhir dari fungsi loop().

Anyway, kita langsung saja berkenalan dengan fungsi serialEvent().

Fungsi serialEvent()

Seperti telah saya sampaikan di atas bahwa fungsi serialEvent() adalah fungsi yang akan dipanggil secara otomatis pada akhir fungsi loop() ketika ada data yang masuk ke buffer komunikasi serial. Simak gambar berikut ini.

Jadi, setiap kali ada data yang tersedia di buffer serial, maka program akan menjalankan dulu fungsi serialEvent() sebelum mengulang fungsi loop().

Untuk membuktikan dan memperjelas tentang bagaimana alur kerja dari fungsi serialEvent(), saya membuat program sederhana sebagai berikut ini.

/*
 * Testing fungsi serialEvent()
 * Chandra MDE
 * Teknik Elektro Links
 * Blog: https://blog.teknikelektrolinks.com
 */

void setup() {
  pinMode(13, OUTPUT);
  
  Serial.begin(9600);
}

void loop() {
  Serial.println("Wait for data in serial buffer...");
}

void serialEvent() {
  Serial.print("serialEvent() dipanggil ---> DATA = ");
  Serial.write(Serial.read());
  Serial.println(" ---> BLINK!");
  
  digitalWrite(13, HIGH);
  delay(500);
  digitalWrite(13, LOW);
  delay(500);
}

Pada program di atas, terdapat program BLINK yang saya letakkan di bagian akhir dari fungsi serialEvent().

Jika fungsi serialEvent() dipanggil setiap karakter yang masuk ke buffer serial, maka mestinya, jika kita mengirim data “12345” melalui Serial Monitor, maka LED akan berkedip sebanyak 6 kali.

Lho? Kok 6 kali? Iya, karena Serial Monitor menambahkan karakter Newline setelah data “12345”.

Pada eksperimen ini, saya menggunakan board Arduino UNO dan IDE Arduino versi 1.8.13.

Silakan copy-paste kode program di atas dan upload. Kemudian buka Serial Monitor dan kirim data “12345”.

Jika tidak ada halangan, maka Anda akan mendapatkan tampilan kurang-lebih seperti gambar screenshot berikut ini.

Nah, demikianlah sekilas tentang fungsi serialEvent() beserta eksperimen yang sederhana namun cukup efektif untuk menunjukkan alur kerja dari fungsi serialEvent().

Semoga bermanfaat.

Kunjungi Situs Kami

Kami melayani perancangan dan pembuatan modul elektronik berbasis mikrokontroler, panel kontrol industri dan juga pemrograman.

Silakan mengunjungi situs kami melalui link berikut ini.

By admin

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan.

Copy link
Powered by Social Snap