极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7267|回复: 3

Arduino的多个超声波测距与processing的音频之间互动的问题

[复制链接]
发表于 2014-12-2 14:39:53 | 显示全部楼层 |阅读模式
我想做一个包含3

个超声波测距的Arduino程序,然后每个超声波到一定距离后,可以发出不同的声音,这是Arduino代码:
int srfPin[] = {2,4,6};                        //定义srfPin发送引脚为2
int z;                                   //定义全局变量z
int Distance;                            //定义距离寄存器存放测试距离数据
int duration;                            //定义脉宽寄存器
int data;                                //定义串口接收寄存器
int ultrasonic(int distance){
  for(int i=0;i<3;i++){
    digitalWrite(srfPin, LOW);             // 确保在发送脉冲前保持该引脚为低电平
    delayMicroseconds(2);                  //保持低电平2ms
    digitalWrite(srfPin, HIGH);            // 发送一个高脉冲开始测距
    delayMicroseconds(10);                 //保持10ms
    digitalWrite(srfPin, LOW);             // 在等待脉冲返回来之前发送低电平
    pinMode(srfPin, INPUT);                //调整超声波引脚为输入
    duration = pulseIn(srfPin, HIGH);      // 从SRF05回波脉冲在读取在微秒
    distance = duration/58;    // 除以58就是我们要得到的厘米数
  }
return distance;                         //返回厘米数
}
void setup(){
  Serial.begin(9600);                    //打开串口并设置通信波特率为9600
  pinMode(13,OUTPUT);                            //定义I1接口
}
void loop(){                                    //主程序开始
    Distance = ultrasonic(z);                   //读取超声波值
  Serial.write(byte(Distance));
  delay(100);
}
那么,如何写个processing代码来使里面有声音并且每个超声波测距对应不同的音频呢?
回复

使用道具 举报

发表于 2014-12-2 22:07:53 | 显示全部楼层
arduino通过sireal.print将参数送往窗口,processing从串口读数据,从而形成arduino和processing间的互动
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-3 09:44:56 | 显示全部楼层
我知道方式。就是不知道怎么写代码
回复 支持 反对

使用道具 举报

发表于 2014-12-6 16:03:06 | 显示全部楼层
本帖最后由 林定祥 于 2014-12-6 16:07 编辑

学过processing吗?Arduino和processing互动,请参考《processing互动编程艺术》的最后一章。不过你的问题是有多个传感器,而且距离会发生变化的,因此,这个变化你自己需定义的,这样送到串口的编码,在processing收到后就可以做相应的处理的。
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊 ( 浙ICP备09023225号 )

GMT+8, 2019-9-22 04:15 , Processed in 0.047027 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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