Tutorial Arduino : Cara Menggabungkan Dua Program

Indobot Update

Cara Menggabungkan Program Arduino
Cara Menggabungkan Dua atau Lebih Program Arduino

Hallo semuanya. Sedang mengerjakan project apa hari ini? Semoga bisa segera selesai terus lanjut ke project yang lainnya ya gaes. Nah kali ini, kita akan membahas  program arduino nih. Siapkan aplikasi kalian. Kuy mulai serius.

[lwptoc numeration=”none” title=”Daftar Isi”]

Pemrograman arduino menggunakan bahasa C atau C++ dengan memiliki banyak library yang bisa di gunakan. Aplikasi arduino juga gratis untuk digunakan siapa saja. Pemrograman ini digunakan untuk mengisi mikrokontroler seperti arduino UNO, NANO, atau Mega, selain itu, program juga bisa digunakan untuk program mikrokotroler produk ESP8266 seperti NodeMCU, atau WeMos. Dengan menggunakan program ini, device mikrokontroler dapat kita gunakan untuk membaca, mengirim, bahkan menggerakkan device lainnya.

Baca juga Cara Memasukkan Library ESP8266 ke Arduino IDE

Banyak sekali program yang sudah bertebaran di internet, dengan berbagai jenis device yang digunakan. Namun ketika kita membutuhkan program yang cukup kompleks dengan mengetikkan di google nama-nama device yang kita gunakan, yang muncul tidak banyak, bahkan bisa terjadi error, hingga kita bingung harus mencari seperti apa lagi. Jika sudah begini maka yang perlu kita lakukan adalah melakukan riset sendiri dengan menggabungkan semua program yang sudah kita miliki sehingga menjadi satu program utuh yang dapat dikirimkan di device mikrokontroler.

Cara Menggabungkan Dua Program Arduino

Pertanyaan selanjutnya adalah bagaimana cara kita menggabungkannya?

baca juga: Library Arduino Tidak Hanya Sebagai Syarat Sketch

Contoh Program

Cara menggabungkan program sebenarnya bukan hal yang sulit bagi teman-teman yang sudah menguasai bahasa pemrograman. Ketika logika program sudah berjalan, bahasa pemrograman hanya cara pengucapan saja. Ehehe.

Langsung saja kita menuju contoh yang sederhana terlebih dahulu.

Saya memiliki program untuk menyalakan LED berkedip-kedip setiap satu detik. Seperti inilah programnya.

 
//Program Button oleh indobot.co.id

  #define LED 2
  #define button 3
void setup() {
  pinMode(LED, OUTPUT);
  pinMode(button, INPUT);
}

void loop() {
  int kondisiB = digitalRead(button);
  if (kondisiB == HIGH) {
    digitalWrite(LED, HIGH);
  }
  else {
    digitalWrite(LED, LOW);
  }
}

Selanjutnya saya ingin menggabungkan program di atas dengan program saya yang lainnya, yaitu program button. Di program ini, kita dapat menyalakan LED dengan memencet tombol button. Seperti inilah programnya.

 
//Program Button oleh indobot.co.id

  #define LED 2
  #define button 3
void setup() {
  pinMode(LED, OUTPUT);
  pinMode(button, INPUT);
}

void loop() {
  int kondisiB = digitalRead(button);
  if (kondisiB == HIGH) {
    digitalWrite(LED, HIGH);
  }
  else {
    digitalWrite(LED, LOW);
  }
}

Tujuan program gabungannya adalah menjadikan tombol button ini menjadi tombol untuk LED berkedip. Maka hal yang perlu kita perhatikan bagian per bagiannya. Dalam program di atas, kita bisa membaginya menjadi 3 sebagai berikut.

Belajar Elektronika, Arduino, dan IoT step by step dengan bantuan tangga belajar? Daftar sekarang dan dapatkan PROMO

Inisialisasi variabel

Jadi yang pertama kita lakukan adalah menentukan variabel selanjutnya untuk program kita. Dalam contoh di atas, variabel yang digunakan untuk program pertama adalah

 
#define LED_merah 2

Sedangkan untuk program kedua, variabel yang digunakan adalah

 
#define LED 2
#define button 3

Saya tidak perlu menjelaskan ya kenapa penulisannya seperti itu, teman-teman bisa cari bahasan tersebut di artikel lainnya.

Maka jika kedua variabel tersebut digabungkan, variabel yang memiliki fungsi yang sama harus diberi nama yang sama. Dalam hal ini, LED_merah pada program berkedip, dapat kita samakan nama variabelnya dengan LED pada program button. Sehingga program selanjutnya adalah sebagai berikut.

 
#define LED_merah 2 //boleh menggunakan nama lainnya
#define button 3

Void setup()

Bagian selanjutnya ada pada bagian void setup(). Bagian ini merupakan salah satu function yang hanya menjalankan satu kali sebagai pembuka awal. Pada program pertama, void setup() berisi

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

Sedangkan pada program kedua, void setup () berisi

 
void setup() {
  pinMode(LED, OUTPUT);
  pinMode(button, INPUT);
}

Pada bagian ini, kita dapat langsung menyesuaikan dengan program pada inisialisasi variabel. LED_merah ini kita samakan dengan LED, sehingga hasilnya menjadi

 
void setup() {
  pinMode(LED_merah, OUTPUT); // boleh menggunakan nama lainnya
  pinMode(button, INPUT);
}

