Tag

, , , ,

Beberapa hari yang lalu membeli RGB LED. Untuk di Indonesia bisa beli online di sini. Baru ngeh ternyata ada dua jenis. Yang pertama, RGB LED jenis Flip-Flop, artinya si LED berganti warna secara otomatis (merah, hijau, dan biru), persis kayak nyala mouse-mouse antik (berwarna-warni). Sedangkan yang kedua, yaitu RGB LED yang bisa dikontrol. LED RGB jenis ini bisa kita atur warna yang ingin kita keluarkan, tidak terbatas 3 warna, melainkan kombinasi ke tiga warna dasar tersebut. Jumlah kaki LED RGB ini adalah empat, sedangkan RGB LED jenis flip-flop hanya 2 kaki.

Akhirnya begitu barang diterima, langsung gak sabar pingin praktek dengan Arduino Duemilanove kesayangan.

Berikut gambar rangkaian yang saya buat :

Kenapa menggunakan resistor? Jawabannya bisa dibaca lebih rinci di sini.

Sketch yang saya buat diadopsi dari situsnya Wiring di sini. Butuh penyesuaian, karena port-port dan spesifikasi hardwarenya sedikit berbeda. Berikut sketch hasil modifikasi tersebut :

/*----------------------------------------------------------------
Nama Program : RGB LED
Dibuat oleh  : Insan Sains, 20 Desember 2010
Dimodif dari : http://wiring.org.co/learning/basics/rgbled.html
Keterangan   : Program untuk menggenerate 16.581.375 warna
               dari 3 warna dasar (merah, hijau, biru)
               Merah : 0..255        <-- paling lambat update
                  Hijau : 0..255     <-- update sedang
                     Biru  : 0..255  <-- paling sering update
                     
               [sudah berhasil, tapi perlu penyempurnaan transisi]
               [tapi mungkin tidak perlu, yang penting konsepnya]
               
Bahasa       : - Inggris untuk instruksi dan variable
               - Indonesia untuk comment dan keterangan  
-----------------------------------------------------------------*/

/* Program sumber mendefinisikan GREEN dengan variable bentuk int
Cara ini kurang efektif, karena makan memori
int GREEN = 9;   <-- tidak efektif
#define GREEN 9  <-- sederhana, dan menghemat memori
*/
#define BLUE   9       // BLUE alias 9
#define GREEN 10       // GREEN alias 10
#define RED   11       // RED alias 11

// Prosedure wajib - setup()
void setup()
{
  // Aktifkan tiga port Arduino sebagai output (R, G, B)
  pinMode(RED, OUTPUT);
  pinMode(GREEN, OUTPUT);
  pinMode(BLUE, OUTPUT);
}

// Prosedure wajib - loop()
void loop()
{
  // Looping RED
  for(int r = 0; r < 255; r++) {

    // Looping GREEN
    for(int g = 0; g < 255; g++) {

      // Looping BLUE
      for(int b = 0; b < 255; b++) {

        // Nyalakan masing2 LED (R, G, B)
        analogWrite(RED, r);
        analogWrite(GREEN, g);
        analogWrite(BLUE, b);

        // Beri pewaktuan!
        // Masih belum nemu bagaimana caranya LED Biru
        // tidak kelihatan kedap-kedipnya.
        // Apakah harus mengatur delay, atau prog-nya diganti?
        // Kedap kedip terjadi ketika skala b telah sampai 255
        // dan hendak menaikkan skala g, maka b kembali ke 0.
        // Begitu pula dengan LED Hijau, kelihatan berkedip
        // ketika transisi skala r.
        // Pertama menggunakan delay (seconds)
        // Kedua menggunakan delayMicroseconds (useconds)
        // Hasilnya masih sama. Kalau lebih kecil birunya kabur
        delayMicroseconds(600);
      }
    }
  }
}

Hasil yang didapat adalah : Warna LED berubah-ubah, sesuai dengan intensitas masing-masing warna dasar.

Improvement ke depan :
– Mencari tabung untuk menutupi LED sehingga warnanya menyatu. Yang saat ini kepikiran adalah cangkang lampu flouresent atau mungkin cangkang bola tenis meja.
– Membuat interactive design, dengan menghubungkan ke PC. Dimana pengaturan warna dilakukan manual dengan setting RBG di layar. Ini mengharuskan ada hubungan dengan software dalam bentuk GUI, mungkin Netbeans yg akan saya gunakan.

About these ads