“超声波”的版本间的差异

来自Labplus盛思维基百科
跳转至: 导航搜索
MicroPython示例
使用教程
 
(未显示3个用户的19个中间版本)
第1行: 第1行:
 +
 +
[[文件:黑色传感器最终版12.20-36.png|thumb|350px|right]]
 
== 概述 ==
 
== 概述 ==
 
用于超声波定位、测距、避障等应用场景。操作简单采用I2C通讯将测距值返回主控。有效测距范围3~300cm
 
用于超声波定位、测距、避障等应用场景。操作简单采用I2C通讯将测距值返回主控。有效测距范围3~300cm
  
 
== 技术参数 ==
 
== 技术参数 ==
* 工作电压:3.3V~5V
+
* 工作电压:VCC 3.3-5V
 
* 接口方式:I2C接口
 
* 接口方式:I2C接口
 
* 超声波测量范围:3cm~300cm
 
* 超声波测量范围:3cm~300cm
 
* 误差:±1%
 
* 误差:±1%
* 模块尺寸:
+
* 模块尺寸:24x46x7.5mm
  
 
== 引脚定义 ==
 
== 引脚定义 ==
第14行: 第16行:
 
| <small>VCC</small> || <small>电源</small>
 
| <small>VCC</small> || <small>电源</small>
 
|-
 
|-
| <small>SDA</small> || <small>I2C数据</small>
+
| <small>ECHO</small> || <small>连接I2C_SDA</small>
 
|-
 
|-
| <small>SCL</small> || <small>I2C时钟</small>
+
| <small>TRIG</small> || <small>连接I2C_SCL</small>
 
|-
 
|-
 
| <small>GND</small> || <small>地</small>
 
| <small>GND</small> || <small>地</small>
第22行: 第24行:
  
 
== 使用教程 ==
 
== 使用教程 ==
=== 连接示意图 ===
+
 
 +
=== <font size="3">掌控板及mPython编程</font> ===
 +
 
 +
<pre style="color:blue">
 +
#程序功能:用掌控板OLED屏显示超声波传感器的测量值。
 +
</pre>
 +
{|
 +
|-
 +
| [[文件:超声波接线图.png |800px|居中|无框]]
 +
|-
 +
|style="text-align:center"|连接示意图
 +
|}
 +
<br/>
 +
 
 +
{|
 +
|-
 +
| [[文件:超声波mPython编程.png |900px|居中|无框]]
 +
|-
 +
|style="text-align:center"|图形化及mPython代码
 +
|}
 +
<br/>
 +
<br/>
 
=== Arduino示例 ===
 
=== Arduino示例 ===
=== MicroPython示例 ===
 
 
<pre style="color:blue">
 
<pre style="color:blue">
 +
//程序功能:超声波测距//
 +
#include <Wire.h>
 
void setup()
 
void setup()
 
{
 
{
  Serial.begin(9600); // open serial port, set the baud rate to 9600 bps
+
Serial.begin(115200);               //串口初始化,波特率115200
 +
Wire.begin();                        //I2C初始化
 
}
 
}
 +
uint8_t Distance();                        //声明超声波函数
 
void loop()
 
void loop()
 
{
 
{
      int val;
+
Serial.print(Distance());           //打印测距
      val=analogRead(0);   //connect grayscale sensor to Analog 0
+
Serial.println("cm");
      Serial.println(val,DEC);//print the value to serial       
+
delay(100);
      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; 
 +
}
 
</pre>
 
</pre>
  
=== 图形化示例 ===
+
=== Bluebit主控代码示例 ===
 +
USB串口打印输出超声波返回值
 +
==== <small>连接示意图</small> ====
 +
[[文件:超声波连接图.jpg|600px|居中]]
 +
<pre style="color:blue">
 +
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)
 +
 
 +
</pre>
 +
 
 +
=== Bluebit主控图形化示例 ===
 +
连接图同上
 +
{|
 +
|-
 +
|程序功能:超声波测距,测量值返回到数码管显示
 +
|-
 +
|[[文件:超声波 2.png|900px|无框|左]]
 +
|}
 +
 
 +
== 版本历史记录 ==
 +
 
 +
{|  border="1" cellspacing="0" align="left" cellpadding="0" width="60%" style="text-align:center;"
 +
|- style="text-align:center;background-color:#6fa8dc;color:#fffff;"
 +
!width="10%"|Version !!width="15%"| Date !! Note  <small>[+]新增[-]删除[^]修复</small>
 +
|-
 +
| V2.0 || || style="text-align:left"|
 +
|}

2020年4月10日 (五) 14:57的最新版本

黑色传感器最终版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

使用教程

掌控板及mPython编程

#程序功能:用掌控板OLED屏显示超声波传感器的测量值。
超声波接线图.png
连接示意图


超声波mPython编程.png
图形化及mPython代码



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;  
}

Bluebit主控代码示例

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)

Bluebit主控图形化示例

连接图同上

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

版本历史记录

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