输入信号的判断

[复制链接]
2448|18
 楼主| liliang9554 发表于 2012-12-23 12:57 | 显示全部楼层 |阅读模式
具体就是:

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

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

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

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

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

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

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

本版积分规则

950

主题

11568

帖子

6

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