(SKU:RB-02S012)PING))) 两个超声波传感器联调实验
来自ALSROBOT WiKi
目录 |
实验简介
为了方便电子爱好者使用多个超声波传感器,现将两个传感器的联调实验方法写下,供电子爱好者参考。
规格参数
- 工作电压 :5V +/-10%
- 功耗 :20mA
- 工作电流:30mA
- 最大电流: 35mA
- 工作温度范围:0℃~+70℃
- 探测有效距离:2cm~3m
- 尺寸大小: 22 mm H x 46 mm W x 16 mm D
- 重量:9g
接口定义
- GND:电源地
- 5V:电源正极
- SIG:信号接口
使用方法
连接图示
两个超声波的INPUT引脚接在D5,OUTPUT分别接D3、D4,如下图:
例子程序
依照程序连接两个超声波传感器与UNO,测试实际检测的距离。
const int pingPin = 11; int inputPin1=4; // 接超声波的 output 引脚到数字D4脚 int outputPin=5; // 接超声波的 input 引脚到数字D5脚 int inputPin2=3; int ledpin=13; // 定义 ledPin 引脚为D13脚 void setup() { //初始化串口及引脚的输入、输出模式 Serial.begin(9600); pinMode(ledpin,OUTPUT); pinMode(inputPin1, INPUT); pinMode(outputPin, OUTPUT); pinMode(inputPin2, INPUT); } void loop() { unsigned int x1,x2; digitalWrite(outputPin, LOW); //使发出发出超声波信号接口低电平2 μs delayMicroseconds(2); digitalWrite(outputPin, HIGH); //使发出发出超声波信号接口高电平10μs ,这里是至少10μs delayMicroseconds(10); digitalWrite(outputPin, LOW); // 保持发出超声波信号接口低电平 float distance1 = pulseIn(inputPin1, HIGH); // 读出接收脉冲的时间 distance1= distance1/58; // 将脉冲时间转化为距离(单位:厘米) x1 = distance1 * 100.0; distance1 = x1 / 100.0; //保留两位小数 Serial.print("x1 = "); Serial.println(distance1); // 输出距离值 delay(150); digitalWrite(outputPin, LOW); //使发出发出超声波信号接口低电平2 μs delayMicroseconds(2); digitalWrite(outputPin, HIGH); //使发出发出超声波信号接口高电平10μs ,这里是至少10μs delayMicroseconds(10); digitalWrite(outputPin, LOW); // 保持发出超声波信号接口低电平 float distance2 = pulseIn(inputPin2, HIGH); // 读出接收脉冲的时间 distance2 = distance2/58; // 将脉冲时间转化为距离(单位:厘米) x2 = distance2 * 100.0; distance2 = x2 / 100.0; //保留两位小数 Serial.print("x2 = "); Serial.println(distance2); // 输出距离值 delay(150); } }
程序效果
打开串口监视器可以观察到输出的距离值为当前超声波距前方障碍物的实际距离。
产品相关推荐
产品购买地址
周边产品推荐
LV-MaxSonar-EZ1 超声波传感器
超声波传感器支架
双模式超声波传感器
相关问题解答
超声波测距输出的距离一直为0
超声波传感器不工作,如何解除故障
相关学习资料
parallax官方使用说明
parallax官方产品资料
Arduino教程02--Arduino连接超声波传感器测距
Arduino学习笔记- Arduino连接超声波传感器测距
奥松机器人技术论坛