DIY LED Light Controller (Sunrise Sunset)

dhipz

Active Member
Karena sepertinya belum ada yg memulai,dan penggunaan LED sekarang semakin nge-trend,saya akan coba share kan sedikit tentang kontroler LED yang kemaren saya buat.
Pertama sebelum kita bicara tentang bagaimana cara membuat controller nya,maka lebih bagus kalo kita kenal dekat dulu dengan apa sih dan bagaimana sih intensitas cahaya LED bisa diatur.

Untuk mengontrol intensitas cahaya,diantaranya kita bisa menggunakan:
  1. variabel resistor,tapi cara ini tentu saja hanya bisa diaplikasikan secara manual,gk bisa otomatis apalagi minta simulasi sunrise dan sunset,bakal pegel,karena tiap hari harus muter2 varistornya,hehehe
  2. dengan metode PWM (Pulse Widht Modulation),sejauh ini cara ini masih paling efektif,dan bisa dilakukan secara otomatis,mengingat sekarang udah banyak sumber2nya di internet,kita bisa dengan mudah cari sourcenya dan belajar sendiri di rumah.
nah,setelah mengetahui cara mengontrol intensitas cahayanya,dengan menggunakan PWM,maka gk ada salahnya kalo kita kenalan dulu ama PWM,apa sih PWM itu,bagaimana menghasilkan sinyal PWM,dsb,..
PWM atau kependekan dari Pulse Widht Modulasi sebenernya adalah suatu teknik modulasi sinyal,.kalo ngomong2 soal PWM,kita akan sering ketemu dengan yang namanya istilah dutycycle dan frekuensi. Apa bedanya antara dutycycle dengan frekuensi???jelas beda,dari namanya juga udah beda (hehehe),tapi keduanya punya peran masing2 dan sangat penting,yok kita mulai satu satu,..
  1. dutycycle sebenernya adalah perbandingan antara waktu ON dan total waktu yang dibutuhkan untuk mencapai satu periode (ON dan OFF) dikali dengan 100%.
  2. frekuensi adalah banyaknya siklus ON dan OFF yang dilakukan dalam satu detik.. frekuensi jelas berhubungan dengan periode,karena f=1/T,dengan f=frekuensi, dan T=periode,.
hlcy.jpg

ilustrasi sinyal PWM

setelah tahu dutycycle dan frekuensi,maka kita sudah semakin kenal dengan PWM,sebagai bahan diskusinya:

Samakah hasilnya kalau sinyal PWM dengan dutycycle sama2 50%,tapi dengan frekuensi yang berbeda,katakanlah yang satu mempunyai frekuensi 50 Hz,sedangkan yang lainnya mempunyai frekuensi 1/5 Hz??????

Setelah memahami bagaimana jawaban pertanyaan diskusi di atas,ayo kita lanjutkan kenalan ama PWM ini,..
Karena PWM tadi akan kita gunakan sebagai kontroler intensitas cahaya,maka kita perlu tahu,bagaimana cara menghasilkan sinyal ini,..
Ada bermacam - macam jalan menuju Roma,begitu juga dengan PWM,ada bermacam - macam cara menghasilkan sinyal PWM,tapi karena kita menginginkan sesuatu yang otomatis,maka pilihan paling tepat adalah tentu saja menggunakan MIKROKONTROLER,..
Jenisnya????banyak sekali,dari mulai keluarga 8091, AVR, ARM, PIC, atau yang sekarang lagi ngetrend ARDUINO,..
Kalo bicara soal mikrokontroler,maka jelas kita akan berkutat dengan yang namanya software dan software, bahasa yang ditawarkan untuk memulai memrogram sebuah mikrokontroler juga sangat banyak,dari mulai bahasa asembli,bahasa C,dan bahkan bahasa python.
Dengan banyaknya jenis dan bahasa yang digunakan,maka jelas sangat sulit untuk menjelaskan semuanya,jadi saya rasa algoritma pemrograman akan jauh lebih berguna disini,karena bahasa pemrograman nantinya hanya akan berhubungan dengan syntax,bukan dengan hasil program,..
Saya sendiri lebih terbiasa menggunakan keluarga AVR dengan bahasa C,..
 

dhipz

Active Member
Sampai di algoritma program,intinya adlah perhitungan matematika sederhana.pertama mari kita lihat seperti apa tujuan yang kita inginkan. berikut adalah sedikit ilustrasinya:
ru5m.jpg


Pada saat sunrise (dari A ke B),maka kita perlu mencari berapa kemiringan garis dari intensitas 0 - Peak (berikutnya disebut INC),untuk mencari INC,kita bisa gunakan rumus:

