2.PWM设置不合理
3.程序流程不对。
4.
。。。
做程序有以下建议:让正
2.明确PWM控制灯亮的效果与PWM取值的关系,正确设置PWM频率占空比等
3.AD要设置正确,从AD取到正确的数据(可以拆搏多读AD几次取平均值旅滑祥,比如,读6次,丢掉最大最小的2个数据再取剩余4个的平均值)
4.建立AD数值与PWM赋值的关系
首先读出AD值,这样就是AD就是一个数值。假如AD结果为 0-256, 那么0就对应0% 占空比 128对应50%,256对应100%占空比。这样根据AD值(0-256),计算一下,对应到你的占空比变化值。下面是我采集摇杆电位器电压,来控制一个舵机的。脉宽 1MS-2MS 周期 20MS
PWM_Value[0]=Rx_Data[0]*3.6+917 //基兆局没准是1000US 变化范围 1MS-2MS
/*
PWM_Value[0]为实际的要定时 时长 单位US Rx_Data[0]为AD采集回来的值族纳 0-255范围
0-255 对腊悔应PWM 1000-2000MS 的波长 4为 倍数 在加上基数 1000 就为实际要
的波长
*/
既然涉及AD采样和PWM调光,为了简化电路,减少外围元件,如果你采用STC系列的单片机,建议使用自带AD和PWM输出的型号,比如STC12C2052AD、STC12C5A60S2,当然STM8、STM32这些系列的单片机一般也自带AD和PWM输出。我这里以STC系列的单片机举例。
首先学习STC自带AD采集,网上弯春也有程序,需要的话我也可以提供。采集光埋带耐敏电阻两端的电压,看不同光照情况下光敏电阻两端的电压的变化情况,最好是让显示器(比如LCD1602)显示出来。
然后后再学习STC自带的PWM输出功能,程序也容易找。设定不同的占空比,看看PWM输出管脚上的LED灯的亮度行没变化情况。
最后,根据采集到的光敏电阻两端电压的大小改变PWM的占空比
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)