[单片机芯片] 利用ch32v003的ADC采光强,再转PWM控制LCD屏幕亮度遇到的问题

[复制链接]
2070|7
 楼主| lilijin1995 发表于 2023-5-14 21:22 | 显示全部楼层 |阅读模式
AD, ADC, CD, LCD, PWM
本帖最后由 lilijin1995 于 2023-5-14 21:25 编辑

利用ch32v003的ADC采光强,再转PWM控制LCD屏幕亮度遇到的问题:
1.一致性不好,虽然都是200Hz的PWM,但是不同屏响应不同;
2.光敏二极管灵敏度很高,虽然有做算术均平滤波,1S周期采样完成进入PWM渐变调控
3.但客户反馈有两段变化,手一挥过就能检测到由亮变暗,由暗变亮过程。
所以希望各位能够不吝赐教,如何进行AD采样和PWM调整。
  1. /***********************************************************************************
  2. * 渐变算法
  3. * 误差 <= 2
  4. ************************************************************************************/
  5. u32 ColorToColor(u32 last_pwm, u32 _pwm)
  6. {

  7.     u32 NStep=0,i=0,temp=0;                            // 需要几步
  8.     int32_t differPWM=0;
  9.     float  avrStep=0;
  10.     (last_pwm<_pwm)?(NStep=_pwm-last_pwm):(NStep=last_pwm-_pwm);
  11.     differPWM=_pwm-last_pwm;
  12.     // 渐变开始
  13.     avrStep   = (float)differPWM   / NStep;
  14.     for(i=0; i<NStep; i++)
  15.     {
  16.         temp   = last_pwm   + (int)(avrStep   * i);
  17.         TIM_SetCompare2(TIM2, temp);
  18.         Delay_Ms(100);
  19.     }
  20.     // 渐变结束
  21.     return 1;
  22. }

  23.     while(1)
  24.     {
  25.         sum+=ADC_ConvertedValue;
  26.         if(++count==1000)
  27.         {
  28.             currpwm=map(sum/count,0,826,25,499);
  29.             printf("lastpwm=%d,currpwm=%d\r\n",lastpwm,currpwm);
  30.             ColorToColor(lastpwm,currpwm);//渐变调光
  31.             lastpwm=currpwm;
  32.             sum=0;count=0;
  33.         }
  34.         Delay_Ms(1);
  35.     }


tpgf 发表于 2023-6-5 12:14 | 显示全部楼层
感觉这个就得根据实际用的屏幕进行参数的调整了
qcliu 发表于 2023-6-5 13:53 | 显示全部楼层
手一挥过就能检测到由亮变暗,由暗变亮过程。这个的实现对外部的光线条件有限制吗
drer 发表于 2023-6-5 14:02 | 显示全部楼层
qcliu 发表于 2023-6-5 13:53
手一挥过就能检测到由亮变暗,由暗变亮过程。这个的实现对外部的光线条件有限制吗 ...

另外是不是能可靠的检测呢?会不会产生误操作呢
coshi 发表于 2023-6-5 14:40 | 显示全部楼层
1S周期采样会不会产生信号的严重滞后啊
kxsi 发表于 2023-6-5 15:02 | 显示全部楼层
这种有没有比较成熟的采集计算方法呢 感觉有点复杂了
wiba 发表于 2023-6-5 15:17 | 显示全部楼层
如果提高adc的采样频率的话 算法的复杂程度也就上升了
ufbycd 发表于 2023-6-6 09:08 | 显示全部楼层
用滑动平均
您需要登录后才可以回帖 登录 | 注册

本版积分规则

56

主题

165

帖子

8

粉丝
快速回复 在线客服 返回列表 返回顶部