INC=(B-A)/Peak

selanjutnya,untuk mendapatkan intensitas di titik x,kita bisa gunakan rumus:

intensitas saat x=(x-A)*INC

Sedangkan saat sunset,(dari C ke D),maka kita perlu mencari kemiringan garis dari intensitas Peak ke 0 (berikutnya disebut DEC),untuk mencari DEC,kita gunakan rumus:

DEC=(D-C)/Peak

selanjutnya untuk mendapatkan intesitas di titik z,kita bisa gunakan rumus:

intensitas saat z=Peak-((z-C)*DEC)

Nah,monggo untuk programnya dibuat seperti apa,kira2 algoritmanya seperti itu,...
Kalo ada yg minta dijelasin secara spesifik,bisa post aja,perntanyaan bisa posting aja,...
Berikutnya yang perlu dibuat adalah driver,karena mikrokontroler,mempunyai keterbatasan di arus yang bisa dihasilkan atau ditahan,maka perlu ada perantara antara LED dengan mikrokontroler,..
Karena nantinya digunakan untuk switching LED yang mempunyai arus lumayan besar,maka perlu diperhatikan rating arus komponen yang digunakan..
Berikut adalah rangkaian driver yang saya desain:
ohw1.png


disini saya menggunakan MOSFET IRF540 sebagai komponen utamanya,..

untuk kelanjutannya,bisa lewat tanya jawab posting aja,karena saya bingung mau nulis apa lagi,hehehe,maklum masih newbie,saya akan bantu semampu saya,...
 
Last edited:

dhipz

Active Member
oh iya,untuk driver di atas,semakin besar dutycycle,maka akan semakin terang cahaya LEDnya,..
kaki negatif LED masuk ke pin LED,sedangkan pin PWM_UC adalah untuk masukan sinyal PWM yang dihasilkan mikrokontroler,..
 

stiawan

Member
Konfigurasi sunrise/sunset pake
File di sdcard atau metode lain om?

Mau dong share cara baca konfig
Fike oleh MicroController (MC).
 

dhipz

Active Member
Konfigurasi sunrise/sunset pake
File di sdcard atau metode lain om?

Mau dong share cara baca konfig
Fike oleh MicroController (MC).

saya gk pake SD card dan sebangsanya pak,pake fasilitas yg ada di mikrokontroler kebanyakan,yaitu EEPROM,data yang disimpan di memori ini gk akan hilang walaupun mikro dalam keadaan mati (karena mati lampu atau yg lainnya),untuk mengakses EEPROM,caranya macam2,tergantung dari jenis mikrokontroler yang digunakan,jadi bisa dibaca di datasheet mikrokontroler yang digunakan,..
 

aquapet

Member
kalau pada nanya cara bikinnya, ntar bisa jadi bisnis mas dhipz :p :kutubuku: karena ga semua bisa diprogram dengan mudah, bahasanya itu lho :D
 

dhipz

Active Member
Wah, dari kmrn saya nyari nih artikel... Gmn cara bikin'a.....

Thx udh mau share ilmu'a.... Sangat bermanfaat

ntar saya update lagi pak,itu artikelnya belom lengkap,soalnya tadi malam sedang mampet nie pikiran,jadi bingung mau tulis apa lagi,hehehe,..

kalau pada nanya cara bikinnya, ntar bisa jadi bisnis mas dhipz :p :kutubuku: karena ga semua bisa diprogram dengan mudah, bahasanya itu lho :D

hehehehe,tapi di sini saya murni mau share aja kok,toh di forum luar negeri sono juga sudah banyak yg share,tapi kok saya lihat di forum ini malah belom ada yg memulai,jadi saya coba untuk memulai,saya share setau saya,hehehe,..
 

stiawan

Member
Om Dhipz.
Kalo pengen modif / mengubah persentase power yg dipancarkan untuk
sunset / sunrise gimana caranya ? harus menggunakan eeprom programming device kah?

Ehm...jadi rame nih thread nya.

saya gk pake SD card dan sebangsanya pak,pake fasilitas yg ada di mikrokontroler kebanyakan,yaitu EEPROM,data yang disimpan di memori ini gk akan hilang walaupun mikro dalam keadaan mati (karena mati lampu atau yg lainnya),untuk mengakses EEPROM,caranya macam2,tergantung dari jenis mikrokontroler yang digunakan,jadi bisa dibaca di datasheet mikrokontroler yang digunakan,..
 

dhipz

