Widget Ads

Arduino

Memprogram Sendiri Lampu Strobo - Bagian 1


Arduino merupakan modul mikrokontrol yang sangat disukai oleh orang awam yang bahkan tidak terlalu mengerti kode-kode dasar mikrokontroler. Namun hadirnya arduino dengan konsep open source dan adanya fitur library membuat banyak pengembang bisa membuat pustaka kode untuk memangkas jumlah baris kode juga memudahkan orang lain untuk menggunakannya.
Pada artikel kali ini kita akan membuat strobo sederhana menggunakan pustaka kode (library) yang dibuat oleh Joatsy Indonesia. Library ini akan memudahkan orang untuk membuat strobo (mengendalikan nyala led) dengan lebih sederhana. Tujuannya agar orang awam tidak lagi pusing memikirkan kode program yang terlalu mendasar. Memang tidak sepenuhnya lepas dari kode program, namun akan lebih simple daripada kode dasar pengendalian I/O arduino. Membuat nyala dan mati sebuah lampu sesimple apapun kode programnya pasti masih memerlukan pengolahan logika agar kinerja nyala dan mati sesuai dengan konsep yang direncakan.
Logika yang harus dimengerti hanya menyalakan led, mematikan led, dan penundaan waktu nyala/mati. Namun harus mengerti ketiganya tidak boleh mengabaikan salah satunya. Ibaratnya jika kita sudah benar menyusun nyala dan mati led namun tanpa penundan waktu maka perubahan kondisi tersebut akan tidak terlihat. Misalnya kita nyalakan led, menundanya 1 detik agar terlihat menyala baru kemudian mematikannya juga ditunda 1 detik. Sehingga nyala terlihat 1 detik dan matinya pun terlihat 1 detik. Jika kondisi tersebut dilakukan terus menerus maka akan terlihat sesuai rencana, namun jika kita mengubah penundaannya misalnya 10 mili detik, maka nyala led akan terlihat hanya dalam waktu 10 ms, matinya juga akan terlihat lebih sebentar. Semakin kecil penundaan akan mempengarui kemampuan mata kita mengamati perubahan kondisi tersebut. Contohnya jika penundaan jadi 1ms, mata kita tidak akan tau jika sebenarnya led berubah kondisi, apalagi jika tanpa penundaan waktu. Jika sudah memahami konsep strobo seperti yang sudah dijelaskan ditas, dapat memulai untuk beranjak ke penggunaan teknis library ini. Silahkan download dulu library ini di sini. Setelah itu instal extract di lokasi library arduino anda. Kebanyakan ada di My DocumentArduinoLibrary.
Untuk menggunakan library tersebut, kita memulainya dengan membuka file example dengan cara klik Menu File -> Examples -> JoatsyStrobo -> strobo_test yang isinya adalah seperti ini :
 

#include ‹JoatsyStrobo.h›
const byte pin_led_1 = 2;
const byte pin_led_2 = 3;
const byte pin_led_3 = 4;
const byte pin_led_4 = 5;

JoatsyStrobo strobo(pin_led_1,pin_led_2,pin_led_3,pin_led_4);

void setup() {
  Serial.begin(9600);
  strobo.setdelay(1000);
  strobo.setcommon(HIGH);
  
  Serial.println("Strobo All Off");
  strobo.off(0);

  Serial.println("Strobo 2 On");
  strobo.on(2,1000);
  Serial.println("Strobo 4 On");
  strobo.on(4,1000);

  strobo.unityset(1, 1, 2);
  strobo.unityset(2, 3, 4);

  delay(2000);
  
  Serial.println("Strobo All Off");
  strobo.off(0);

  delay(2000);

  Serial.println("Strobo Unity 1 On");
  strobo.unityon(1,1000);
  
  Serial.println("Strobo Unity 2 On");
  strobo.unityon(2,1000);
}

void loop() {
  // put your main code here, to run repeatedly:

}

Penjelasannya :

#include ‹JoatsyStrobo.h›

Baris diatas menjelaskan penggunaan library strobo (import library)

const byte pin_led_1 = 2;
const byte pin_led_2 = 3;
const byte pin_led_3 = 4;
const byte pin_led_4 = 5;

Membuat inisial untuk mengalamatkan ke nomor pin arduino. Led 1 berada di pin D2, Led 2 di D3, Led 3 di D4 dan Led 4 di D5.

JoatsyStrobo strobo(pin_led_1,pin_led_2,pin_led_3,pin_led_4);

Penggunaan library JoatsyStrobo dengan nama variable strobo. Diikuti dalam kurung nomor led 1 sampai 10 (maksimal). Jika dalam kode diatas hanya sampai 4 berarti nilai 5 sampai 10 tidak kita gunakan. Dalam baris tersebut dituliskan pin_led_1 dan seterusnya, dapat juga langsung dituliskan nama pin arduino misalnya D2, D3, D4 dan D5..

strobo.setdelay(1000);
strobo.setcommon(HIGH);

Mengatur penundaan waktu yang kebanyakan akan dipakai (default) dan selanjutnya mengatur jenis common (pengendalian kondisi led sesuai sambungan dalam skema atau mudahnya sisi led yang mengarah ke arduino), HIGH berarti led diposisikan sisi anodanya langsung ke arah VCC (melalui resistor) dan sisi katodanya ke arah arduino. Maka dapat diartikan led akan menyala jika diberikan logika LOW. Sehingga dapat disebut bahwa led dalam common HIGH.

strobo.off(0);

Semua led dimatikan dengan perintah strobo.off(0). Angka 0 merupakan maksud semua led yang ada dalam sambungan dengan penundaan yang diatur tadi. Angka ini dapat diganti sesuai nama led jika menginginkan satu led yang dimatikan. Dapat juga dengan perintah strobo.off(0,0) jika menginginkan mematikan semua led tanpa penundaan. Nilai 0 yang kedua berarti tanpa penundaan, jika tidak diisi maka akan ditunda sesuai nilai penundaan awal tadi. Atau jika diisi nilai lain akan ditunda sesuai nilai tersebut.

strobo.on(2,1000);
strobo.on(4,1000);

Perintah ini berarti menyalakan led sesuai nomor (2 kemudian 4) dengan nilai penundaan sendiri dalam hal ini 1000 ms. Dapat juga tanpa menyertakan nilai ke-2 yang berarti akan menggunakan nilai penundaan yang umum (yang sebelumnya diatur)

strobo.unityon(1,1000);
strobo.unityon(2,1000);

Perintah ini berarti menyalakan kelompok led sesuai nomor kelompok (1 kemudian 2) dengan nilai penundaan sendiri dalam hal ini 1000 ms. Dapat juga tanpa menyertakan nilai ke-2 yang berarti akan menggunakan nilai penundaan yang umum (yang sebelumnya diatur). Kelompok 1 sama saja mengatur led 1 dan 2 kemudian kelompok 2 akan mengatur led 3 dan 4 sesuai yang tadi sudah diatur pengelompokannya.

Sementara sampai penjelasan contoh strobo_test dulu, pada artikel lanjutan akan kita bahas contoh yang lain yaitu strobo_mode. Silahkan dicoba terlebih dahulu, silahkan share pengalaman uji cobamu dengan cara berkomentar dibawah ini. Atau bisa juga via whatsapp 0895-0585-0594.
Terimakasih, semoga dapat menambah ilmu dan berguna bagi sesama.
 

Tags

Baca Juga

TULISKAN KOMENTAR KAMU

Wajib diisi (No.hp akan kami rahasiakan)*

Nama *

Alamat *

No.hp *