Rangkaian LED Aktif-Low dan LED Aktif-High dan Contoh Program Kontrol LED Untuk AVR-GCC dan Arduino


led_hi_lo

Perhatikan gambar di samping. Gambar sebelah kiri adalah rangkaian LED Aktif-Low, dan gambar sebelah kanan adalah rangkaian LED Aktif-High. Rangkaian terdiri dari sebuah resistor yang diseri dengan sebuah LED.

Pada rangkaian LED Aktif-Low, LED akan menyala jika diberi logika 0 (LOW) dan akan mati jika diberi logika 1 (HIGH).

Ketika diberi logika 0, maka tegangan pada kaki anoda LED lebih positif dibandingkan dengan kaki katoda. Selisih tegangan pada kaki anoda dan katoda LED ini melebihi tegangan jatuh LED, sehingga LED pun menghantar (dialiri arus listrik) dan menyala. Sebaliknya, ketika diberi logika 1, maka kaki anoda LED tidak lebih positif daripada kaki katoda, oleh karenanya LED tidak menghantar (tidak dialiri arus listrik) sehingga LED pun tidak menyala.

Pada rangkaian LED Aktif-High, LED akan menyala jika diberi logika 1 (HIGH) dan akan mati jika diberi logika 0 (LOW).

Ketika diberi logika 1, maka tegangan pada kaki anoda LED lebih positif dibandingkan dengan kaki katoda LED. Selisih tegangan pada kaki anoda dan katoda LED ini melebihi tegangan jatuh LED, sehingga LED pun menghantar (dialiri arus listrik) dan menyala. Sebaliknya, ketika diberi logika 0, maka tegangan pada kaki anoda LED tidak lebih positif daripada kaki katoda LED, oleh karenanya LED tidak menghantar (tidak dialiri arus listrik) sehingga LED pun tidak menyala.

Fungsi resistor seri pada rangkaian diatas adalah sebagai pembatas arus. Anda bisa menggunakan resistor dengan nilai yang aman mulai 150 ohm, 180 ohm, 220 ohm, hingga 2K2 ohm tergantung dari tipe LED yang Anda gunakan dan seberapa tingkat kecerahan yang Anda inginkan.

Dengan asumsi bahwa rangkaian LED Aktif-Low terhubung ke PORTB.0 dan rangkaian LED Aktif-High terhubung ke PORTB.1, berikut adalah contoh program kontrol LED untuk AVR-GCC.

Contoh Program Kontrol LED (AVR-GCC)
#define F_CPU 1000000L

#include <avr/io.h>
#include <util/delay.h>

#define ON 1
#define OFF 0

//macro LED ON/OFF untuk LED Aktif-Low
#define LED_AL(x) ((x)==(ON) ? (PORTB&=~_BV(PB0)) : (PORTB|=_BV(PB0)))

//macro LED ON/OFF untuk LED Aktif-High
#define LED_AH(x) ((x)==(ON) ? (PORTB|=_BV(PB1)) : (PORTB&=~_BV(PB1)))

int main(void)
{
  PORTB = 0b00000001; //PB1=0, PB0=1 --> kedua LED OFF
  DDRB = 0b00000011;  //PB0 dan PB1 sebagai output

  while(1)
  {
    LED_AL(ON); LED_AH(ON);   //kedua LED ON
    _delay_ms(500);           //delay 1/2 detik
    LED_AL(OFF); LED_AH(OFF); //kedua LED OFF
    _delay_ms(500);           //delay 1/2 detik
  }
}
Contoh Program Kontrol LED (Arduino)

Dengan asumsi bahwa rangkaian LED Aktif-Low terhubung ke pin-11 dan rangkaian LED Aktif-High terhubung ke pin-12, berikut adalah contoh program pengendalian LED untuk Arduino.

void setup()
{
  pinMode(11, OUTPUT); //pin-11 sebagai output
  pinMode(12, OUTPUT); //pin-12 sebagai output
}

void loop()
{
  digitalWrite(11, LOW);  //LED Aktif-Low ON
  digitalWrite(12, HIGH); //LED Aktif-High ON
  delay(500);             //delay 1/2 detik
  digitalWrite(11, HIGH); //LED Aktif-Low OFF
  digitalWrite(12, LOW);  //LED Aktif-High OFF
  delay(500);             //delay 1/2 detik
}

Rangkaian LED Aktif-Low dan Aktif-High merupakan rangkaian yang sangat penting dalam bereksperimen mikrokontroler. Tak hanya karena murah dan mudah dirangkai, tapi kedua rangkaian tersebut dapat mewakili berbagai macam rangkaian output, baik yang aktif-low maupun yang aktif-high seperti relay, buzzer, motor, dan solenoid. Selanjutnya tinggal mempelajari dan memahami berbagai macam rangkaian driver output.

Selamat belajar!

Smile

3 thoughts on “Rangkaian LED Aktif-Low dan LED Aktif-High dan Contoh Program Kontrol LED Untuk AVR-GCC dan Arduino

  1. Tutorial Starduino: Fungsi Blinking_LED Untuk LED Status/Indikator « Teknik Elektro Links

  2. Tutorial Starduino: Fungsi Blinking_LED Untuk LED Status/Indikator « Starduino Board

Berikan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s