极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 16755|回复: 8

脉冲编码器问题

[复制链接]
发表于 2012-3-27 07:56:24 | 显示全部楼层 |阅读模式
本帖最后由 cosailer 于 2012-3-27 07:58 编辑

我用MEGA的8个PWM来带4个电机,用4个外部中断来读那种最简单的脉冲编码器,驱动IC是L392。

因为要算RPM,定时器用的Timer3库。

问题来了。

单独驱动每个电机驱动都没有问题,单独读取每个编码器都没有问题(就是用手拨轮子,不用电机)。
可是一旦驱动电机以后,编码器读取就有干扰。比如就启动电机1,就会发现编码器2,3,4都有数据,虽然不大。而且这些数据还会变化......头大无比。


新手才接触arduino,希望有高手能帮帮忙吧。

回复

使用道具 举报

发表于 2012-3-27 08:40:58 | 显示全部楼层
电机驱动芯片(或者是模块)与arduino各个IO口要用光耦进行隔离,否则非常容易造成干扰。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-3-27 16:52:35 | 显示全部楼层
我花了5个小时把驱动板焊好了,不想再动板子了,有没比较简单的办法啊?
而且我电机驱动用的是单独的电源呃, 7.4v,mega直接连到笔记本上面。这样也能干扰?
回复 支持 反对

使用道具 举报

发表于 2012-3-28 17:50:05 | 显示全部楼层
呃,请教下。。arduino外部中断有库?我只用过他设定的两个外部中断0.0
不用arduino的库来写我倒是写过多IO的。。还有就是是不是同时中断出现的干扰呢?我定时器同步中断都会干扰
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-3-28 22:04:53 | 显示全部楼层
本帖最后由 cosailer 于 2012-3-28 22:07 编辑
三水 发表于 2012-3-28 17:50
呃,请教下。。arduino外部中断有库?我只用过他设定的两个外部中断0.0
不用arduino的库来写我倒是写过多I ...


是我搞错了,那个定时器不能用的,会和编码器冲突的,MEGA总共6个中断,4个被编码器用了,2个被I2C占了,没有多余的中断来定时了,刚开始搞的时候不知道,所以现在还不知道如何每秒置零,但是拿掉以后编码器仍然胡乱读数,所以应该是PWM干扰的问题了。
回复 支持 反对

使用道具 举报

发表于 2012-3-28 23:39:58 | 显示全部楼层
cosailer 发表于 2012-3-27 16:52
我花了5个小时把驱动板焊好了,不想再动板子了,有没比较简单的办法啊?
而且我电机驱动用的是单独的电源呃 ...

恩,没有光耦隔离,分开供电。。也能干扰,前面有童鞋做小车已经遇见过了~~~~最终解决办法,就是换了带光耦隔离的板子。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-3-29 01:40:56 | 显示全部楼层
弘毅 发表于 2012-3-28 23:39
恩,没有光耦隔离,分开供电。。也能干扰,前面有童鞋做小车已经遇见过了~~~~最终解决办法,就是换了带光 ...

我试过了,不用隔离也可以的,我用的下面这个驱动板就没有干扰问题。
http://www.dfrobot.com/index.php ... 1&product_id=66

页面下面有原理图,上面就没有光栅隔离的。我的电流本来就不大,应该没有必要隔离吧。
本来就直接用上面的那个板了,但是那个一次只能驱动2的电机。郁闷啊。
回复 支持 反对

使用道具 举报

发表于 2012-5-26 10:48:21 | 显示全部楼层
有个较简单的办法,应该可以试一下,在电机的电源口或驱动板的电源口并个104或105瓷片电容,这样可以消除很多毛刺干扰。本人实际使用过效果不错
回复 支持 反对

使用道具 举报

发表于 2012-8-22 14:47:09 | 显示全部楼层
不知楼主怎样实现测速的,小弟最近也再整这块
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-19 15:19 , Processed in 0.038557 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表