第十课--Microduino 超声波测距/zh

来自Microduino Wikipedia
Pkj讨论 | 贡献2014年3月5日 (三) 06:09的版本
跳转至: 导航搜索
Language English

目的

本教程将和大家分享下使用Microduino超声波测距模块控制蜂鸣器,通过简单的程序来作为超声波控制的一个教学例程,希望大家多多批评。

测试对象是SRF-04超声波传感器,有四个脚:5v电源脚(Vcc),触发控制端(Trig),接收端(Echo),地端(GND)

对于超声波的相关技术文件大家了在网上搜,资源很多,只要多花几分钟看看,都可以掌握的,这里就不多说了。

设备

超声波传感器

第十课-超声波传感器.jpg

基本介绍:

超声波传感器是利用超声波的特性研制而成的传感器。超声波是一种振动频率高于声波的机械波,由换能晶片在电压的激励下发生振动产生的,它具有频率高、波长短、绕射现象小,特别是方向性好、能够成为射线而定向传播等特点。超声波对液体、固体的穿透本领很大,尤其是在阳光不透明的固体中,它可穿透几十米的深度。超声波碰到杂质或分界面会产生显著反射形成反射成回波,碰到活动物体能产生多普勒效应。因此超声波检测广泛应用在工业、国防、生物医学等方面。

组成部分:

超声波探头主要由压电晶片组成,既可以发射超声波,也可以接收超声波。小功率超声探头多作探测作用。它有许多不同的结构,可分直探头(纵波)、斜探头(横波)、表面波探头(表面波)、兰姆波探头(兰姆波)、双探头(一个探头反射、一个探头接收)等。

原理图

第十课-Microduino超声波测距原理图.jpg

程序

const int TrigPin = 3;
const int EchoPin = 2;
float cm;

void setup()
{
	Serial.begin(9600);
	pinMode(TrigPin, OUTPUT);
	pinMode(EchoPin, INPUT);
	pinMode(8,OUTPUT);
}
void loop()
{
	digitalWrite(8, LOW);
	digitalWrite(TrigPin, LOW); //低高低电平发一个短时间脉冲去TrigPin
	delayMicroseconds(2);
	digitalWrite(TrigPin, HIGH);
	delayMicroseconds(10);
	digitalWrite(TrigPin, LOW);

	cm = pulseIn(EchoPin, HIGH) / 58.0; //将回波时间换算成cm
	cm = (int(cm * 100.0)) / 100.0; //保留两位小数
	if (cm>=2 && cm<=10)
		digitalWrite(8, HIGH);
}

调试

步骤一:代码复制到IDE中编译

步骤二:编译不出错的话开始连接电路,如下图:

第十课-Microduino超声波测距电路图.jpg

步骤三:连接好后,运行代码。

第四部:把手置于超声波前边,听蜂鸣器的声音

结果

超声波传感器的前方如果有物体,并且物体的距离在大于2厘米,小于10厘米的范围内的情况下,测试蜂鸣器会响起,快自己用手试试。大家可基于这个做个超声波防盗器。

视频

http://v.youku.com/v_show/id_XNjc1NjQxMjU2.html