12
80
1611
金牌会员
2个PWM各接一个暖白和一个暖黄LED,2个电阻电位器通过ADC转换成0-255来控制这2个LED,A电位器是控制亮度叫DIM,B电位器控制2个LED的配比来调整色温叫CCT。
以前我是用2个编码器(电子电位器)代替这2个电阻电位器,编写软件工作正常。但是这次使用2个电阻电位器,没有找到合适的编程思路。
DIM电位器的值是CCT电位器调整2路PWM的最大值,而CCT电位器在DIM值内可以任意调节,2路PWM的值以这个DIM值为互补关系,调节CCT电位器可以调节2路PMW的配比。
无论亮度大小和色温多少,电位器的调节都具有很好的线性和连续性。
不知道我是否描述清楚了,如果没有描述清楚的地方麻烦大家问我一下,我再描述描述。
请教大家这个的编程思路,多谢。
使用道具 举报 送花
3
2016
880
等待验证会员
3007
6431
荣誉版主
无情的代码机器
void UpdateLED() { float dim = ADC_Read(DIM_PIN) / 255.0; // 0.0~1.0 float cct = ADC_Read(CCT_PIN) / 255.0; float tempPwmA = dim * cct; float tempPwmB = dim - tempPwmA ; PWM1 = tempPwmA * 255; // 0~255 PWM2 = tempPwmB * 255; //更新PWM ... } 复制代码
本版积分规则 发表回复 回帖后跳转到最后一页
|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )
GMT+8, 2025-8-28 21:28 , Processed in 0.113848 second(s), 58 queries .
Powered by Discuz! X3.5
© 2001-2025 Discuz! Team.