Semua Tentang Belajar Teknologi Digital Dalam Kehidupan Sehari - Hari

Jumat, 02 Juli 2021

LED VU Meter Menggunakan WS2812B dan Controler SP107E - Bluetooth music

Kali ini saya ingin melampiaskan ke galauan saya yang tergelitik oleh video youtube seorang pecinta per-Led-an : Omank Kacau,  dimana saya sangat salut kepada pendekatan tutorial pada videonya yg sangat santai pembawaannya dan penjelasannya yg sangat mudah dimengerti. Penulis yg sejak tahun 1994 sudah berkutat dengan LED-555-4017 dari flip flop 2 transistor dan running LED IC 4017 menjadi 'jealous' dengan anak jaman now yg dihadirkan modul siap pakai yg sangat menarik untuk dicoba.




Yang menjadi kekaguman berlanjut kekaguman saya adalah ketika saya menelusuri apa sih jenis LED Strip yg digunakan ? Wow ternyata bukan LED strip biasa, namun merupakan LED canggih yg memiliki controller RGB dan jalur komunikasi data didalamnya. LED Strip ini ber type WS2812B dan harga satu gulungnya sekitar 120 rb-an di online shop.




Jadi didalam LED tersebut bisa kamu sambungkan sesuai keinginan, bentuknya mau lurus, meliuk ataupun kamu potong - potong dan susun kembali  asal benar koneksinya seperti dibawah ini :



Jadi LED ini di cascade sampai panjang yg mungkin tak berhingga (bohong kalau ini saya) dan selanjutnya untuk mudahnya bisa membeli controller LED + VU Music dengan komunikasi Bluetooh SP107E dengan harga yah kisaran  200 ribuan.





Jadi seperti yg dilakukan Omank Kacau dalam videonya, dia cukup memotong LED, menyambungnya dengan konektor 3 pin, lalu menyusunnya ditembok. Ya semudah itu dan kemudian ambil smartphone install di playstore aplikasi VU meter yg sesuai, beres deh !






Lalu bagaimana sih jeroan coding untuk LED strip WS2812B ini jika mau belajar konsepnya ? Dari sumber internet saya dapatkan seperti berikut.




Bagaimana Cara Kerja  LED WS2812B 


Mari kita mulai dengan melihat lebih dekat pada strip LED. Ini terdiri dari LED RGB tipe 5050 di mana IC driver LED WS2812B yang sangat kompak terintegrasi.

Apa yang hebat tentang LED strip ini adalah kita dapat mengontrol bahkan seluruh strip LED hanya dengan satu pin dari Arduino / microcontroller kita. Setiap LED memiliki tiga konektor di setiap ujungnya, dua untuk daya dan satu untuk data. Panah menunjukkan arah aliran data. Panel output data dari LED sebelumnya terhubung ke panel Input Data dari LED berikutnya. Kita dapat memotong strip ke ukuran yang kita inginkan, serta mengatur jarak LED hanya dengan menggunakan beberapa kabel.





Adapun daya mereka bekerja pada 5V dan masing-masing LED Merah, Hijau dan Biru menarik sekitar 20mA, atau total 60mA untuk setiap LED pada kecerahan penuh. Perhatikan bahwa ketika Arduino diberi daya melalui USB, pin 5V hanya dapat menangani sekitar 400 mA. Jadi gunakan power supply yg ampernya lebih gede aja biar nyalanya tidak mengecewakan.


Jika Anda menggunakan lebih banyak LED dan jumlah arus yang akan ditarik melebihi batas yang disebutkan di atas, Anda harus menggunakan catu daya 5V yang terpisah. Dalam kasus seperti itu, Anda juga perlu menghubungkan dua garis Ground satu sama lain. Selain itu, disarankan untuk menggunakan resistor sekitar 330 Ohm antara Arduino dan pin data strip LED untuk mengurangi kebisingan/noise pada saluran itu, serta kapasitor sekitar 100uF di seluruh 5V dan Ground untuk memperlancar catu daya. .


Contoh Arduino dan LED WS2812B


Sekarang sebagai contoh saya akan menggunakan 20 LED strip panjang, terhubung ke Arduino melalui resistor 330 Ohm dan ditenagai dengan catu daya 5V terpisah, seperti yang dijelaskan di atas. Untuk memprogram Arduino, kami akan menggunakan library:  FastLED. Ini adalah library yang sangat baik dan terdokumentasi dengan baik yang memungkinkan kontrol yang mudah dari LED WS2812B.



