找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9366|回复: 13
收起左侧

PWM与DA数模转换问题

  [复制链接]
ID:183779 发表于 2017-3-27 22:41 | 显示全部楼层 |阅读模式
想做一个光敏电阻控制LED亮度变化的小项目,想法是采集到光照强度,通过AD数模转换得到数字量显示在数码管上,然后通过控制特定的光照强度值经过调控PWM占空比来实现 LED亮度的变化。          是第一次接触AD和PWM,不知道二者之间的衔接关系,看了一些资料,还是挺晕的,希望大神们给一些意见和思路,尽量通俗点,嘻嘻。  谢谢。
回复

使用道具 举报

ID:151348 发表于 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的占空比

评分

参与人数 2黑币 +75 收起 理由
非黄腾达 + 5 很给力!
admin + 70 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:146949 发表于 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

评分

参与人数 2黑币 +55 收起 理由
非黄腾达 + 5 绝世好帖!
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:7485 发表于 2017-3-28 14:40 | 显示全部楼层
本帖最后由 ahshmj 于 2017-3-28 14:42 编辑

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

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

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

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

其实你若仅仅是控制LED,用光强的数值直接改变扫描LED的间隔(比如:控制延时),即“通断比”。这个是和“PWM”原理是一样的。

评分

参与人数 2黑币 +25 收起 理由
非黄腾达 + 5 很给力!
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:166064 发表于 2017-3-28 20:41 | 显示全部楼层
我是来学习的。可以用PWM,单片机自带

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:183779 发表于 2017-3-28 22:06 | 显示全部楼层
imxuheng 发表于 2017-3-28 09:11
既然涉及AD采样和PWM调光,为了简化电路,减少外围元件,如果你采用STC系列的单片机,建议使用自带A ...

很谢谢您的指导建议,我用的是STC89c52,自带数模转换和PWM,这两个功能我都分别实现了,看来我现在应该根据您的最后一句建议,开始我的工作啦。

评分

参与人数 1黑币 +40 收起 理由
admin + 40

查看全部评分

回复

使用道具 举报

ID:151348 发表于 2017-3-29 09:09 | 显示全部楼层
非黄腾达 发表于 2017-3-28 22:06
很谢谢您的指导建议,我用的是STC89c52,自带数模转换和PWM,这两个功能我都分别实现了,看来我现在应该根 ...

STC89c52自带数模转换和PWM?这个似乎不带哦
回复

使用道具 举报

ID:184484 发表于 2017-3-29 15:39 | 显示全部楼层
谢谢您的指导
回复

使用道具 举报

ID:183779 发表于 2017-3-29 20:38 | 显示全部楼层
imxuheng 发表于 2017-3-29 09:09
STC89c52自带数模转换和PWM?这个似乎不带哦

哦哦,说错了,是普中单片机板子,用的89的芯片。顺便问一句,用光强的数值直接改变扫描LED的间隔,这个方法可以替代PWM,实现节能的功能吗
回复

使用道具 举报

ID:151348 发表于 2017-3-29 21:02 | 显示全部楼层
非黄腾达 发表于 2017-3-29 20:38
哦哦,说错了,是普中单片机板子,用的89的芯片。顺便问一句,用光强的数值直接改变扫描LED的间隔,这个 ...

这个说不好,实践出真知
回复

使用道具 举报

ID:161628 发表于 2017-3-29 21:32 | 显示全部楼层
233333333333333
回复

使用道具 举报

ID:223039 发表于 2017-9-7 23:13 | 显示全部楼层
STC89c52自带数模转换和PWM ,这个不自带,温馨提示下,本人已学过!
回复

使用道具 举报

ID:231832 发表于 2017-9-8 09:29 | 显示全部楼层
PWM波实际就是占空比的方波,控制电流大小(占空比),就可以控制亮度
回复

使用道具 举报

ID:194451 发表于 2017-9-8 13:54 | 显示全部楼层
AD是模拟量采集,PWM是控制LED亮度,你应该通过AD采集模拟量来控制PWM的亮度
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表