pwm

[复制链接]
 楼主| h185540860 发表于 2012-12-23 21:12 | 显示全部楼层 |阅读模式
各位大侠:
      使用单片机分别输出弱、中、强三种PWM信号分别控制负载,有哪些方法可以实现啊 ! 用定时器的话怎么实现啊   
                   还请大家帮帮忙出出主意        谢谢啦!
uet_cache 发表于 2012-12-23 21:18 | 显示全部楼层
什么叫弱中强PMM信号啊。。
emailli 发表于 2012-12-23 22:11 | 显示全部楼层
定时器做的PWM会不很准

建议用 匹配输出功能

选用合适的单片机。
ayb_ice 发表于 2012-12-24 08:05 | 显示全部楼层
模拟一个2位的PWM
coody 发表于 2012-12-24 09:35 | 显示全部楼层
就3档, 不如直接用R-2R做DAC输出。
 楼主| h185540860 发表于 2012-12-24 20:53 | 显示全部楼层
5楼大侠:
       能详细点说明用R-2R做DAC输出是怎么做的不?
 楼主| h185540860 发表于 2012-12-24 20:54 | 显示全部楼层
coody 发表于 2012-12-24 09:35
就3档, 不如直接用R-2R做DAC输出。

能详细点说明用R-2R做DAC输出是怎么做的不?
                            谢谢
shell.albert 发表于 2012-12-24 21:01 | 显示全部楼层
PWM是脉宽调制,说白了就是调节占空比的,同时也是调频率。
coody 发表于 2012-12-27 10:30 | 显示全部楼层
R-2R做DAC,就是用IO接R-2R电阻做DAC
ZG11211 发表于 2012-12-27 10:35 | 显示全部楼层
楼上说的是用一组IO口接8个分压电阻,通过IO口的组合,可以得到256种分压比。
PWM要求不高的话可以用用定时器做,如果要求高,还是选用带有PWM模块的单片机吧,单独的PWM模块不会受到中断的影响。
int3 发表于 2012-12-27 14:18 | 显示全部楼层
8脚带PWM的都有
zf_015820 发表于 2012-12-27 15:21 | 显示全部楼层
如同楼上所说
还是选用带有PWM模块的单片机吧
psyoo7 发表于 2013-3-31 13:39 | 显示全部楼层
用一组IO口接8个分压电阻,通过IO口的组合,可以得到256种分压比。具体怎样操作 ?

PWM要求不高的话可以用用定时器做,举个例子吧

PWM模块的单片机 什么原理,单独的PWM模块不会受到中断的影响?
yimufei 发表于 2013-3-31 14:55 | 显示全部楼层
zd420325 发表于 2013-4-3 14:59 | 显示全部楼层
用我家的双核单片机吧,有一个内核不受中断的影响,可以很容易模拟很多路的PWM信号。
理工大小薛 发表于 2013-10-30 22:00 | 显示全部楼层
最近在用PIC单片机软件模拟四路PWM输出,一开始的思路,用一个定时器,设四个变量timer1,timer2,timer3,timer4,中断每0.1ms进一次,中断里timer1,timer2,timer3,timer4分别+1,即timer1为10 时代表1ms,在主程序中先判断当前输出高低电平状态,再判断规定的高电平时间是否到,如果到了进行置零,如果当前为低相应操作
if(RB2==1)
                                        {
                                                if(timer1>=PrescriptionTwo_upvalue)
                                                {
                                                        RB2=0;
                                                        timer1=0;
                                                }       
                                        }
                                        else
                                        {
                                                if(timer1>=PrescriptionTwo_downvalue)
                                                {
                                                        RB2=1;
                                                        timer1=0;
                                                }
理工大小薛 发表于 2013-10-30 22:04 | 显示全部楼层
由于主程序每执行一遍才进行一次判断,输出的波形不是很稳定,后来把判断放到中断里面,中断里除了+1,还进行判断操作,而当频率占空比发生改变时将存放高低电平时间的变量在主程序中赋值,波形比之前好很多了
理工大小薛 发表于 2013-10-30 22:05 | 显示全部楼层
以上思路对于每一种波形频率占空比单一的要求基本满足要求
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://www.hq173.com/index.html

9

主题

110

帖子

1

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