Pencahayaan merupakan aspek kebutuhan yang bisa di optimasi sehingga memberikan kenyamanan, ketelitian, keakuratan dan seterusnya. Bola lampu (bulb) merupakan sumber cahaya yang disediakan pabrikan dalam bermacam ukuran, secara awam diberikan dalam satuan Watt. Namun dalam pencahayaan, dibutuhkan besaran lumen yang mampu di hasilkan oleh titik bola lampu. Apabila bola lampu digunakan untuk menerangi bisang di depannya, maka rata-rata kecerahan bidang tersebut adalah jumlah lumen di bagi luas area yang terpapar dalam satuan lux.
Standar pencahayaan menetapkan beberapa ukuran yang diperlukan untuk menerangi area, diantaranya :
Ruangan | Tingkat Pencahayaan |
---|---|
Teras | 60 |
Ruang tamu | 120 ̴ 150 |
Ruang makan | 120 ̴ 250 |
Ruang kerja | 120 ̴ 250 |
Kamar tidur | 120 ̴ 250 |
Kamar mandi | 250 |
Dapur | 250 |
Garasi | 60 |
Dalam beberapa aplikasi pencahayaan diperlukan kecerahan yang akurat, untuk keperluan itu dibutuhkan bola lampu yang bisa diatur keluaran intensitas cahaya/lumen-nya. Selain itu keuntungan lainnya menggunakan dimmer seperti bisa diatur tingkat kesilauan, rendering warna, panas, daya.
Projek kali ini akan mencoba membuat bola lampu LED yang bisa diredupkan. Karena jenis bola lampu ini tidak banyak dijual atau jarang tersedia di toko listrik, kita bisa memodifikasi bola lampu led biasa menjadi bola lampu yang bisa di redupkan/dimmable.
Komponen yang diperlukan adalah :
- Bola lampu LED yang punya cukup ruang bebas di dalamnya
- Transformator, ukuran ampere dan tegangannya disesuaikan
- Dioda bridge
- kapasitor
rakit komponen tersebut menurut skema berikut:
Rangkaian ini berupa penyearah pada umumnya yang dihubungkan dengan led pada bola lampu. Pada percobaan ini led-led dikelompokkan dalam 3 led seri dan dihubungkan dengan sumber tegangan dari trafo 12v–6v (~18v ac) disesuaikan dengan spesifikasi komponen yang digunakan.
berikut adalah contoh pemasangan lampu led dimmable:
Dimmer LED bulb ini bisa di kontrol dengan arduino menggunakan skema berikut:
Gunakan koding dimmer bola lampu led ini untuk menguji modifikasi lampu led yang dapat diredupkan:
#define pinPWM 3 #define pinZCD 2 #define frekuensi 50 //50 Hz #define inputSerial false #define fCPU 16e6 #define prescaler 1024 #define lebarZCD 500e-6//s #define freqDutyCycle (fCPU / (1.0 * prescaler * 2 * frekuensi)) #define minTrigger ((lebarZCD/2) / (prescaler / fCPU)) + 1 #define maxTrigger (freqDutyCycle * 0.85) volatile uint16_t dutyCycle; volatile intptr_t *portPWM; volatile byte bitPWM; void setup() { Serial.begin(9600); Serial.println("Dimmer LED arduino"); Serial.println("https://www.project.semesin.com/"); Serial.println(); pinMode(pinPWM, OUTPUT); dutyCycle = setDutyCycle(0); TCCR2A = _BV(WGM21); TCCR2B = _BV(CS22) | _BV(CS21) | _BV(CS20);// clk/1024 OCR2A = maxTrigger - 1; OCR2B = dutyCycle; TIMSK2 = _BV(OCIE2B); portPWM = (volatile intptr_t *) portOutputRegister(digitalPinToPort(pinPWM)); bitPWM = digitalPinToBitMask(pinPWM); attachInterrupt(digitalPinToInterrupt(pinZCD), zcdChange, RISING); Serial.print("minTrigger="); Serial.println((int)minTrigger); Serial.print("maxTrigger="); Serial.println((int)maxTrigger); } void loop() { #if inputSerial if (Serial.available()) { int data = Serial.parseInt(); dutyCycle = setDutyCycle(data); while (Serial.available()) { Serial.read(); delay(2); } } #else for (byte i = 1; i <= 100; i++) { dutyCycle = setDutyCycle(i); delay(20); } for (int8_t i = 99; i >= 0; i--) { dutyCycle = setDutyCycle(i); delay(20); } delay(1000); #endif } uint16_t setDutyCycle(uint8_t dutyCycle) { uint8_t trigger = map(dutyCycle, 0, 100, maxTrigger, minTrigger); // Serial.print("dutyCycle="); // Serial.print(dutyCycle); // Serial.print(" trigger="); // Serial.println(trigger); return trigger; } void zcdChange() { TCNT2 = 0; OCR2B = dutyCycle; } ISR (TIMER2_COMPB_vect) { *portPWM |= bitPWM; delayMicroseconds(10); *portPWM &= ~bitPWM; }