Void loop()

Bagian sebelumnya terlihat kita hanya mengganti nama di program kedua saja. Hal ini dikarenakan pada program keduam memang sudah memiliki variabel yang dibutuhkan untuk membuat penggabungan. Nah untuk selanjutnya pada void loop() kita akan melihat cara memasukkan program sesuai dengan tujuan kita yaitu LED menyala berkedip ketika tombol button ditekan dan mati ketika button dilepas. Program void loop() pada program pertama adalah sebagai berikut.

 
void loop() {
  digitalWrite(LED_merah, HIGH);  
  delay(1000);                      
  digitalWrite(LED_merah, LOW);    
  delay(1000);                      
}

Program ini akan membuat LED_merah berkedip dengan menyala dan mati (HIGH dan LOW). Pada program void loop di program kedua adalah sebagai berikut.

 
void loop() {
  int kondisiB = digitalRead(button);
  if (kondisiB == HIGH) {
    digitalWrite(LED, HIGH);
  }
  else {
    digitalWrite(LED, LOW);
  }
}

Program di atas digunakan untuk menyalakan LED dengan menekan button. Dan ketika tidak ditekan, LED akan mati. Jika diuraikan maka artinya menjadi

If (kondisiB==HIGH) artinya jika button high (menyala atau ditekan)

digitalWrite(LED, HIGH); artinya LED akan high atau menyala.

else artinya jika tidak

digitalWrite(LED, LOW) artinya LED akan low atau mati.

baca juga: Penyetabil Suhu Ruang Tetas Telur dengan DS18B20 berbasis IoT

Maka jika kita gabungkan antara keduanya, program yang dihasilkan adalah sebagai berikut.

 

void loop() {
  int kondisiB = digitalRead(button); //ini bagian membaca button jangan diubah ya
  if (kondisiB == HIGH) { //jika button ditekan
    digitalWrite(LED_merah, HIGH);  //LED merah menyala
  delay(1000);                      //jalankan LED merah menyala 1000ms
  digitalWrite(LED_merah, LOW);    //LED merah mati
  delay(1000);                      //jalankan LED merah mati 1000ms
  }
//program di atas akan terus berulang hingga button tidak ditekan
  else {  //jika tidak (button tidak ditekan
  digitalWrite(LED_merah, LOW);    //LED merah mati
  }
//program ini juga akan terus berjalan hingga button ditekan lagi.
}

Jika masih ada function tambahan, maka perhatikan fungsi function tersebut khususnya di mana letak function tersebut dipanggil (nanti kita coba belajar function biar lebih paham ya). Ketika setiap bagian sudah digabungkan, maka sisanya hanya perlu menghubungkan semuanya menjadi satu program.

Begitulah cara menggabungkan dua program arduino. Sudah jelas? Atau malah kurang rumit? Jika teman-teman ingin coba menggabungkan program lainnya, coba komen di bawah. Kira-kira program apa nih yang kalian bingungkan untuk digabungkan dan apa yang membuat kalian kesulitan?

Isi kolom komentar ya gaes. Semangat berkarya.

Mau belajar elektronika dasar? Arduino? atau Internet of Things? Ikuti kursus online Indobot Academy!

Ingin Tahu Program Kami Lebih Lanjut?

Silahkan isi Formulir Dibawah Ini untuk Diskusi dengan Tim Indobot Academy.

Baca Juga

Bagikan:

6 pemikiran pada “Tutorial Arduino : Cara Menggabungkan Dua Program”

  1. Bagaimana jika kita ingin mengabungkan program dengan fungsi yang berbeda, apakah bisa?
    Contoh, saya sudah membuat jam digital menggunakan led dot matrix max7219, dan saya ingin menambahkan program vu dysplay/ spektrum analyzer, jadi cara kerjanya ketika tidak ada sinyal suara/musik , program jam yang berjalan .tapi ketika ada sinyal suara/musik masuk , program vu/spektrum analyzer yang berjalan. Apakah bisa seperti itu? Terimakasih

    Balas
  2. Saya ingin membuat relay dengan 3 ko ondisi
    1. Kondisi pertama lampu Hijau ( Lampu hijau akan menyala jika RPM mesin sudah mencapai 10.000 km Relay akan. On sehingga memutuskan pengapian kendaraan di starter bisa namun mesin tidak hidup kemudian direset makan lampu akan mati dan kembali ke penghitungan 0. Km
    2. Lampu Kuning menyala Jika kondisi 1 di abaikan maka lampu kuning menyala mesin mati dan tidak bisa di starter
    3. Lampu merah menyala sistem pengapian mati total bila ke 1,2 di abaikan
    Mohon bantuannya untuk menggabungkan program tersebut

    Balas
  3. Saya ingin menggabungkan program tapi masih bingung,, program pertama sensor suhu DS18B20, program kedua pompa DC dg relay 2 Channel beserta peltier,, cara kerjanya saya ingin apa bila suhu diatas batas yg ditentukan maka pompa DC dan peltier menyala,, dan apa bila suhu dibawah yg ditentukan, pompa mati..
    Mohon bantuannya ka????

    Balas

Tinggalkan komentar

whatsapp whatsapp