Active Member
Om Dhipz.
Kalo pengen modif / mengubah persentase power yg dipancarkan untuk
sunset / sunrise gimana caranya ? harus menggunakan eeprom programming device kah?

Ehm...jadi rame nih thread nya.

ru5m.jpg

Sekalian aja ya pak,kita lanjutkan artikel di atas,...
saya coba lanjutkan bagian program yg ada grafik intensitas cahaya terhadap waktu,..
di situ udah saya jelaskan kalau untuk mencari nilai intensitas cahaya di suatu titik (saat sunrise atau saat sunset),maka kita pake rumus INC dan DEC,..
nah disini kita tidak perlu menyimpan semua titik2 intensitas di setiap detik,karena ini jelas akan memakan banyak memori,mengingat memori mikrokontroler yang terbatas,jadi disini kita simpan aja parameter utama untuk mencapai itu,..
kalo dilihat dari gambar di atas,maka parameter utama yang kita perlukan adalah waktu di titik A,dan jarak dari A ke B (untuk sunrise) dan waktu di titik C, dan jarak dari C ke D (untuk sunset),maka parameter inilah yang perlu kita simpan,nah untuk mengubah presentasi sunset dan sunrise,kita hanya tinggal membandingkan waktu saat ini dengan jarak ke A misalnya (lihat rumus di atas untuk titik x dan z),begitu seterusnya,..
Jadi ada beberapa parameter utama yang bisa kita simpan di memori EEPROM sebagai setingan awal parameter sunrise dan sunset,yaitu:
  1. Waktu saat kita akan memulai sunrise (lihat titik A)
  2. Lamanya waktu sunrise yang kita inginkan (jarak titik A ke B)
  3. Waktu saat kita akan memulai sunset (lihat titik C)
  4. Lamanya waktu sunset yang kita inginkan (jarak titik C ke D)
  5. Intensitas cahaya maksimum yang diinginkan (PEAK)
dari kelima parameter di atas,kita nantinya bisa menentukan,brapa intensitas cahaya di titik x,y,ataupun z secara random,..
kalau di tempat saya,terdapat 5 kondisi utama saat kita menginginkan efek sunrise dan sunset,yaitu:
  1. Waktu saat ini sudah lebih besar dari waktu sunrise,maka intensitas cahayanya adalah rumus x (di titik x)
  2. Waktu sudah lebih besar dari waktu sunrise ditambah lamanya waktu sunrise yang diinginkan,maka intensitas cahayanya adalah PEAK (di titik y)
  3. Waktu saat ini sudah lebih besar dari waktu sunset,maka intensitas cahayanya adalah rumus z (di titik z)
  4. Waktu sudah lebih besar dari waktu sunset ditambah lamanya waktu sunset yang diinginkan,maka intensitas cahayanya adalah 0
  5. Waktu di luar ketentuan di atas, maka intensitas cahayanya adalah 0
 

dhipz

Active Member
lgs tanya ke rangkaiannya aja, biar lgs rakit.
kira2 utk handle led brp maksimal ?

sepertinya untuk rangkaian tidak terlalu sulit,karena semuanya ada,justru yang butuh waktu adalah pembelajaran terhadap program yang dibuat,...
untuk drivernya sendiri,rangkaian di atas bisa menghandel hingga 16 rangkaian LED 1 watt paralel (arus sekitar 5,94A),dan tegangan supply max 100V,jadi kalo PSU yang digunakan mempunyai tegangan yg besar,maka akan semakin bsar juga LED yang bisa di handel. tentu saja perlu tambahan heat sink di bagian MOSFET IRF540 nya,agar tidak panas.

maslahnya koneksi internet saya sedang gk bisa diajak kompromi,mau upload gambar susah bgt,..
 

cipluk

Member

om kalau boleh minta pic rangkaian asli nya,
saya awam part elektronik gitu ga ngerti bacanya,, jadi belum terbayang atau gambaran part-part aslinya seperti apa bentuknya,

untuk bahasa pemrograman nanti saya tanya temen2 kerja saya,,

thanx share dan ilmu nya,,
 

dhipz

Active Member
om kalau boleh minta pic rangkaian asli nya,
saya awam part elektronik gitu ga ngerti bacanya,, jadi belum terbayang atau gambaran part-part aslinya seperti apa bentuknya,

untuk bahasa pemrograman nanti saya tanya temen2 kerja saya,,

thanx share dan ilmu nya,,

