打印

pwm

[复制链接]
3197|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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

使用特权

评论回复
5
coody| | 2012-12-24 09:35 | 只看该作者
就3档, 不如直接用R-2R做DAC输出。

使用特权

评论回复
6
h185540860|  楼主 | 2012-12-24 20:53 | 只看该作者
5楼大侠:
       能详细点说明用R-2R做DAC输出是怎么做的不?

使用特权

评论回复
7
h185540860|  楼主 | 2012-12-24 20:54 | 只看该作者
coody 发表于 2012-12-24 09:35
就3档, 不如直接用R-2R做DAC输出。

能详细点说明用R-2R做DAC输出是怎么做的不?
                            谢谢

使用特权

评论回复
8
shell.albert| | 2012-12-24 21:01 | 只看该作者
PWM是脉宽调制,说白了就是调节占空比的,同时也是调频率。

使用特权

评论回复
9
coody| | 2012-12-27 10:30 | 只看该作者
R-2R做DAC,就是用IO接R-2R电阻做DAC

使用特权

评论回复
10
ZG11211| | 2012-12-27 10:35 | 只看该作者
楼上说的是用一组IO口接8个分压电阻,通过IO口的组合,可以得到256种分压比。
PWM要求不高的话可以用用定时器做,如果要求高,还是选用带有PWM模块的单片机吧,单独的PWM模块不会受到中断的影响。

使用特权

评论回复
11
int3| | 2012-12-27 14:18 | 只看该作者
8脚带PWM的都有

使用特权

评论回复
12
zf_015820| | 2012-12-27 15:21 | 只看该作者
如同楼上所说
还是选用带有PWM模块的单片机吧

使用特权

评论回复
13
psyoo7| | 2013-3-31 13:39 | 只看该作者
用一组IO口接8个分压电阻,通过IO口的组合,可以得到256种分压比。具体怎样操作 ?

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

PWM模块的单片机 什么原理,单独的PWM模块不会受到中断的影响?

使用特权

评论回复
14
yimufei| | 2013-3-31 14:55 | 只看该作者
ding

使用特权

评论回复
15
zd420325| | 2013-4-3 14:59 | 只看该作者
用我家的双核单片机吧,有一个内核不受中断的影响,可以很容易模拟很多路的PWM信号。

使用特权

评论回复
16
理工大小薛| | 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;
                                                }

使用特权

评论回复
17
理工大小薛| | 2013-10-30 22:04 | 只看该作者
由于主程序每执行一遍才进行一次判断,输出的波形不是很稳定,后来把判断放到中断里面,中断里除了+1,还进行判断操作,而当频率占空比发生改变时将存放高低电平时间的变量在主程序中赋值,波形比之前好很多了

使用特权

评论回复
18
理工大小薛| | 2013-10-30 22:05 | 只看该作者
以上思路对于每一种波形频率占空比单一的要求基本满足要求

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

9

主题

110

帖子

1

粉丝