#include <FastLED.h>
#define LED_PIN 7
#define NUM_LEDS 20
CRGB leds[NUM_LEDS];
void setup() {
FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS);
}
void loop() {
leds[0] = CRGB(255, 0, 0);
FastLED.show();
delay(500);
leds[1] = CRGB(0, 255, 0);
FastLED.show();
delay(500);
leds[2] = CRGB(0, 0, 255);
FastLED.show();
delay(500);
leds[5] = CRGB(150, 0, 255);
FastLED.show();
delay(500);
leds[9] = CRGB(255, 200, 20);
FastLED.show();
delay(500);
leds[14] = CRGB(85, 60, 180);
FastLED.show();
delay(500);
leds[19] = CRGB(50, 255, 20);
FastLED.show();
delay(500);
}




Penjelasan: Jadi pertama-tama kita perlu menyertakan library FastLED, menentukan pin yang menghubungkan data strip LED, menentukan jumlah LED, serta menentukan array tipe CRGB. Jenis ini berisi LED, dengan tiga anggota data satu byte untuk masing-masing dari tiga saluran warna Merah, Hijau dan Biru.





Di bagian pengaturan kita hanya perlu menginisialisasi FastLED dengan parameter yang ditentukan di atas. Sekarang loop utama kita dapat mengontrol LED kita sesuka kita. Menggunakan fungsi CRGB, kita dapat mengatur LED apa pun ke warna apa pun menggunakan tiga parameter warna Merah, Hijau, dan Biru. Untuk membuat perubahan terjadi pada LED kita perlu memanggil fungsi FastLED.show().


Lalu contoh kedua akan dibuat animasi sederhana pada LED Strip.



#include <FastLED.h>
#define LED_PIN 7
#define NUM_LEDS 20
CRGB leds[NUM_LEDS];
void setup() {
FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS);
}
void loop() {
for (int i = 0; i <= 19; i++) {
leds[i] = CRGB ( 0, 0, 255);
FastLED.show();
delay(40);
}
for (int i = 19; i >= 0; i--) {
leds[i] = CRGB ( 255, 0, 0);
FastLED.show();
delay(40);
}
}




Di sini loop "untuk" pertama menyalakan semua 20 LED dengan warna biru, dari LED pertama hingga terakhir dengan penundaan 40 milidetik. Loop "untuk" berikutnya menyala lagi semua 20 LED, tetapi kali ini dalam warna merah dan dalam urutan terbalik, dari LED terakhir ke LED pertama.







Library FastLED memiliki banyak fungsi lain yang dapat digunakan untuk membuat animasi dan pertunjukan cahaya yang sangat menarik, jadi terserah imajinasi Anda untuk membuat proyek LED berikutnya menyala seperti bagaimana.


Share:

0 komentar:

Posting Komentar

Kontak Penulis



12179018.png (60×60)
+628155737755

Mail : ahocool@gmail.com

Site View

Categories

555 (8) 7 segmen (3) adc (4) amplifier (2) analog (19) android (12) antares (8) arduino (26) artikel (11) attiny (3) attiny2313 (19) audio (5) baterai (5) blog (1) bluetooth (1) chatgpt (2) cmos (2) crypto (2) dasar (46) digital (11) dimmer (5) display (3) esp8266 (25) euro2020 (13) gcc (1) iklan (1) infrared (2) Input Output (3) iot (58) jam (7) jualan (12) kereta api (1) keyboard (1) keypad (3) kios pulsa (2) kit (6) komponen (17) komputer (3) komunikasi (1) kontrol (8) lain-lain (8) lcd (2) led (14) led matrix (6) line tracer (1) lm35 (1) lora (7) MATV (1) memory (1) metal detector (4) microcontroller (70) micropython (6) mikrokontroler (1) mikrokontroller (14) mikrotik (5) modbus (9) mqtt (3) ninmedia (5) ntp (1) paket belajar (19) palang pintu otomatis (1) parabola (88) pcb (2) power (1) praktek (2) project (33) proyek (1) python (7) radio (26) raspberry pi (4) remote (1) revisi (1) rfid (1) robot (1) rpm (2) rs232 (1) script break down (3) sdcard (3) sensor (2) sharing (3) signage (1) sinyal (1) sms (6) software (18) solar (1) solusi (1) tachometer (2) technology (1) teknologi (2) telegram (2) telepon (9) televisi (167) television (28) transistor (2) troubleshoot (3) tulisan (93) tutorial (108) tv digital (6) tvri (2) vu meter (2) vumeter (2) wav player (3) wayang (1) wifi (3)

Arsip Blog

Diskusi


kaskus
Forum Hobby Elektronika