Pemrograman

Multi-Tasking Arduino, Cara Menjalankan Beberapa Perintah Secara Bersamaan pada Arduino

Assalamuโ€™alikum warahmatullahi wabarakatuh, Apa Kabar Gaes? kembali lagi bersama kami di Blog kita tercinta ini, apalagi kalau bukan cronyos.com ๐Ÿ™‚ kali ini kita akan bahas tentang bagaimana caranya kita membuat Arduino kita bisa multitasking. opo kui multi tasking mas?hehe multitasking adalah kita bisa mengerjakan beberapa hal dalam satu waktu, dalam satu waktu? emang bisa? sebenarnya tidak bisa, tapi akan kita buat seolah olah bisa. mengingat arduino itu adalah mikrokontroller bukan mikroprosessor, kalau prosessor tentu bisa multi tasking, contohnya di PC Pentium 4 yang saya gunakan buat posting artikel saya kali ini. saya bisa ngetik postingan sambil mendengarkan musik di youtube, sedangkan antivirus saya juga sedang bekerja dan beberapa program yang lain juga bekerja. itulah yang disebut multi tasking.

Namun kali ini kita tidak akan membuat Arduino kita buat youtuban dan ngetik postingan ya gaes ๐Ÿ™‚ kita akan coba saja bagaimana menjalankan beberapa program dengan waktu yang hampir bersamaan, misalnya saja kita ingin membuat program led berkedip dengan jeda / delay sebesar 5 detik seperti ini.

void setup() 
  {
    pinMode(13, OUTPUT);
} 

void loop() 
  {
    digitalWrite(13, HIGH); 
    delay(5000);      
    digitalWrite(13, LOW); 
    delay(5000);   
  }

Nah, setelah kita membuat program yang sangat sederhana diatas kita ingin mengirim sesuatu ke serial monitor dengan jeda 1 detik, misalnya kita mengubah programnya menjadi sepeerti ini tentu tidak akan jadi seperti yang kita inginkan.

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

void loop() 
  {
    digitalWrite(13, HIGH); 
    delay(5000);      
    digitalWrite(13, LOW); 
    delay(5000);   
    Serial.println("jeda 1 detik");
    delay(1000);
  }

Serial Monitor tidak akan menampilkan kata โ€œJeda 1 detikโ€ setiap 1 detik sekali namun menjadi 11 detik sekali, lalu bagaimana dong? sebenarnya kita bisa aja mengubah programnya menjadi seperti ini, namun tentu tidak effisien dan kita akan kesulitasnya jika programnya lebih kompleks lagi.

void setup() 
  {
    pinMode(13, OUTPUT);
    Serial.begin(9600);
} 
byte durasi = 0;
void loop() 
  {
    
    Serial.print("jeda 1 detik");
    delay(1000);

      if (durasi <= 5) 
         {
           digitalWrite(13,HIGH);
         }
      else
         { 
          digitalWrite(13,LOW); 
         }

    durasi++; 

      if (durasi > 10)
        {
         durasi = 0;
        }
   }

Intinya disini adalah adanya perintah / baris kode delay() akan sangat menganggu kelancaran program kita, oleh karena itu kita akan menghilangkan delay() tersebut namun kita tetap mendapatkan fungsi jeda sehingga program kita bisa lebih akurat / presisi dalam menjalankan multitaskingnnya, kalian bisa menggunakan perintah code berikut ini.

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

long durasiSerial = 0;
long durasiLed = 0;
long jedaLed = 5000;
long jedaSerial = 1000;
int  statusLed = LOW;
void loop() 
  {
    if (millis()- durasiSerial > jedaSerial)
      {
        Serial.println("jeda 1 detik");
        durasiSerial = millis();
      }

    if (millis()- durasiLed > jedaLed)
     {
      
      durasiLed = millis();
      
      if (statusLed == LOW)
        {
         statusLed = HIGH;
        }
      else
        {
          statusLed = LOW;
        }
      digitalWrite(13,statusLed);      
     }
  }

dengan Program diatas itu maka kita bisa mendapatkan kerja dari arduino tanpa adanya delay() yang akan mengganggu kelancaran programnya, memang program diatas terlihat lebih susah. namun jika program kalain sudah kompleks kalian akan mendapati ketidak efektifan menggunakan delay() oleh sebab itu kalian perlu menggunakan alur / logika program diatas untuk menghilangkan delay() pada program kalian.

