标题: PWM与DA数模转换问题 [打印本页]

作者: 非黄腾达    时间: 2017-3-27 22:41
标题: PWM与DA数模转换问题
想做一个光敏电阻控制LED亮度变化的小项目,想法是采集到光照强度,通过AD数模转换得到数字量显示在数码管上,然后通过控制特定的光照强度值经过调控PWM占空比来实现 LED亮度的变化。          是第一次接触AD和PWM,不知道二者之间的衔接关系,看了一些资料,还是挺晕的,希望大神们给一些意见和思路,尽量通俗点,嘻嘻。  谢谢。

作者: imxuheng    时间: 2017-3-28 09:11
       既然涉及AD采样和PWM调光,为了简化电路,减少外围元件,如果你采用STC系列的单片机,建议使用自带AD和PWM输出的型号,比如STC12C2052AD、STC12C5A60S2,当然STM8、STM32这些系列的单片机一般也自带AD和PWM输出。
      我这里以STC系列的单片机举例。
      首先学习STC自带AD采集,网上也有程序,需要的话我也可以提供。采集光敏电阻两端的电压,看不同光照情况下光敏电阻两端的电压的变化情况,最好是让显示器(比如LCD1602)显示出来。
     然后后再学习STC自带的PWM输出功能,程序也容易找。设定不同的占空比,看看PWM输出管脚上的LED灯的亮度变化情况。
      最后,根据采集到的光敏电阻两端电压的大小改变PWM的占空比
作者: wosiyabo    时间: 2017-3-28 14:38
不知道你学的是那一种单片机。我以STC15W4K58S4为例给你说一个简单的吧。
ADC取样num=GetADCResult(0);
PWM送数:
void tm0() interrupt 1//定时器0中断服务程序
{ static unsigned char k;
        TL0 = 0xF5;                //设置定时初值 按1T时钟计算,1uS一次
        TH0 = 0xFF;                //设置定时初值 按1T时钟计算,1uS一次
        k++;
        if(k>num)P33=1;//输出高电位
        else P33=0;//输出低电位
}

STC15W4K58S4测试.rar

3.23 KB, 下载次数: 28


作者: ahshmj    时间: 2017-3-28 14:40
本帖最后由 ahshmj 于 2017-3-28 14:42 编辑

这是关联性不是太强的两部分。

一部分是测光强。一般的光电传感器是模拟量输出,经过AD转换变成数字量。

另一部分就是你说的“PWM”,这个是有单片机产生的输出。

你可以将经AD转换的光强数字量用来控制“PWM”输出即可。

其实你若仅仅是控制LED,用光强的数值直接改变扫描LED的间隔(比如:控制延时),即“通断比”。这个是和“PWM”原理是一样的。
作者: jiafjian    时间: 2017-3-28 20:41
我是来学习的。可以用PWM,单片机自带
作者: 非黄腾达    时间: 2017-3-28 22:06
imxuheng 发表于 2017-3-28 09:11
既然涉及AD采样和PWM调光,为了简化电路,减少外围元件,如果你采用STC系列的单片机,建议使用自带A ...

很谢谢您的指导建议,我用的是STC89c52,自带数模转换和PWM,这两个功能我都分别实现了,看来我现在应该根据您的最后一句建议,开始我的工作啦。
作者: imxuheng    时间: 2017-3-29 09:09
非黄腾达 发表于 2017-3-28 22:06
很谢谢您的指导建议,我用的是STC89c52,自带数模转换和PWM,这两个功能我都分别实现了,看来我现在应该根 ...

STC89c52自带数模转换和PWM?这个似乎不带哦
作者: ninjals    时间: 2017-3-29 15:39
谢谢您的指导
作者: 非黄腾达    时间: 2017-3-29 20:38
imxuheng 发表于 2017-3-29 09:09
STC89c52自带数模转换和PWM?这个似乎不带哦

哦哦,说错了,是普中单片机板子,用的89的芯片。顺便问一句,用光强的数值直接改变扫描LED的间隔,这个方法可以替代PWM,实现节能的功能吗
作者: imxuheng    时间: 2017-3-29 21:02
非黄腾达 发表于 2017-3-29 20:38
哦哦,说错了,是普中单片机板子,用的89的芯片。顺便问一句,用光强的数值直接改变扫描LED的间隔,这个 ...

这个说不好,实践出真知
作者: cho'l'se'r    时间: 2017-3-29 21:32
233333333333333
作者: vadzbchva    时间: 2017-9-7 23:13
STC89c52自带数模转换和PWM ,这个不自带,温馨提示下,本人已学过!
作者: czr326181    时间: 2017-9-8 09:29
PWM波实际就是占空比的方波,控制电流大小(占空比),就可以控制亮度
作者: asas    时间: 2017-9-8 13:54
AD是模拟量采集,PWM是控制LED亮度,你应该通过AD采集模拟量来控制PWM的亮度




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1