ditunggu aja pak,soalnya saya lagi gk bisa upload gambar,ntah knapa,..
yg lain juga mohon maaf ya,karena sementara tertunda sharingnya,karena koneksi internet saya sedang gk bisa diajak kompromi,..
 

TanK

Member
ditunggu aja pak,soalnya saya lagi gk bisa upload gambar,ntah knapa,..
yg lain juga mohon maaf ya,karena sementara tertunda sharingnya,karena koneksi internet saya sedang gk bisa diajak kompromi,..

Masih harap2 cemas uploatannya bisa berhasil gak..
 

dhipz

Active Member
setelah sekian lama gk di update,yuk sekarang di update lagi,...
setelah membicarakan soal PWM,dan kontrolernya,bagian dari kontroler ini yg gk kalah penting adalah RTC,atau Real-Time Clock,..
Fungsinya????tentu saja untuk mempertahankan waktu yg ada,karena pengendalian yg akan dilakukan nantinya bersifat real-time,...
IC RTC banyak sekali jenisnya dipasaran,dan metode yg digunakan juga bermacam - macam,tapi disini saya akan coba share IC RTC DS1307,..
IC ini mempunyai antarmuka I2C untuk komunikasi ke kontrolernya,dan ada tambahan pin SQW/OUT yang dapat menghasilkan gelombang kotak dengan frekuensi 1Hz,4096Hz,8192Hz dan 32768Hz,..
dari keluaran gelombang kotak ini bisa dipakai untuk sumber detak counter yg ada di mikrokontroler dan digunakan sebagai jam internal di kontrolernya,..
singkatnya gini,IC ini bisa menyimpan waktu yg ada,dan juga menghasilkan detak jam.jadi semisal terjadi mati listrik,jam yg ada masih tetap tersimpan di IC ini,dan saat sumber listrik nyala kembali,kita tinggal load waktu dari IC ini ke kontroler,dan selanjutnya tinggal mengikuti detak dari pin SQW/OUT IC ini untuk melanjutkan waktu yg ada,..

nah untuk protokol komunikasinya seperti apa,bisa dilihat sendiri di datasheet ya,dan sepertinya contoh programnya juga sudah banyak di internet,nah yg akan saya share disini adalah rangkaiannya,semoga bisa membantu teman2 reef smua dalam mendisain kontrolernya,..

x15b.png


didalam rangkaiannya,menggunakan baterai CMOS (yg biasa ada di MOBO komputer),untuk menjaga agar IC ini tetap aktif walaupun sumber listrik utama tidak tersedia,..
sedangkan komponen Q1 itu adalah QUARTZ CRYSTALL yg nilainya 32,768kHz,..
yang perlu diperhatikan adalah saat pemasangan kristal ini,karena kristal ini nantinya yg menentukan akurasi waktu,..
usahakan di dekat kristal tidak ada sinyal2 lain yg bisa mengganggu,dan usahakan diberi GROUND PLANE disekitar kristal,..
dirangkaian di atas itu,itu sudah ada GROUND PLANE di bagian kristal dan terhubung ke GROUND rangkaian melalui sebuah kapasitor 0,1uF, untuk meminimalisir noise,..
di rangkaian di atas itu kaki SQW OUT (pin no 7) dibiarkan menggantung dan tidak digunakan,apabila ingin digunakan sebagai sumber detak di kontroler,harus diberi resistor pull-up sebesar 4,7kOhm keatas (seperti gambar skematik dibawah)

h8je.png


nah ini rangkaian driver LED yg kemaren,
93pz.png

bagian R_LED (2,2ohm / 2 watt) itu sebenarnya hanya jumper saja,karena hambatan itu digunakan nantinya yg membatasi arus yg masuk ke LED,jadi hambatan itu harus disesuaikan dengan kebutuhan LED / desain rangkaian LEDnya dan besar PSU yg digunakan untuk mensuplay LED,jadi sebaiknya itu diganti dengan jumper saja,..

komponen T1 adalah transistor 2N2222,sedangkan T3 adalah transistor 2N2907,sedangkan R1 juga sebenarnya cuma jumper,sama seperti R_LED

NB: Semua gambar rangkaian di atas,tata letak IC dan transistor dan komponen lainnya adalah tata letak apabila dilihat dari atas,jadi penggunaannya disesuaikan ya,..
 
Last edited:

Members online

No members online now.

Poll

  • Koral saja

    Votes: 0 0.0%
  • Ikan saja

    Votes: 0 0.0%
  • Koral + Ikan

    Votes: 8 100.0%

Forum statistics

Threads
7,150
Messages
197,230
Members
10,579
Latest member
rachmatmhuda
Top