Sekian Postingan kali ini, semoga bermanfaat, Jika ada yang perlu ditanyakan silahkan sampaikan di kolom komentar. wassalamuโ€™alaikum warahmatullahi wabarakatuh.

Giri Wahyu Pambudi

Giri Wahyu Pambudi - Seorang Pemuda Desa yang berkeinginan ikut membangun Indonesia dengan Sedikit Ilmu yang dimiliki SMK N 2 Wonogiri lulus 2015 UNIV Negeri Yogyakarta lulus 2019 2019 - Sekarang Bekerja di SMK Gajah Mungkur 1 Wuryantoro, Wonogiri

View Comments

  • assalamualaikum.

    mau tanya gan. 1pin arduino supaya dapat digunakan untuk led dan button dengan berbeda fungsi saat HIGH.

    jadi serial.println button sendiri

    serial.println led sendiri.

    terimakasih atas perhatianya. wassalamualaikum

  • Assalamualaykum, Pak, saya ingin bertanya, apakah arduino bisa membaca tegangan lebih dari 1 sumber listrik atau 2 sumber listrik (baterai)?

    mohon pencerahannya, Terima Kasih

    • bisa gan, pakai 2 pin analog berarti, misalnya battery 1 dibaca menggunakan pin analog 1 dan battery 2 dibaca menggunakan pin analog 2.

Share
Published by
Giri Wahyu Pambudi

Recent Posts

Adab Buang Hajat

Kitab Rujukan : Shahih Adab Islamiyyah karya Dr. Wahid bin Abdissalam bali 1.Berdoa ketika masuk…

1 tahun ago

Adab Ketika Bangun Tidur

Berdzikir kepada Allah Ketika Bangun Tidur ุนูŽู†ู’ ุญูุฐูŽูŠู’ููŽุฉูŽ ุฑูŽุถููŠูŽ ุงู„ู„ู‘ูŽู‡ู ุนูŽู†ู’ู‡ู ู‚ูŽุงู„ูŽ: ูƒูŽุงู†ูŽ ุงู„ู†ู‘ูŽุจููŠู‘ู ุตูŽู„ู‘ูŽู‰…

1 tahun ago

Kisah Tiga Orang yang Terjebak di Dalam Gua dan Bertawasul Dengan Beramal Saleh

ุนู† ุนูŽุจู’ุฏูŽ ุงู„ู„ู‘ูŽู‡ู ุจู’ู†ูŽ ุนูู…ูŽุฑูŽ ุฑูŽุถููŠูŽ ุงู„ู„ู‘ูŽู‡ู ุนูŽู†ู’ู‡ูู…ูŽุง - ู‚ูŽุงู„ูŽ ุณูŽู…ูุนู’ุชู ุฑูŽุณููˆู„ูŽ ุงู„ู„ู‘ูŽู‡ู ุตู„ู‰ ุงู„ู„ู‡…

1 tahun ago

2 Nikmat yang sering dilupakan Manusia : Sehat dan Waktu Luang

ุนูŽู†ู ุงุจู’ู†ู ุนูŽุจูŽู‘ุงุณู ุฑุถู‰ ุงู„ู„ู‡ ุนู†ู‡ู…ุง ู‚ูŽุงู„ูŽ-ย  ู‚ูŽุงู„ูŽ ุงู„ู†ูŽู‘ุจููŠูู‘ ุตู„ู‰ ุงู„ู„ู‡ ุนู„ูŠู‡ ูˆุณู„ู… โ€ย "โ€ ู†ูุนู’ู…ูŽุชูŽุงู†ู…

1 tahun ago

7 Golongan yang Mendapatkan Naungan Allah di Padang Mahsyar saat Hari Kiamat

Assalamu'alaikum, Catatan ini menjadi nasehat untuk diri kami pribadi dan umumnya untuk anak - anak…

1 tahun ago

Piston pin Offset – Alasan piston tidak boleh dipasang terbalik

Assalamu'alaikum warahmatullahi wabarakatuh sahabat otomotif :-) , kali ini kita akan bahas tentang piston pin…

4 tahun ago

Tampilan Versi Hemat Data