Tutorial Starduino: Fungsi Blinking_LED Untuk LED Status/Indikator

January 1, 2013

starduino_led

LED Blinking atau LED yang menyala berkedip-kedip sering dijadikan contoh pada awal pembelajaran pemrograman mikrokontroler. Yup, materi awal pemrograman mikrokontroler biasanya adalah bagaimana mengontrol pin digital I/O. Untuk memvisualisasikan kondisi pin digital I/O yang dikontrol, maka dihubungkanlah pin yang dikontrol tersebut ke sebuah LED.

LED dapat dirangkai agar menyala ketika pin digital I/O berlogika 1 (HIGH). Rangkaian LED seperti ini dinamakan rangkaian LED Aktif-HIGH. LED juga dapat dirangkai agar menyala ketika pin digital I/O berlogika 0 (LOW). Rangkaian LED seperti itu dinamakan rangkaian LED Aktif-LOW. Detil rangkaian LED Aktif-High dan LED Aktif-LOW dapat dilihat pada tulisan berikut ini: http://starduino.wordpress.com/2011/12/03/rangkaian-led-aktif-low-dan-led-aktif-high-dan-contoh-program-kontrol-led-untuk-avr-gcc-dan-arduino/. Pada tulisan tersebut diberikan contoh pemrograman pengendalian LED Aktif-HIGH dan LED Aktif-LOW menggunakan Arduino dan AVR-GCC.

Nah, sekarang apakah fungsi sebuah LED pada sebuah sistem? Fungsi sebuah LED pada sebuah sistem adalah sebagai indikator kondisi/tahapan pada suatu proses, sebagai indikator kondisi sebuah output, atau sebagai indikator alarm. Sebagai contoh, jika LED Standby menyala menandakan bahwa sistem sedang dalam kondisi STANDBY. Contoh lain adalah jika LED Heater menyala menandakan bahwa relay/kontaktor heater dalam keadaan ON. Atau jika LED menyala berkedip-kedip cepat menandakan bahwa telah terjadi suatu kesalahan pada sistem.

Nah, pada tulisan Tutorial Starduino kali ini akan dibahas sebuah fungsi yang saya beri nama Blinking_LED() yang berfungsi untuk menyalakan LED secara berkedip-kedip dengan jumlah kedip dan durasi on/off yang dapat diatur melalui parameter-parameter fungsi. Berikut adalah listing program fungsi Blinking_LED().

// Fungsi Blinking_LED untuk Arduino (STARDUINO)
// Parameter:
//   – pin  : nomor pin digital I/O Starduino/Arduino
//   – aLED : tipe LED (HIGH=aktif HI, LOW=Aktif LO)
//   – n    : jumlah blink
//   – dON  : durasi pulsa HIGH (ms)
//   – dOFF : durasi pulsa LOW (ms)
// Oleh Chandra MDE – TEKNIK ELEKTRO LINKS
void Blinking_LED(int pin, int aLED, int n, int dON, int dOFF)
{
pinMode(pin, OUTPUT);
for (int i=1; i<=n; i++)
{
digitalWrite(pin, aLED);
delay(dON);
digitalWrite(pin, !aLED);
delay(dOFF);
}
}

Fungsi Blinking_LED() memiliki 5 buah parameter. Parameter pertama adalah pin yang menyatakan nomor pin digital I/O pada Starduino Board atau Arduino yang dihubungkan dengan rangkaian LED. Parameter kedua adalah aLED. Parameter ini untuk menyatakan bahwa rangkaian yang terhubung ke pin adalah rangkaian LED Aktif-HIGH atau Aktif-LOW.

Parameter ketiga adalah n yang menyatakan jumlah kedipan LED. Parameter selanjutnya adalah dON yang menyatakan durasi LED ON dalam satuan milidetik. Dan parameter terakhir adalah dOFF yang menyatakan durasi LED OFF dalam satuan milidetik.

Setelah mengetahui fungsi masing-masing parameter, saatnya kita menggunakan fungsi tersebut dalam sebuah program. Berikut adalah beberapa contoh penggunaan fungsi Blinking_LED() dalam program.

// Contoh implementasi fungsi
int main()
{
// Blinking LED pada Pin-13 Aktif-HIGH sebanyak 5 kali
// durasi ON 100ms dan durasi OFF 100ms
Blinking_LED(13, HIGH, 5, 100, 100);

// Blinking LED pada Pin-12 Aktif-LOW sebanyak 10 kali
// dengan durasi ON 100ms dan durasi OFF 400ms
Blinking_LED(12, LOW, 10, 100, 400);

// Blinking LED pada Pin-13 Aktif-HIGH sebanyak 3 kali
// dengan durasi ON 500ms dan durasi OFF 500ms
Blinking_LED(13, HIGH, 3, 500, 500);
}

Pada contoh penggunaan pertama akan menghasilkan LED (Aktif-HIGH) berkedip sebanyak 5 kali dengan durasi ON 100ms dan durasi OFF 100ms. Sedangkan pada contoh kedua akan menghasilkan LED (Aktif-LOW) berkedip sebanyak 10 kali dengan durasi ON 100ms dan durasi OFF 400ms. Dan contoh ketiga menghasilkan LED (Aktif-HIGH) berkedip sebanyak 3 kali dengan durasi ON 500ms dan durasi OFF 500ms.

Semoga bermanfaat. Selamat belajar dan selamat berkarya!

Smile


Follow

Get every new post delivered to your Inbox.

Join 66 other followers