把10W的RBG模块放上来,然后说说我自己的连线与做法,看图
这个就是一个10W的RGB模块,可以驱动10W的3串3并的LED,图中使用的是stm8的
单片机,
焊接红外接收头或433M接收头之后,可以遥控LED做16种单色变化,4种功能:闪烁,渐变,呼吸灯等
同时可以调节LED的4档亮度,功能4档速度设置。
我的想法就是将GoKit替换掉图中STM8芯片的功能,实现
手机端的控制。
遇到一个问题,就是GoKit的引脚输出电平是3.3V,而RGB的开关管是通过5V控制,因此需要做一个电平转换。
就是从GoKit上输出3路PWM,然后转换成5V信号,控制这个模块的3个开关管,通过不同的PWM组合获得不同的颜色和亮度。
由于手上暂时没有合适的电平转换硬件,我就在我们公司的废板子堆里挑了一块带光耦的板子,光耦是TLP2618,速度很快,能够满足RGB的PWM控制频率。
看看10W的灯,被我拆了
10瓦的灯珠只有很小一块,中间有3列,每列3颗灯珠,红绿蓝每列一种
控制需要做一个
电源,最好是恒流源,我上面那个就是恒流源,如果直接使用升压
威廉希尔官方网站
+MOS管来控制,也可以实现,我做的第一款就是这样的,但是效率远远低于恒流源。
控制三个开关的PWM可以软件模拟,也可以使用硬件PWM模块,而我正打算使用硬件PWM。我粗粗查看了一下GoKit那个宠物屋的工程代码,发现
timer1没有使用,我就想着使用Timer1,控制3路PWM通过光耦隔离威廉希尔官方网站
,控制RGB三路的开关。
可是GoKit的引脚各种复用,接满各式各样的功能,给我一顿好纠结的找啊,最后发现PB13,PB14,PB15目前使用来控制板载LED,没有做其他功能,而且还引出到了一个插座上,正好使用之
看图
PCB上R7、R10、R12正好没焊,说明没有使用这个功能,再看还有两个地方使用
PB14和PB15控制了LED6和LED7,为了使用这个引脚的功能,避免意外情况,我用烙铁把R17和R18取掉了....
P3是一个插座,上面把PB13,PB14,PB15和3.3V引过来了,简直太好了!!!正好是我用的功能,我没有插头,于是就在背面焊上了,如图
红色的是3.3V,3根黄色的分别是PB13、14、15。
看看DataSheet里面PB13、14、15的描述,正好是TIM1_CH1N,TIM1_CH2N,TIM1_CH3N
虽然后面带来一个N,但是也是可以用的,难得怎么整齐都在一个插座上。
再看看光耦TLP2168的资料:
我打算从3.3V通过限流电阻从1脚入,2脚直接接到PWM的输出引脚上,这样子灌电流的驱动方式就不用考虑
STM32F103C8的引脚电流是否满足要求,毕竟这是个高速光耦,驱动电流比普通光耦要大一些。
光耦的推荐工作条件如下图:
前向电流7.5~14mA,我挑中间的,10mA左右
前向电压最大0.8V,没有典型值,就按0.8计算,输入这一边我使用3.3V
因此可以计算出限流电阻 R = (3.3V - 0.8V)/ 10mA = 250欧姆
那个板子上原本就是有两个499欧姆精密电阻合并成的249.5欧姆,真是太好了,我都不用找物料了,直接使用
连接OK之后,看照片
这样子GoKit和模块之间是通过光耦隔离的,保证安全工作,怎么也不会烧到这边来,要知道这个GoKit我只有使用权,没有所有权....
这样子完整的开发环境就搭好啦,下一个帖子,我还是说说代码和调试过程吧,如果这个周末有空并且一切顺利的话,应该可以看到红外遥控LED灯的颜色变化了