Kuliah Tugas 2 : Aplikasi Variasi Running LED dengan Interrupt







1. Tujuan [Kembali]
  1. Untuk memenuhi tugas kuliah kedua dengan membuat : Aplikasi Variasi Running LED dengan Interrupt
  2. Merangkai dan menguji I/O pada Aplikasi Variasi Running LED dengan Interrupt.
  3. Pengaplikasian aplikasi Variasi Running LED dengan Interrupt pada lampu hias

2. Alat dan Bahan [Kembali]
      Komponen yang digunakan:
  1. Arduino UNO R3
  2. LED 
  3. Resistor 220 Ohm
  4. Resistor 10k
  5. Push Button
3. Landasan Teori [kembali]
1. Arduino
        Arduino adalah pengendali mikro single-board yang bersifat opensource, diturunkan dari Wiring platform, dirancang untuk memudahkan penggunaan elektronik dalam berbagai bidang. Hardware arduino memiliki prosesor Atmel AVR dan software arduino memiliki bahasa pemrograman C. Memori yang dimiliki oleh Arduino Uno sebagai berikut : Flash Memory sebesar 32KB, SRAM sebesar 2KB, dan EEPROM sebesar 1KB. Clock pada board Uno menggunakan XTAL dengan frekuensi 16 Mhz. Dari segi daya, Arduino Uno membutuhkan tegangan aktif kisaran 5 volt, sehingga Uno dapat diaktifkan melalui koneksi USB. Arduino Uno memiliki 28 kaki yang sering digunakan. Untuk Digital I/O terdiri dari 14 kaki, kaki 0 sampai kaki 13, dengan 6 kaki mampu memberikan output PWM (kaki 3,5,6,9,10,dan 11). Masing-masing dari 14 kaki digital di Uno beroperasi dengan tegangan maksimum 5 volt dan dapat memberikan atau menerima maksimum 40mA. 
        Untuk Analog Input terdiri dari 6 kaki, yaitu kaki A0 sampai kaki A5. Kaki Vin merupakan tempat input tegangan saat menggunakan sumber daya eksternal selain USB dan adaptor.Spesifikasi arduino uno R3 dapat dilihat pada tabel:

2. LED
Image result for led
Gambar Bentuk LED (Light Emitted Diode)
LED adalah suatu semikonduktor yang memancarkan cahaya,  LED mempunyai kecenderungan polarisasi. LED mempunyai kutub positif dan negatif (p-n) dan hanya akan menyala bila diberikan arus maju. Ini dikarenakan LED terbuat dari bahan semikonduktor yang hanya akan mengizinkan arus listrik mengalir ke satu arah dan tidak ke arah sebaliknya. Bila LED diberikan arus terbalik, hanya akan ada sedikit arus yang melewati  LED. Ini menyebabkan LED tidak akan mengeluarkan emisi cahaya.

3. Resistor
Image result for dasar teori resistor 220 ohm
Resistor berfungsi memberikan hambatan arus listrik tegangan rendah yang akan masuk dan dibatasi sesuai dengan besarnya hambatan yang tertera didalam reistor itu sendiri. Sehingga resistor ini juga kerap disebut sebagai hambatan. memiliki satuan nilai ohm disimbolkan ( Ω ) .
Bentuk dari resistor ini bermacam macam yang pada umumnya berbentuk panjang dengan memiliki dua buah kutup. Pada bagian luarnya terdapat garis garis berwarna warni yang menyatakan besaran bilangan hambatan didalamnya.
Cara kerja dari resistor ini cukup simple yakni menghambat arus yang mengalir dari ujung kutub yang satu ke ujug kutub yang lain dengan nilai hambatan bervariasi sesuai yang tertera pada resistor tersebut yang kemudian arus dialirkan lagi ke komponen elektronika yang membutuhkan arus lebih kecil sehingga komponen elektronika ini dapat terpelihara keawetannya. Selain sebagai pembatas arus resistor memiliki fungsi lain diantaranya adalah pembagi arus,penurun arus,dan pembagi tegangan.

 
4. Push Button
http://trikueni-desain-sistem.blogspot.com/2014/04/Pengertian-Push-Button.htmlhttp://trikueni-desain-sistem.blogspot.com/2014/04/Pengertian-Push-Button.html
Prinsip Kerja Push button switch
Berdasarkan fungsi kerjanya yang menghubungkan dan memutuskan, push button switch mempunyai 2 tipe kontak yaitu NC (Normally Close) dan NO (Normally Open).
  • NO (Normally Open), merupakan kontak terminal dimana kondisi normalnya terbuka (aliran arus listrik tidak mengalir). Dan ketika tombol saklar ditekan, kontak yang NO ini akan menjadi menutup (Close) dan mengalirkan atau menghubungkan arus listrik. Kontak NO digunakan sebagai penghubung atau menyalakan sistem circuit (Push Button ON).
  • NC (Normally Close), merupakan kontak terminal dimana kondisi normalnya tertutup (mengalirkan arus litrik). Dan ketika tombol saklar push button ditekan, kontak NC ini akan menjadi membuka (Open), sehingga memutus aliran arus listrik. Kontak NC digunakan sebagai pemutus atau mematikan sistem circuit (Push Button Off).


