极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 37818|回复: 15

超声波模块受电机干扰严重怎么办?

[复制链接]
发表于 2011-12-29 09:22:52 | 显示全部楼层 |阅读模式
Arduino接四脚超声波模块测试正常,但接入电机驱动模块当直流电机开始运转的时候超声波模块返回的数据一点都不准了,跳动非常严重,有人遇到过同样的问题吗?是不是电机干扰了超声波模块,还是因为电源问题?


const int EchoPin = 2; //超声波信号输入
const int TrigPin = 3; //超声波控制信号输出

const int leftmotorpin1 = 4; // 直流电机信号输出
const int leftmotorpin2 = 5;
const int rightmotorpin1 = 6;
const int rightmotorpin2 = 7;

..........................

//测量距离 单位厘米
long MeasuringDistance() {
  long duration;
  //pinMode(TrigPin, OUTPUT);
  digitalWrite(TrigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(TrigPin, HIGH);
  delayMicroseconds(5);
  digitalWrite(TrigPin, LOW);
  //pinMode(EchoPin, INPUT);
  duration = pulseIn(EchoPin, HIGH);

  return duration / 29 / 2;
}
回复

使用道具 举报

 楼主| 发表于 2011-12-29 09:29:59 | 显示全部楼层
测试了下,电机驱动单独供电仍然干扰厉害,应该排除电源问题了。

电机也加了滤波电容还是不行,头大,不知道换个好一些的电机驱动模块会不会解决这个问题
回复 支持 反对

使用道具 举报

发表于 2011-12-29 13:02:22 | 显示全部楼层
超声波抗干扰这么差?
回复 支持 反对

使用道具 举报

发表于 2011-12-29 13:09:28 | 显示全部楼层
供电是怎样的供电方式?

如果是用电池供电,arduino与超声波模块,都是LDO降压供电的话,应该不会这么厉害。

如果没有经过LDO降压供电,电机驱动和超声波,arduino共用一个电源,中间完全无隔离的话,是很容易出现严重干扰。
回复 支持 反对

使用道具 举报

发表于 2011-12-29 14:02:01 | 显示全部楼层
我刚用arduino uno做了一个小车,是超声波避障的,电机和超声波的电源都是直接从uno上获得,没有出现这种情况啊。如果出现你这种情况,我建议你用万用表测试一下电机驱动部分的电路,看一看电机驱动部分是不是对ARDUINO产生了很大干扰。或者会不会是编程问题哦。本人纯性菜鸟,回复仅供参考,不对的话请指教或者直接无视!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-12-29 14:21:00 | 显示全部楼层
弘毅 发表于 2011-12-29 13:09
供电是怎样的供电方式?

如果是用电池供电,arduino与超声波模块,都是LDO降压供电的话,应该不会这么厉 ...

我在电脑上测试的,arduino、超声波模块使用电脑USB供电,电机驱动使用单独锂电池供电

电机驱动模块用的是很便宜的这种:


我在猜想可能是电机驱动模块太差的缘故,想换个带光耦隔离的L298N电机驱动模块试试,可是手头上还没有,只能现淘然后等快递,呵。


红外、超声波、电机驱动、舵机等每个模块我单独调试都没问题,原本以为安装完就OK了,谁知道这些模块在一起就不能好好配合,以前没玩过,第一次做小车还有很多要学习的地方呀~~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-12-29 14:22:37 | 显示全部楼层
プ汏坏疍 发表于 2011-12-29 14:02
我刚用arduino uno做了一个小车,是超声波避障的,电机和超声波的电源都是直接从uno上获得,没有出现这种 ...

我也觉得是电机驱动模块的问题,不知道用万用表怎么测?
回复 支持 反对

使用道具 举报

发表于 2011-12-29 14:23:31 | 显示全部楼层
{:soso_e153:}没有光耦隔离的电机驱动模块。。。。。好吧。。果断换掉
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-12-29 14:24:53 | 显示全部楼层
弘毅 发表于 2011-12-29 14:23
没有光耦隔离的电机驱动模块。。。。。好吧。。果断换掉

呵。换~~

可惜那个电机驱动我还买了两个,浪费了。
回复 支持 反对

使用道具 举报

发表于 2011-12-29 16:30:54 | 显示全部楼层
relaxlife 发表于 2011-12-29 14:24
呵。换~~

可惜那个电机驱动我还买了两个,浪费了。

买两个光耦回来。自己洞洞板改造~
回复 支持 反对

使用道具 举报

发表于 2011-12-30 00:34:00 | 显示全部楼层
relaxlife 发表于 2011-12-29 14:22
我也觉得是电机驱动模块的问题,不知道用万用表怎么测?

用你第二个图的L298N模块控制应该没有问题才对的。我想第一个模块应该是弘毅老师说的,少了光耦隔离的缘故,测试的话你可以接上电以后用万表笔测下arduino的IO口电平是不是稳定,特别是控制电机部分的那几个引脚以及超声波的引脚。
回复 支持 反对

使用道具 举报

发表于 2011-12-30 12:44:18 | 显示全部楼层
干扰可能存在两个来源,
1个可能的来源是电的因素,不能简单地认为分开供电就完事大吉了。
因为你被迫要把它们共地。
结果导致GND首先就不稳定。
电压的波动,有两种因素,一种,GND不动,VCC波动(同一个电池供电)。一种,GND波动,VCC不动(你这种分开供电可能会发生这种情况)
回复 支持 反对

使用道具 举报

发表于 2011-12-30 14:37:35 | 显示全部楼层
如果有条件可以试试其他超声波模块,KS101和KS103 I2C接口,性能不错但价钱贵一些
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-12-30 14:58:41 | 显示全部楼层
多谢大家帮忙,我准备换个电机驱动模块试试,等模块到手测试后放出结果
回复 支持 反对

使用道具 举报

发表于 2012-1-6 11:04:03 | 显示全部楼层
relaxlife 发表于 2011-12-30 14:58
多谢大家帮忙,我准备换个电机驱动模块试试,等模块到手测试后放出结果

弱弱地问一下楼主:“结果出来了吗?”
回复 支持 反对

使用道具 举报

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

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

Archiver|联系我们|极客工坊

GMT+8, 2024-4-26 04:35 , Processed in 0.061107 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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