arduino + led rgb

Cara mengakses LED RGB dengan Arduino Uno

Penjelasan Singkat LED RGB

LED RGB sebenarnya tiga semikonduktor (LED) dalam satu package. LED RGB ini memiliki 4 kaki pin, terdiri dari 3 pin untuk kendali warna R-G-B serta 1 pin sebagai kendali common anode atau common cathode. Lihat gambar dibawah :

Jenis LED RGB

Warnanya Merah, Hijau, Biru sehingga dapat membuat hampir semua warna pelangi jika menggabungkan warna-warna tersebut. Dalam kebanyakan kasus, LED RGB memiliki katoda umum (common cathode), Anda akan melihat banyak contoh dengan tiga resistor pada koneksi anoda.

Tutorial Pertama LED RGB

Bahan yang perlu dipersiapkan antara lain :

Skema Rangkaian yang perlu dirangkaikan :

Arduino + LED RGB
Konektivitas pin :

  • Pin Red LED ke pin Arduino 6
  • Pin hijau LED ke pin Arduino 5
  • Pin biru LED ke pin Arduino 3
  • pin GND LED ke GND Arduino

CATATAN : Perhatikan pin LED RGB, ada kemungkinan berbeda dengan gambar diatas !!

Berikut ada beberapa kode program yang dapat dipraktekan secara mudah

// RGB LED - mengubah warna LED RGB secara otomotis

int merahPin = 6; //nama alias pin 6 sebagai merahPin
int hijauPin = 5; //nama alias pin 5 sebagai hijaupin
int biruPin = 3; //nama alias pin 3 sebagai biruPin
int tunda = 500; // satuan dalam milisecond

void setup() {
//deklarasi pin menjadi output
pinMode(merahPin, OUTPUT);
pinMode(hijauPin, OUTPUT);
pinMode(biruPin, OUTPUT);
}

void loop() {
digitalWrite(merahPin, HIGH);
delay(tunda);
digitalWrite(merahPin, LOW);

digitalWrite(hijauPin, HIGH);
delay(tunda);
digitalWrite(hijauPin, LOW);

digitalWrite(biruPin, HIGH);
delay(tunda);
digitalWrite(biruPin, LOW);
}

Ini adalah contoh kode untuk menghasilkan warna RGB acak, waktu ditetapkan:

// RGB LED - Warna acak LED RGB

int tunda = 1000; //nilai tunda 1 detik
int merah = 6; //nama alias pin 6 dengan nama merah
int hijau = 5; //nama alias pin 5 dengan nama hijau
int biru = 3; //nama alias pin 3 dengan nama biru

void setup() {
//deklarasi untuk purpose output
pinMode(merah, OUTPUT);
pinMode(hijau, OUTPUT);
pinMode(biru, OUTPUT);
}

void loop() {
//penulisan PWM dengan nilai acak dengan nilai tunda 1 detik
analogWrite(biru, random(255));
analogWrite(merah, random(255));
analogWrite(hijau, random(255));
delay(tunda);
}

Koding Pemrograman Pengembangan

Ini adalah contoh kode agar warna berubah secara otomatis memudar, dengan membuat fungsi PWM:

// RGB LED - Perubahan warna otomatis

int merahPin = 11;
int hijauPin = 12;
int biruPin = 13;

int redVal;
int blueVal;
int greenVal;

void setup() {
redVal = 255;
blueVal = 255;
greenVal = 255;
update();
}

// Fungsi ini bekerja di warna LED.
void update() {
analogWrite(merahPin, redVal);
analogWrite(hijauPin, greenVal);
analogWrite(biruPin, blueVal);
}

