判断输入信号

[复制链接]
2681|18
 楼主| yszong 发表于 2012-5-13 16:43 | 显示全部楼层 |阅读模式
具体就是:

一调光电路中,灯灭的时候,对应一个信号是0;
而灯亮的时候,对应该信号则是PWM(100HZ,占空比5%~95%,仅有1,0电平构成PWM)波,灯的亮度与此PWM占空比成比例;

现欲将此信号作为输入给单片机(C51),单片机只需据此判断出任意时刻时,灯是灭呢?还是开(任意亮度)?
dengdc 发表于 2012-5-13 16:43 | 显示全部楼层
通过判断0,1
heweibig 发表于 2012-5-13 16:58 | 显示全部楼层
一是要引入过零判断,而是比较容易误判,PWM里有0,也有1,视过零点和占空比
 楼主| yszong 发表于 2012-5-13 16:58 | 显示全部楼层
若能计算一个周期内值的总和,则还要引入过零检测,若为0,则是关状态,若不为0,则为开,但应如何设这采样率?尤其占空比较大即1电平时间较短(例如5%)时候,如何设置采样率才不会误判?
wuhany 发表于 2012-5-13 16:59 | 显示全部楼层
读到IO口有高不就知道灯亮了吗
lizye 发表于 2012-5-13 16:59 | 显示全部楼层
嗯,用中断口可以
jiahy 发表于 2012-5-13 17:01 | 显示全部楼层
根据PWM周期来检验信号是否发生逻辑变化
shimx 发表于 2012-5-13 17:01 | 显示全部楼层
RC滤波为直流电压
 楼主| yszong 发表于 2012-5-13 17:03 | 显示全部楼层
RC滤波为直流电压方案实验:

由于原PWM信号还有别的用途,故用了个或门,另一个输入接地,则输出就等于该PWM,把输出处理,则不改变原PWM信号的波形。

或门输出端焊了个RC滤波回路,RC串联,R取10K,C取100UF电解电容,取电解电容电压作为取样电压,由于该PWM占空比可调,则示波器观察到取样电压随着PWM占空比的改变而变化,最大输出值只有2.5V.

说明:PWM是高电平=3.3V,低电平=0V的方波。

无论PWM占空比是多少,RC滤波均能输出其高电压3.3V吗?如能,请推荐个参数。
jiaxw 发表于 2012-5-13 17:18 | 显示全部楼层
嗯,当PWM为5%时,直接RC滤波的电压 可能低于 单片机 高电平门槛,导致误读为0
spark周 发表于 2012-5-13 17:18 | 显示全部楼层
只需要判断是否有没PWM而已,有没必要又虑波又比较的?
典型的简单事情复杂化。
只需要简单计数一下20MS内有没脉冲就知道是0还是PWM了。
liliang9554 发表于 2012-5-13 17:18 | 显示全部楼层
才两K的信号嘛,开个定时器10K,随便都能扫到它
午夜粪车 发表于 2012-5-13 17:20 | 显示全部楼层
多统计几次不就玩了? 哈哈

如果都是0,则是关闭状态。。。否则,相反。
zhaoxqi 发表于 2012-5-13 17:21 | 显示全部楼层
用电容隔直后,用三极管转换,再RC滤波
jiajs 发表于 2012-5-13 17:22 | 显示全部楼层
如果不判断PWM宽度
最简单方式:将PWM直接接51的中断IO,但不打开中断。这样只要检查中断标志有无出现,就知道PWM有无输出。
如果需要判断PWM,5L的可以简单的用非门反向,电压就是从高到低变化。
huangchui 发表于 2012-5-13 17:22 | 显示全部楼层
根据PWM周期来检验信号是否发生逻辑变化
只需用到信号外部中断和内部定时器中断即可完成,很简单的
 楼主| yszong 发表于 2012-5-13 17:24 | 显示全部楼层
再次非常感谢各位的建议,先用一或门将该信号引出,因其还要去驱动MOSFET管呢(具体方法见上贴5楼);然后查该IC(51内核)芯片手册,该芯片对输入的信号判断为0还是1不是根据电压(Vil和Vih),而是根据电流(Iil和Iih)大小来定的,大喜,这样即使PWM占空比最大95%(此时1电平5%,0电平95%,以前占空比的定义搞反,特别更正,不好意思,哈哈),RC滤波只有1.6V, 经实验,该51内核的IC依然可以判断为1,问题解决!
 楼主| yszong 发表于 2012-5-13 17:25 | 显示全部楼层
结贴了,再次谢谢大家
along3693 发表于 2012-5-13 18:57 | 显示全部楼层
PWM应该是脉宽?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

830

主题

11379

帖子

4

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