4. Rangkaian  [kembali]


Prinsip kerjanya sederhana, ketika push button ditekan maka variasi Running LED akan berubah yang tadinya dari kanan ke kiri menjadi kiri ke kanan. Disini saya akan membuat 3 variasi, kanan ke kiri, kiri ke kanan dan, tengah ke kanan-kiri.
Terdapat 8 LED yang disusun sejajar dengan resistor 220 Ohm pada setiap LEDnya. Resistor ini berfungsi untuk membagi tegangan dari output Arduino sebesar 5V. Sehingga tidak membuat LEDnya rusak. Sedangkan Resistor 10k berfungsi sebagai pull down, sehingga tegangan yang diterima pin 2 benar-benar dalam kondisi 0V ketika push button belum ditekan.



5. Listing Program  [kembali]

  • Pada program Running LED bervariasi ini, saya menggunakan fungsi attachInterrupt(), kenapa harus pake interrupt? Sederhana, karena program yang saya buat menggunakan fungsi delay(). Ketika fungsi delay() bekerja, semua sub-program tidak akan yang bekerja sampai fungsi delay() selesai, namun ketika Arduino mendapatkan input interrupt pada salah satu pinnya. Arduino akan langsung memberhentikan fungsi delay()  dan mengeksekusi fungsi interrupt yang telah dibuat. Untuk lebih jelasnya terkait fungsi attachInterrupt().


/* 
 *  Running led menggunakan fungsi interrupt
 */

 int ledPin[]= {3,4,5,6,7,8,9,10};
 int keadaanVariasi = 0;
 int delayLed = 50; //Ubah nilainya jika terlalu kecepetan

 void setup()
 {
  for (int i=0; i<8; i++)
  {
    pinMode(ledPin[i], OUTPUT);
  }
  attachInterrupt(digitalPinToInterrupt(2), variasi, RISING);
 }

 void loop()
 {
  switch(keadaanVariasi)
  {
    case 0:
    kananKiri();
    break;

    
    case 1:
    kiriKanan();
    break;

    
    case 2:
    tengahKananKiri();
    break;

    default:
    break;
  }
 }

 void variasi()
 {
  delay(100); 
  keadaanVariasi++;
  Serial.print("keadaanVariasi=");
  Serial.println(keadaanVariasi);
  if(keadaanVariasi>2) keadaanVariasi =0;
 }

 void kananKiri()
 {
  for (int i=0; i<8; i++)
  {
    digitalWrite(ledPin[i], HIGH);
    delay(delayLed);
    digitalWrite(ledPin[i], LOW);
    delay(delayLed);
    if(keadaanVariasi != 0) break;
  }
 }

 void kiriKanan()
 {
  for (int i=7; i>-1; i--)
  {
    digitalWrite(ledPin[i], HIGH);
    delay(delayLed);
    digitalWrite(ledPin[i], LOW);
    delay(delayLed);
    if(keadaanVariasi != 1) break;
  }
 }

 void tengahKananKiri()
 {
  int angkaGanjil = 1;
  for (int i=3; i>-1; i--)
  {
    digitalWrite(ledPin[i], HIGH);
    digitalWrite(ledPin[i+angkaGanjil],HIGH);
    delay(delayLed);
    digitalWrite(ledPin[i], LOW);
    digitalWrite(ledPin[i+angkaGanjil],LOW);
    delay(delayLed);
    angkaGanjil += 2;
    if(keadaanVariasi != 2) break;
  }
 }

6. Flowchart [kembali]






7. Video  [kembali]

8. Link Download  [kembali]
Rangkaian Simulasi
Video Simulasi
Program Arduino