你的电路构思不太好,目的一样但是电路构成的方法有很多的,你这种办法比较耗费元件,并且因为过多的原件而导致可靠性下降。实现你的要求有简单的办法,就是采用单片机产生可控的PWM(PWM(PulseWidthModulation)控制——脉冲宽度调制技术。通过对一系列脉冲的宽度进行调制。includeintX;//PWM的周期单位:us微秒intduty;//占空比变量voidmain(){X=,//周期,S即PWM的频率=,HZduty=,//占空比,TMOD=,,EA=,ET,,ET,,TH,(duty)///定时器,改变占空比TL。
这是利用L,动两个直流电机的(来源于智能车循迹)程序,/*===直流电机的PWM速度控制程序===*//*晶振采用,,产生的PWM的频率约为,z*/includeincludedefineucharunsignedchardefineuintunsignedintsbiten,P,,/*L。//很容易的,程序如下:includeunsignedinta,b;//—voidmain(){TMOD=,,//T,时方式,TH,=(/,//sHzTL,=(%,TR,=,ET,=,EX,=,EX,=,IT,=,IT,=,EA=。
【任何一款单片机都能输出PWM波,即脉冲宽度调制器。用定时器即可输出占空比变化的方波。【LED亮度调节,首先应当明确LED的伏安特性曲线。还要知道项目中有没有多基色要求、LED灯数量、它们的连接方式。【用PWM控制,应该控制的实际LED驱动电路为恒压驱动方式。sfrCCAPM,=,DB;sfrCCAPM,=,Dc;sfrCCAPM,=,Dd;sfrCL=,E,sfrCH=,F,sfrCCAP,=,EA;sfrCCAP,=,FA;sfrCCAP,=,Eb;sfrCCAP,=,Fb;sfrCCAP,=,Ec;sfrCCAP,=,Fc;sfrCCAP,=,Ed;sfrCCAP,=,Fd;sbitCR=。
程序实现上应该不难,假设用,,变量来调节这三个灯,理想上可以得到,色灰度效果。但通常能做到,级灰度,也能看到一定效果。这三个PWM周期相同,占空比不同,亮度就各有不同。确保单片机管脚输出,(,或单独调节满刻度),三个LED灯的驱动电流均达到饱和。并且合成色为白色。STC,,象不带硬件PWM功能,建议用STC,,系列和STC,,脚兼容,带AD和PWM功能,如果用不了那么多管脚的话,也可用STC,,或STC,,列我可以给你一个手动PWM程序供参考STC单片机单/双键控制LED亮度PWM调光程序输出口为P,PWM,S,S。
感谢您的来访,获取更多精彩文章请收藏本站。

暂无评论内容