极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15334|回复: 9

arduino用超声波测距控制音调

[复制链接]
发表于 2015-1-10 16:34:13 | 显示全部楼层 |阅读模式
本帖最后由 amxamx 于 2015-1-11 17:32 编辑


ps:VBB里面没有找到我用的超声波,我的是四个接口的。

连线如图,问题是我想两个超声波通过不同的距离发出两个音调,但是总是有一个音调不对,感觉就是不能发出,就是一个声音发出正常,一个特别小而且音调不对。求大神帮忙啊。。。
ARDUINO 代码
  1. int _ABVAR_2_L2;
  2. int _ABVAR_1_L1;
  3. int ardublockUltrasonicSensorCodeAutoGeneratedReturnCM(int trigPin, int echoPin)
  4. {
  5.   int duration;
  6.   pinMode(trigPin, OUTPUT);
  7.   pinMode(echoPin, INPUT);
  8.   digitalWrite(trigPin, LOW);
  9.   delayMicroseconds(2);
  10.   digitalWrite(trigPin, HIGH);
  11.   delayMicroseconds(5);
  12.   digitalWrite(trigPin, LOW);
  13.   duration = pulseIn(echoPin, HIGH);
  14.   duration = duration / 59;
  15.   return duration;
  16. }


  17. void setup()
  18. {
  19. digitalWrite( 12 , LOW );

  20. _ABVAR_2_L2 = 0;
  21. _ABVAR_1_L1 = 0;
  22. digitalWrite( 10 , LOW );

  23. }

  24. void loop()
  25. {
  26. _ABVAR_1_L1 = ardublockUltrasonicSensorCodeAutoGeneratedReturnCM( 12 , 11 ) ;
  27. _ABVAR_2_L2 = ardublockUltrasonicSensorCodeAutoGeneratedReturnCM( 10 , 9 ) ;
  28. if (( ( ( _ABVAR_1_L1 ) < ( 10 ) ) && ( ( _ABVAR_1_L1 ) > ( 0 ) ) && ( ( _ABVAR_2_L2 ) > ( 10 ) ) ))
  29. {
  30. tone(8, map ( _ABVAR_1_L1 , 0 , 10 , 392 , 392 ) );
  31. }
  32. else
  33. {
  34. noTone(8);
  35. }
  36. if (( ( ( _ABVAR_2_L2 ) < ( 10 ) ) && ( ( _ABVAR_2_L2 ) > ( 0 ) )&& ( ( _ABVAR_1_L1 ) > ( 10 ) ) ))
  37. {
  38. tone(8, map ( _ABVAR_2_L2 , 0 , 10 , 330 , 330 ) );
  39. }
  40. else
  41. {
  42. noTone(8);
  43. }
  44. }
复制代码

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2015-1-10 21:17:24 | 显示全部楼层
是否两个超声传感器间干扰?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-10 21:49:13 | 显示全部楼层
林定祥 发表于 2015-1-10 21:17
是否两个超声传感器间干扰?

应该不是的,因为程序设定的,发声的条件是:①发声的超声波距离在0-10cm之间;②另一个超声波距离大于10cm。
要发声就只用遮住一个就好。
回复 支持 反对

使用道具 举报

发表于 2015-1-10 22:02:04 | 显示全部楼层
两个超声传感器间方向一样吗?
回复 支持 反对

使用道具 举报

发表于 2015-1-10 22:02:30 | 显示全部楼层
我也担心存在干扰
回复 支持 反对

使用道具 举报

发表于 2015-1-10 22:03:52 | 显示全部楼层
仅仅音调不对,每个音节对应频率,你可以改一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-10 23:37:30 | 显示全部楼层
suoma 发表于 2015-1-10 22:03
仅仅音调不对,每个音节对应频率,你可以改一下

频率对了,就是发声的时候不对,发的声不是那个频率。
回复 支持 反对

使用道具 举报

发表于 2015-1-11 08:26:47 | 显示全部楼层
如够A或B发出的超声,A和B都收到了,那就是两个声音的合成了
回复 支持 反对

使用道具 举报

发表于 2015-1-11 08:27:54 | 显示全部楼层
还是建议,在不正常时想法隔离下看看是否相互干扰到。

回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-11 17:31:51 | 显示全部楼层
林定祥 发表于 2015-1-11 08:27
还是建议,在不正常时想法隔离下看看是否相互干扰到。

恩恩,应该不是干扰。我也没明白什么情况,现在貌似没有问题了。。。
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-14 07:15 , Processed in 0.061201 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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