超声波

来自Labplus盛思维基百科
Labplus课程组讨论 | 贡献2018年5月4日 (五) 11:46的版本 图形化示例
跳转至: 导航搜索
黑色传感器最终版12.20-36.png

概述

用于超声波定位、测距、避障等应用场景。操作简单采用I2C通讯将测距值返回主控。有效测距范围3~300cm

技术参数

  • 工作电压:VCC 3.3-5V
  • 接口方式:I2C接口
  • 超声波测量范围:3cm~300cm
  • 误差:±1%
  • 模块尺寸:24x46x7.5mm

引脚定义

VCC 电源
ECHO 连接I2C_SDA
TRIG 连接I2C_SCL
GND

使用教程

Arduino示例

//程序功能:超声波测距//
#include <Wire.h>
void setup()
{
	Serial.begin(115200);               //串口初始化,波特率115200
	Wire.begin();                        //I2C初始化
}
uint8_t Distance();                         //声明超声波函数
void loop()
{
	Serial.print(Distance());           //打印测距
	Serial.println("cm");
	delay(100);
}

uint8_t Distance()
{
	int i = 0;
	uint8_t cm;
	uint8_t temp[2];
	Wire.beginTransmission(0x0b);              //传输给从机设备0x0B
	Wire.write(1);                             //发送1指令
	Wire.endTransmission();                    //结束传输
	Wire.requestFrom(0x0b, 2);                 //接收从机设备0x0B,长度2字节
	while (Wire.available()) { 
		temp[i] = Wire.read();
		i++;
	}
	return  cm = (temp[0] + temp[1] * 256) / 10;  
}

Python示例

USB串口打印输出超声波返回值

连接示意图

超声波连接图.jpg
from microbit import *

def Distance():
    i2c.write(0x0b, bytearray([1]))
    sleep(2)
    temp=i2c.read(0x0b,2)
    distanceCM=(temp[0]+temp[1]*256)/10
    return distanceCM

# test code
while True:
    print(Distance())
    sleep(100)

图形化示例

连接图同上

程序功能:超声波测距,测量值返回到数码管显示
超声波 2.png

版本历史记录

Version Date Note [+]新增[-]删除[^]修复
V2.0