设计思路介绍
我非常喜欢在室外拍摄人像,但如果想把人拍的唯美,一定程度的背光,逆光肯定会难免的出现。这种时候就需要新的光源来为模特的侧面和正面进行补光。常见的可以外置引闪的闪光灯非常昂贵,而如果是常亮的补光灯的话,又会非常巨大,还需要单独的电池来供电。因此我非常需要一个体积小,亮度高的光源,方便外出携带。
一是既然要方便携带,那么就要考虑供电如何便携。再多带一块电池显然过于麻烦,因此我们可以试用充电宝来进行供电。
第二是既然是USB供电,那么必然需要升压电路,这样才能驱动串联灯组。
第三是LED是半导体元件,需要外围电路来限制电流。一般使用电阻来完成。但如果需要大功率高亮LED,电流可能会比较大,使用电阻的话电阻能耗会过高,发热严重,因此我们还需要恒流电路。
第四是高亮LED灯组工作时会产生大量的热,因此需要解决散热问题。
方案框图和原理图介绍
设计这样一款灯,需要考虑几个方面:
首先,使用充电宝取电,为了减少升压幅度,满足大功率输出,这里需要使用支持快充协议的充电宝,同时需要一个诱骗器,就可以从充电宝获得12V电压输出。
灯珠我使用的是高亮2835LED,8串一起使用,也就意味着最低的导通电压也需要有24V,这就需要用到恒流升压电路。
单排LED肯定不够亮,一般使用的都是LED矩阵。大量的LED发热会非常严重,为了散热好,我选择使用铝基板来做PCB,这样的话走线就仅能单面走线,对布线提出了更高的要求。同时,我还准备了一块主动散热片,就是散热片上带一个12V风扇,可以贴在铝基板上辅助散热。
指定厂商元器件简单介绍
由于这个创意并未用到任何的MCU,因此我打算使用罗姆半导体的电阻来完成这个项目。
那么下面就参考罗姆半导体的官方资料,简单介绍一下电阻:
要使LED(发光二极体)发光,需要限制流经电路的电流,使施加于LED的电压值变为适当的值(约2V)。如图1-(a)所示,只是直接连接1 Cell干电池(约1.5V)时,因电压不足而无法发光。
另外,如图1-(b)所示,当串联连接2 Cell乾电池时,会使施加于LED的电压过高(约3V),并会流经过电流,从而导致LED损坏。因此,如图1-(C)所示,如果在LED和乾电池之间连接1颗电阻,透过控制电阻,流经适当的电流,则施加于LED的电压值就会变为适当的值(约2V),使LED和乾电池都能正常工作。可见电阻具有透过限制电流的流动来使电路平稳运作的功能,是电路中不可或缺的元件之一。
原理图介绍
在这么大功率的应用下,肯定不会使用上面介绍的限流电阻方案。因此电阻在本项目中是用来设置恒流电流使用的。
单路8颗LED,总共12路。为什么会这么设计,这是基于对驱动芯片SY7200计算得到的。这颗芯片可以升压至最高30V,也就是对于3V LED来说,串联电阻不得多于10个,因此8个是比较保守的选择。
另外这颗芯片可以支持2A的电流输出,一个灯珠是1W,当然不可能全部用完。按照一般LED单颗电流150mA的电流计算,2A可以支持13路LED并联。因此这里选12路。此时我们用电阻配置输出为150*12=1800mA,可以计算出单灯珠大约实际功率约为450mW,96颗灯珠共计43.2W,还是非常可观的。这不但对散热提出较高的要求,对充电宝和诱骗器也提出了较高的要求。因为充电宝输出按标准12V计算,输出电流会高达3.6A。
PCB设计介绍及遇到的问题和解决方法
PCB上所有大功率走线都做了加粗处理。电路板空白处打了两个孔,方便如果有需要的话可以用来固定。
实际测试后,我发些贴了一半的LED亮度就非常非常可观,发热也同样非常可观,即使加上主动散热也拿不住,因此我做了一点点修改,先看下实际焊接好的电路板:
首先我去掉了一半的灯珠,这样发热部分也可以稍微远离一点控制区域;另外就是减小限流值。因为经过测试我发现,亮度,发热和电流三者并不是成线性关系的,在电流逐渐增大的过程中,一开始亮度会快速增加,此时电流的效率非常高;但在到达一定亮度后,再增加电流,发热会大大增加,但亮度增加却微乎其微。这也让我意识到标注1W的LED并不会比0.5W亮很多,而仅仅是可以承受更大的发热。相同封装的LED最佳工作电流其实都差不多。因此我改了限流电阻,因为手上并没有那么小的电阻,因此我用两个电阻立起来搭桥实现了更大的电阻。
关键代码及说明
这个芯片的EN引脚支持使用PWM控制,因此我们可以使用arduino来调整它的亮度。也可以用Arduino来触发闪光功能。当然,由于我EN引脚上增加了上拉电阻,因此如果没有arduino控制,直接插上电,也是可以直接点亮使用的。
我写了个程序,可以用电位器来控制照明亮度,通过按钮来进行闪光操作。闪光会延迟三秒触发,在这三秒中LED会低亮度闪三下作为提醒。其中电位器接A2,按钮接A4。A0和A1我是分别作为电位器和按钮的GND和VCC使用的。PWM输出接D11引脚。
void setup() {
Serial.begin(9600);
pinMode(A0, OUTPUT);
digitalWrite(A0, LOW);
pinMode(A1, OUTPUT);
digitalWrite(A1, HIGH);
pinMode(A4, INPUT_PULLUP);
pinMode(11, OUTPUT);
}
void loop() {
bool button = digitalRead(A4);
byte brightness = map(constrain(analogRead(A2), 10, 1010), 10, 1010, 0, 255);
Serial.print(button);
Serial.print(" ");
Serial.println(brightness);
analogWrite(11, brightness);
if (button == 0) {
for (byte i = 0; i < 3; i++) {
analogWrite(11, 1);
delay(100);
analogWrite(11, 0);
delay(900);
}
analogWrite(11, 255);
delay(1000);
analogWrite(11, 0);
}
delay(1);
}
功能展示图及说明
安装完散热器,插上风扇后是这样的:
插上电后,可以让摄像机忽略所有室内其他光源。当然在室外使用也绰绰有余。
下面这张照片就是我在正常室内光线下用手机拍摄的,可以看到在强打光下,环境光都已不再被曝光。
心得体会
通过参加这类活动,在解决自己面临的问题的同时,还能学到不少知识。我觉得这类活动非常有意义,希望可以多多举办。