// Fungsi ini merupakan salah satu warna dengan membuatnya
// lebih terang atau lebih gelap.
void color_morph(int* value, int get_brighter) {
void color_morph(int* value, int get_brighter) {
  for (int i = 0; i < 255; i++)
  {
    if (get_brighter)
      (*value)--;
    else
      (*value)++;
    update();
    delay(10);
  }
}

void loop() {
  // dimulai dengan hitam (semua)
  color_morph(&redVal,   1); // transisi ke merah
  color_morph(&greenVal, 1); // transisi ke kuning
  color_morph(&redVal,   0); // transisi ke hijau
  color_morph(&blueVal,  1); // transisi ke aqua
  color_morph(&redVal,   1); // Transisi ke putih
  color_morph(&greenVal, 0); // transisi untuk ungu
  color_morph(&redVal,   0); // transisi ke biru
  color_morph(&blueVal,  0); // transisi ke hitam (semua keluar)
 }

Pada contoh di bawah ini, Anda dapat mengatur warna RGB LED dengan kontrol melalui port serial:

String readString;
int redPin = 6;
int greenPin = 5;
int bluePin = 3;

void setup() {
  Serial.begin(9600);
}

void loop() {
  while (Serial.available()) {
    // Silakan tunggu sehingga buffer dapat mengisi.
    delay(3);
    // memasukkan data serial.
    if (Serial.available() >0) {
      // Baca 1 byte dari buffer serial.
      char c = Serial.read();
      // Tempatkan byte membaca belakang sisanya (untuk string).
      readString += c;
    }
  }

  if (readString.length() >0) {
    // Menghapus nilai-nilai RGB dari garis masuk.
    int red = readString.substring(0, 3).toInt();
    int green = readString.substring(4, 7).toInt();
    int blue = readString.substring(8, 11).toInt();

    // Mencetak nilai-nilai di monitor serial.
    Serial.print("R: ");
    Serial.println(RED);
    Serial.print("G: ");
    Serial.println(GREEN);
    Serial.print("B: ");
    Serial.println(BLUE);

    // Jadilah nilai-nilai PWM ke LED RGB.
    analogWrite(redPin, red);
    analogWrite(greenPin, green);
    analogWrite(bluePin, blue);

    // Pasang kembali buffer kosong.
    readString = "";
  }
}

Terimakasih sudah berkunjung, dan semoga bermanfaat. Salam nyebarilmu.com!

>> CMIIW <<

12 Comments

  1. ruang belajar (@ruangbelajar123)

    gan… mau tanya tentang:
    “bagaimanakah cara membedakan RGB anoda dan RBG cathoda”

    Hm… .:….. kalau diraba2 pada bagian leher RGB tersebut ada beda rasa…
    yg satu kasar ber-gerigi seperti mata gergaji….
    sementara yang satu lagi mulus…..

    oh ya…
    satu lagi… saya mau mengawinkan RGB ini ke nodeMCU….

    trims ya master…. 🙂

    • admin-kece

      artinya common ANODE RGB = kaki panjang diantara ke-4 kakinya wajib diberikan tegangan positif, sedangkan ke-3 lainnya tegangan negatif / Ground, sedangkan common CATHODE kebalikan dari ANODE (bisa dicek digambar artikel ini)

      Cara termudahnya bukan merabanya, kalo saran saya gunakan “Multimeter” yang ada switch buzzer

      jadi hubungkan kedua kakinya probe multimeter, yang kaki yang panjang dengan probe positif dan salah satu ketiga kaki lainnya dengan probe negatif.
      Jika nyala berarti itu common Anode, jika tidak common cathode (perlu dibalik probenya untuk pembuktian)

      thanks sudah berkunjung.

  2. ruang belajar (@ruangbelajar123)

    gan… mau tanya tentang:
    “bagaimanakah cara membedakan RGB anoda dan RBG cathoda”

    Hm… .:….. kalau diraba2 pada bagian leher RGB tersebut ada beda rasa…
    yg satu kasar ber-gerigi seperti mata gergaji….
    sementara yang satu lagi mulus…..

    oh ya…
    satu lagi… saya mau mengawinkan RGB ini ke nodeMCU….

    trims ya master…. 🙂

    • admin-kece

      artinya common ANODE RGB = kaki panjang diantara ke-4 kakinya wajib diberikan tegangan positif, sedangkan ke-3 lainnya tegangan negatif / Ground, sedangkan common CATHODE kebalikan dari ANODE (bisa dicek digambar artikel ini)

      Cara termudahnya bukan merabanya, kalo saran saya gunakan “Multimeter” yang ada switch buzzer

      jadi hubungkan kedua kakinya probe multimeter, yang kaki yang panjang dengan probe positif dan salah satu ketiga kaki lainnya dengan probe negatif.
      Jika nyala berarti itu common Anode, jika tidak common cathode (perlu dibalik probenya untuk pembuktian)

      thanks sudah berkunjung.

  3. ok gan…trims atas responnya….:)

    Begini gan dgn yg saya lakukan, mohon dikasih tunjuk… heheh

    Percobaan #1. Berhasil. NYALA
    Kemarin saya udah coba menyambungkan arduino UNO ke LED RGB dgn pengaturan sbb
    – uno (R=pin3, G=pin5, B=pin6, GND=pin5v dan atau 3,3v )
    – resistor 220ohm utk semua kaki RGB

    Percobaan #2. Gagal…
    Kemudian…. led tsb sy pasangkan ke nodeMCU v3…. dan hasilnya RGB tidak hidup.
    R = D0
    G = D1
    B = D2
    Kaki terpanjang = 3,3v

    Tanya: a) dimana salahnya… kok tidak nyala padahal ke 3,3v…???

    Percobaan #3. Gagal. LED MATI
    Krn percobaan 2 gagal… akhirnya led tsb sy kembalikan lagi sebagaimana pada percobaan #1. dengan tujuan utk memeriksa apakah led masih normal atau sudah mati… faktanya mati

    Tanya: kenapa mati…

    Mohon pencerahannya nyebarilmu.com…

    trims ya… master 🙂

    • admin-kece

      LED RGB yang digunakan menggunakan COMMON apa dulu gan?

      kemudian untuk NodeMCU V3, saran ane sebelum memprogram menggunakan LED RGB saran ane, program dulu menggunakan LED BUILT IN nya dulu,

      setelah itu kalo OK diganti menggunakan LED biasa dulu, baru lanjut ke LED RGB,

      dikarenakan LED RGB merupakan kumpulan 3 warna LED biasa yang dipackage menjadi 1 LED,

      refrensi yang bisa digunain untuk pemrograman itu.

      https://www.nyebarilmu.com/project-nodemcu-untuk-mengendalikan-4-channel-relay/

  4. ok gan…trims atas responnya….:)

    Begini gan dgn yg saya lakukan, mohon dikasih tunjuk… heheh

    Percobaan #1. Berhasil. NYALA
    Kemarin saya udah coba menyambungkan arduino UNO ke LED RGB dgn pengaturan sbb
    – uno (R=pin3, G=pin5, B=pin6, GND=pin5v dan atau 3,3v )
    – resistor 220ohm utk semua kaki RGB

    Percobaan #2. Gagal…
    Kemudian…. led tsb sy pasangkan ke nodeMCU v3…. dan hasilnya RGB tidak hidup.
    R = D0
    G = D1
    B = D2
    Kaki terpanjang = 3,3v

    Tanya: a) dimana salahnya… kok tidak nyala padahal ke 3,3v…???

    Percobaan #3. Gagal. LED MATI
    Krn percobaan 2 gagal… akhirnya led tsb sy kembalikan lagi sebagaimana pada percobaan #1. dengan tujuan utk memeriksa apakah led masih normal atau sudah mati… faktanya mati

    Tanya: kenapa mati…

    Mohon pencerahannya nyebarilmu.com…

    trims ya… master 🙂

    • admin-kece

      LED RGB yang digunakan menggunakan COMMON apa dulu gan?

      kemudian untuk NodeMCU V3, saran ane sebelum memprogram menggunakan LED RGB saran ane, program dulu menggunakan LED BUILT IN nya dulu,

      setelah itu kalo OK diganti menggunakan LED biasa dulu, baru lanjut ke LED RGB,

      dikarenakan LED RGB merupakan kumpulan 3 warna LED biasa yang dipackage menjadi 1 LED,

      refrensi yang bisa digunain untuk pemrograman itu.

      https://www.nyebarilmu.com/project-nodemcu-untuk-mengendalikan-4-channel-relay/

    • kalau 2 kaki gak bisa dikendalikan nyala Red, Green, dan Blue secara independen gan

    • kalau 2 kaki gak bisa dikendalikan nyala Red, Green, dan Blue secara independen gan

Leave a Reply

Your email address will not be published. Required fields are marked *