双源电子

在线客服
 工作时间
周一至周五 :8:30-17:30
周六至周日 :9:00-17:00

ARDUINO学习16

作者:双源电子

超声波传感器是常见的配件,常用于测距、避障。网上很容易买到便宜的超声波传感器模块,价格非常亲民,当然精度也差一些。
我们主要来了解一下它的原理及工作流程,因为超声波传感器的操作,涉及到一个概念:时序。 时序是数字电路中一个很重要的概念,就是按照严格的时间要求控制或者读取信号的变化。如果不按照时序操作电路,那就得不到正确的结果。
先来看超声波传感器的工作原理,它有两个喇叭,一个发送(T),一个接受(R),发送喇叭发送超声波信号(里面载有8个40KHz的方波),遇到障碍物返回,接收喇叭接收到超声波信号,然后计算时间差,根据声音在空气中的传播速度(340m/s),计算出距离。
超声波模块上有一个小的单片机,用来处理信号的发送和接收,外部的ARDUINO想要控制超声波模块,就要严格按照它的时序来控制。
超声波模块上有4根线,+5V,gnd,TRIG和ECHO。TRIG是用来触发发送喇叭的信号线,ECHO用来检测接收喇叭是否接收到信号。
图片


int TrigPin = 10;
int EchoPin = 9;
float cm;
void setup()
{
Serial.begin(9600);
pinMode(TrigPin, OUTPUT);
pinMode(EchoPin, INPUT);
}
void loop()
{
digitalWrite(TrigPin, LOW); //低高低电平发一个短时间脉冲去TrigPin
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
//检测高电平时间,时间乘以速度,由于是一个来回,所以要除2,然后将距离换算成cm
cm = pulseIn(EchoPin, HIGH)*(340*100)/ (2*1000*1000);
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(1000); //为了防止干扰,两次测距之间间隔至少要保持60ms
}

联系方式
_faiMaterial_000045

联系人:ANTBOT001

QQ:584860790

邮 箱:584860790@qq.com

交流群: 615486305