打印

单片机计数器被干扰

[复制链接]
3786|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hanweng|  楼主 | 2010-5-27 11:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用单片机控制一个直流24V电机的起停,电源是分开的。用槽型光耦读电机转速,Time1作为外部计数器,计算输入槽型光耦产生的脉冲个数。Time1设置为模式3.从0xff开始计数,每来一个脉冲中断一次,变量X+1.
变量A为我用键盘输入的值。在X=A的时候,电机停转。实际测试中,在直流电机反转的时候,X<A直流电机就停转了,用示波器测试光耦产生的脉冲,确实没有达到A的个数。在电机正转的时候,就不会有这情况啊!

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

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

相关帖子

沙发
冷漠| | 2010-5-27 12:58 | 只看该作者
这还不好办?你把槽型光耦换个方向180度安装,再试一次,这样,电机反转相对光耦来说是正转,......马上就知道问题在哪了。

使用特权

评论回复
板凳
ayb_ice| | 2010-5-27 13:22 | 只看该作者
"Time1设置为模式3"
定时器1好象不街行吧

使用特权

评论回复
地板
hanweng|  楼主 | 2010-5-28 11:22 | 只看该作者
“冷漠”很厉害!
昨天实验了老半天,发现是槽型光耦到单片机主板的引线贴近电机就会有干扰。用3144霍尔开关实验,发现直流电机反转的时候,3144的输出周期性的少掉一个脉冲。
为什么直流电机正反转对3144会有影响?反电动势的磁场?
直流电机正反转对槽型光耦会有影响?实在不明白。

使用特权

评论回复
5
冷漠| | 2010-5-28 13:29 | 只看该作者
每周期少一个还不忽略?正反向负载不一样,转速就不一样,这和车间吊车一个道理,起的慢,下的快;虽然挂的一个挡。

使用特权

评论回复
6
hanweng|  楼主 | 2010-5-29 09:17 | 只看该作者
我槽型光耦的遮光盘是放在电机主轴上,遮光盘的转速随着电机转速在改变。我记录的是槽型光耦开关的次数。比如我设置9次开关的值,启动电机并开始计数(计数达到9就停止电机),计数到5或者7电机就停止了。示波器抓到的脉冲个数跟实际的计数值相同,也没有达到9.

如果是转速的影响,计满9只是时间的问题,而不会有丢失吧!

使用特权

评论回复
7
zds0901| | 2010-5-29 09:26 | 只看该作者
电机如何控制的呢?

使用特权

评论回复
8
冷漠| | 2010-5-29 09:43 | 只看该作者
回6楼。这还不好办?
1、当电机停止时,看一下你程序里的计数值是不是9 啊?若是,程序没问题,问题在外部计数装置,若不是9,而确实是5或7,,那是内部程序问题,查查你的程序怎么会在5或7就发出电机停止输出?

2、没有仿真器?电路板上总有几个数码管,编写一段带实时显示计数脉冲值的程序,随时观察电机转数值。

使用特权

评论回复
9
hanweng|  楼主 | 2010-5-29 10:51 | 只看该作者
多谢“冷漠”

没有仿真器。就是用数码管显示计数脉冲,看到数值没达到9.
那有可能是软件问题了。
我的软件思路是:键盘输入预设值,设置一个变量,打开电机开始计数------------每一个脉冲加1-------------变量值等于键盘输入预设值时候停止电机。
软件上需要对上述的“变量”做处理吗?类似于PID之类的?
如果是软件问题,为什么电机正转不会有错误,反转有错误呢?
因为电机正转不会有这样的错误,但是反转才有错误。所以我一直认为软件没有问题啊

还有,我的机箱是带3V多的交流电。这个很让我抓狂。

使用特权

评论回复
10
冷漠| | 2010-5-29 11:42 | 只看该作者
呵呵,这不很简单吗:你的正反转计数检测程序不一样,当然输出结果反应就不一样。如果你的程序对电机正反转是不透明的,那么,电机正反转时,程序都认为是一种输入(除非外部装置有方向性),怎么可能有2种输出结果?——还是程序有漏洞。

所以,反转程序检查:很简单,输入9,7停止?那就输入7;5停止?那就输入5;如此下去,输入3不启动了?正传输入3启动吗?嘻嘻。

别忘了“设置变量/ 键盘输入值 ”应该是全局静态变量。
无论正转、反转开始前计数变量清零呀。

使用特权

评论回复
11
hanweng|  楼主 | 2010-5-29 13:57 | 只看该作者
我所说的正转、反转是在硬件上,手动去更改直流有刷电机两条电源线的顺序。驱动电路没做正反转,软件也没做正反转。
“设置变量/ 键盘输入值 ”都是全局变量。
“变量”先清零再启动电机,同时计数器开始计数。

使用特权

评论回复
12
冷漠| | 2010-5-29 20:36 | 只看该作者
既然如此怪异现象、值得研究,何不找个仿真器挂上看个明白?算了一下我有6个仿真器了,——十足的菜鸟。但就是没碰上过什么莫名其妙的现象,这大概也是研究仿真器的目的之一?

使用特权

评论回复
13
zjswuyunbo| | 2010-5-30 13:02 | 只看该作者
楼主先搞清楚是代码问题还是硬件问题吧?否则,谁也没办法

使用特权

评论回复
14
hanweng|  楼主 | 2010-5-30 20:25 | 只看该作者
:'(还没钱买仿真器啊………………

使用特权

评论回复
15
hanweng|  楼主 | 2010-5-30 20:32 | 只看该作者
我也没弄明白是软件还是硬件问题……………………

不过在电机正转的时候(没有干扰时候),实际测量电机走过的长度M和以脉冲个数来换算电机走过的距离N。
所有的测试结果都是M<N。

使用特权

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

本版积分规则

12

主题

182

帖子

2

粉丝