零知智能避障小车系列2 - 超声波模块使用 HC SR04

超声波测量距离简单实用,本次使用HC SR04超声模块进行讲解,之后把这个模块应用到小车上,进行避障功能应用。模块的实物如下:

1、实验材料

超声避障模块-HC SR04
零知标准板
杜邦线若干

2、接线

接线比较简单,按照如下顺序连线即可:

3、程序

我们根据模块的原理来进行代码编写,超声测距时的操作时序如下:

编写代码如下,即可测出距离:


												
	/**
	*    文件: 超声测距.ino      by 零知实验室([url=http://www.lingzhilab.com]www.lingzhilab.com[/url])
	*    -^^- 零知开源,让电子制作变得更简单! -^^-
	*    时间: 2018/10/13 15:29
	*    说明: 
	**/
	 
	 
	#define SR04_TRIG        9
	#define SR04_ECHO        10
	 
	// the setup routine runs once when you press reset:
	void setup() {
	    // put your setup code here, to run once:
	         
	        pinMode(SR04_TRIG, OUTPUT);
	        pinMode(SR04_ECHO, INPUT);
	         
	        Serial.begin(9600);
	}
	 
	// the loop routine runs over and over again forever:
	void loop() {
	    // put your main code here, to run repeatedly:
	         
	        int distance = getDistance();
	         
	        Serial.print("distance = ");
	        Serial.println(distance);
	         
	        delay(300);
	}									
						

其中getDistance函数实现如下:


								
		int getDistance()
		 
		{
		 
		        digitalWrite(SR04_TRIG, LOW);
		 
		        delayMicroseconds(2);
		 
		        digitalWrite(SR04_TRIG, HIGH);
		 
		        delayMicroseconds(10);
		 
		        digitalWrite(SR04_TRIG, LOW);
		 
		        int distance = pulseIn(SR04_ECHO, HIGH);
		 
		        distance = distance/58.0;
		 
		        return distance;
		 
		}
		

我们把程序上传到零知标准板后,可以测得如下所示距离数据,单位cm:

完整工程:超声测距.7z(点击下载)