0

WS2812B Led Strip Arduino Bluetooth Control Using App

Bismillahirrahmanirrahim, Assalamualaikum teman-teman dimanapun berada semoga senantiasa selalu berada di lindungan Allah SWT. Pada project ini saya akan membahas bagaimana caranya membuat LED Strip yang dapat dikendalikan melalui smartphone. Oiya LED Strip yang saya gunakan adalah jenis LED RGB yang didalamnya terdapat IC WS2812B. Dan hebatnya LED Strip ini adalah kita bisa mengendalikan beberapa LED hanya dengan satu pin arduino, tentunya sangat membantu sekali bukan? ketika kita ingin mengkombinasikannya dengan yang lain. 

Tanpa berpanjang lebar lagi, kita akan melihat secara detail LED Strip ini, perhatikan gambar di bawah ini ya.

Yang di lingkari warna merah adalah IC Led Driver WS2812B. Setiap LED memiliki tiga konektor di setiap ujung, dua untuk supply dan satu untuk data. Panah menunjukkan arah aliran data. Panel output data dari LED sebelumnya terhubung ke pad Input Data dari LED berikutnya. Adapun supply mereka bekerja pada 5V dan setiap LED Merah, Hijau dan Biru menarik sekitar 20mA, atau total 60mA untuk setiap LED pada kecerahan penuh. Ketika Arduino diaktifkan melalui USB, pin 5V hanya dapat menangani sekitar 400 mA, dan ketika diberi daya menggunakan konektor DCl, pin 5V dapat menangani sekitar 900 mA. Jadi jika kalian menggunakan lebih banyak LED dan jumlah arus yang mereka keluarkan melebihi batas yang disebutkan di atas, kalian harus menggunakan catu daya 5V terpisah. Dalam kasus seperti itu kalian juga perlu menghubungkan dua garis Ground dua sama lain.

Sekarang sebagai contoh, saya akan merakit 6 LED yang akan dihubungkan ke Arduino. Perhatikan skema di bawah ini.

koding nya :

/*
* Contoh 1 
* LED Strip WS2812B
* Ngulik.id
*/

#include <Adafruit_NeoPixel.h>

#define PIN 2	 // input pin Neopixel 

#define NUMPIXELS      6 // jumlah LED yang akan di kendalikan

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

int delayval = 100; // delay

int redColor = 0;
int greenColor = 0;
int blueColor = 0;

void setup() {
  // Inisialisasi library Neopixel
  pixels.begin();
}

void loop() {
  setColor();

  for (int i=0; i < NUMPIXELS; i++) {
    // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
    pixels.setPixelColor(i, pixels.Color(redColor, greenColor, blueColor));

    // mengirimkan warna yang di perbaharui.
    pixels.show();

    delay(delayval);
  }
}

// mencetak warna random ke led
void setColor(){
  redColor = random(0, 255);
  greenColor = random(0,255);
  blueColor = random(0, 255);
}

dan hasil simulasinya sebagai berikut :

Lalu pertanyaan nya, bagaimana kita ingin mengendalikan warna lampu nya lewat smartphone?. Mari kita buat, caranya simpel sekali, dengan menambahkan modul Bluetooth HC-05 dan mengedit kodingan diatas, maka kita akan bisa mengendalikan warna LED Strip tersebut dari smartphone. Dan saya akan mengendalikan 5 buah LED untuk wiring nya lihat gambar dibawah ini.

#include <Adafruit_NeoPixel.h>
#include <SoftwareSerial.h>

#define LED_PIN 2     //Pin yang terhubung ke Digital Input Led Strip
#define LED_COUNT 5  //Jumlah Neopixel LED yang akan digunakan

Perhatikan kodingan di atas, saya menambahkan library SoftwareSerial.h, digunakan agar bisa membaca data String yang di terima dari smartphone melalui bluetooth.

Screen shoot aplikasinya

Hasil Percobaan 

Untuk file lengkapnya, kodingan, library dan aplikasi yang digunakan kalian bisa download di bawah ini :

untuk video percobaan dan password file di atas kalian bisa lihat di bawah ini :

https://youtu.be/4X0FOHW7xzQ

Terima kasih buat kalian yang sudah menyimak sampai akhir, semoga ini bemanfaat untuk kalian. Oh iya terakhir saya minta support kalian untuk mengunjungi instagram kami di @idngulik (jangan lupa follow hehe) dan kunjungi kami di youtube Ngulik ID (subscribe ya :D). Sekian dari saya, mohon maaf bila ada salah-salah kata dan apabila ada yang kurang di mengerti kalian bisa menghubungi kami melalui IG. Wassalamualaikum stay safe dan sering-sering cuci tangan ya.

rp.rusdiana

Leave a Reply

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