打印

求助:单片机计数器被干扰

[复制链接]
4261|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hanweng|  楼主 | 2010-5-27 11:45 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hanweng 于 2010-5-27 11:47 编辑

我用单片机控制一个直流24V电机的起停,电源是分开的。用槽型光耦读电机转速,Time1作为外部计数器,计算输入槽型光耦产生的脉冲个数。Time1设置为模式3.从0xff开始计数,每来一个脉冲中断一次,变量X+1.
变量A为我用键盘输入的值。在X=A的时候,电机停转。实际测试中,在直流电机反转的时候,X<A直流电机就停转了,用示波器测试光耦产生的脉冲,确实没有达到A的个数。在电机正转的时候,就不会有这情况啊!

直流电机有串一个IN4007的二极管作为续流二极管啊!
非常郁闷!

这是单片机被直流电机干扰了吗?

相关帖子

沙发
chunyang| | 2010-5-27 14:31 | 只看该作者
是你电路结构或软件处理的问题,贴出你的电路。

使用特权

评论回复
板凳
hanweng|  楼主 | 2010-5-28 11:11 | 只看该作者
昨天试了老半天,只要把槽型光耦到单片机主板的引线放在电机旁边,就会有干扰!离远一点就不会

使用特权

评论回复
地板
acute1110| | 2010-5-28 11:21 | 只看该作者
典型的电机的辐射干扰耦合到了信号引线上,解决办法1,这根线加屏蔽 2,这根线上加滤波

使用特权

评论回复
5
huanghuac| | 2010-5-28 13:42 | 只看该作者
布线的问题

使用特权

评论回复
6
chunyang| | 2010-5-28 13:54 | 只看该作者
干扰跟转向有关,还是由电路结构导致的。加抗干扰措施是一种解决办法,但如果是做产品的话,还是要在本质上解决问题。

使用特权

评论回复
7
hanweng|  楼主 | 2010-5-29 09:24 | 只看该作者
to 5 楼:
PCB布线的问题?在单片机大板上面,就这个信号频率最高了,粗略估计这个信号不会大于2Khz。这根信号线也是以最短的距离连接到单片机。板上还有个ZLG7290,但与这根信号线有点距离。

使用特权

评论回复
8
hanweng|  楼主 | 2010-5-29 09:26 | 只看该作者
to 4 楼:
我尝试过在槽型光耦的输出端加过低通滤波器,但没有效果。加上屏蔽线把屏蔽线接到机壳效果非常好。
可诚如“chunyang”所言,还没有找到问题的本质。

使用特权

评论回复
9
hanweng|  楼主 | 2010-5-29 09:48 | 只看该作者
to 6 楼:
电路结构是指槽型光耦小板还是单片机大板?大板上的就槽型光耦输出的这根信号线速率最高。而且远离ZLG7290。其余的都是低速开关信号,如LED灯,电机驱动信号。电机的驱动做在另一块板上,通过PC817光耦隔离。
在槽型光耦小板上,以一个358做为比较器后输出到单片机。图如下
晕倒…………我还没学会上图啊

使用特权

评论回复
10
hanweng|  楼主 | 2010-5-29 09:51 | 只看该作者

使用特权

评论回复
11
hanweng|  楼主 | 2010-5-29 09:52 | 只看该作者
忘记说了,LM358是5V单电源供电

使用特权

评论回复
12
hanweng|  楼主 | 2010-5-29 10:23 | 只看该作者
chunyang:
我的软件思路是:键盘输入预设值,设置一个变量,打开电机开始计数------------每一个脉冲加1-------------变量值等于键盘输入预设值时候停止电机。
软件上需要对上述的“变量”做处理吗?

使用特权

评论回复
13
hanweng|  楼主 | 2010-5-29 10:57 | 只看该作者
还有,我的机箱带有3V多的交流电。极其无语

使用特权

评论回复
14
awmc_m| | 2010-5-29 13:02 | 只看该作者
25592
hanweng 发表于 2010-5-29 09:51


R1和R4是什么作用?可以不用。
另一个运放可以利用起来做射随器,提供一个较为稳定的参考电压。参考电压端加一个足够大的电容。最好还是用电压比较器。
光藕输出端的电源可以与运放同一个。
在电机两端并一个去藕电容,在光藕输出端加阻容滤波。
如果单片机检测到了干扰,你也一定可以用示波器在output端观察到信号的。
先把干扰信号捕捉到,再调整滤波参数。

使用特权

评论回复
15
hanweng|  楼主 | 2010-5-29 13:50 | 只看该作者
R1和R4可以不用。
突然想起来,示波器上都没有观察到output干扰波形啊。不会是示波器太烂了吧?
玩示波器2年了,要是有干扰没看到那真的要去撞墙。

在output加过RC滤波,但没效果。

使用特权

评论回复
16
hanweng|  楼主 | 2010-5-29 13:58 | 只看该作者
:$怀念力科示波器啊

使用特权

评论回复
17
ll_sd| | 2010-5-29 18:03 | 只看该作者
请教一下,用示波器怎么能测出a的个数?还是把a设的很小?

使用特权

评论回复
18
gx_huang| | 2010-5-29 20:50 | 只看该作者
运放电路如果没有其它作用,可以全部去掉。
接线时注意抗干扰,软件对计数脉冲滤波就可以了。

使用特权

评论回复
19
hanweng|  楼主 | 2010-5-30 20:22 | 只看该作者
to:17楼。
用示波器抓波形,以电机的起停为触发信号,在电机起停时间窗内计算脉冲个数。
我的示波器没有统计功能,所以着重尝试设A=5、A=9两个值,其他值也试过。
如果示波器有统计功能,依据示波器的存储深度抓个几K的脉冲个数是没问题的。

使用特权

评论回复
20
hanweng|  楼主 | 2010-5-30 20:25 | 只看该作者
to :18楼
我用time1的外部计数器功能,如何做软件滤波?
思路上还不大转的过来,请指点一二。

使用特权

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

本版积分规则

12

主题

182

帖子

2

粉丝