37种传感器(二)之超声波传感器模块+Stduino Nano&UNO

37种传感器(二)之超声波传感器模块+Stduino Nano&UNO

本文转载自:http://www.stduino.com/forum.php?mod=viewthread&tid=24&extra=

关键词:
51、stm32、arduino、stduino、单片机、stduino UNO&Nano、超声波传感器模块

超声波测距原理简析:
超声波传感器能够发射超声波并接收反射回的超声波信号。利用发射与接收的时间差以及传播速度(即声速,声音在空气中传播的速度约为340m/s)即可计算传感器到障碍物体的距离。单片机向超声波传感器发送脉冲,超声波传感器被此脉冲触发后会产生一个40 kHz的脉冲电信号,通过激励换能器处理以后,转换成机械振动,频率约在20 kHz以上,由此形成了超声波。

该信号经锥形“辐射口”处将超声波信号发射出去。接收器接收到反射回来的超声波信号后,将超声波变成微弱的电振荡,并将信号进行放大,就可得到所需的脉冲信号,此脉冲信号再返回给单片机。
37种传感器(二)之超声波传感器模块+Stduino Nano&UNO_第1张图片
实验目的:
利用HC-SR04超声波传感器测量到目标物体的距离,并利用串口通信窗口显示。

具体而言,在模块trig端输出一个至少10us的高电平信号,则该模块内部将循环发射8个40KHz频率的脉冲;若检测由回波信号,则会在echo端产生高电平信号。

器材:
Stduino Uno/Nano、超声波传感器HC-SR04、杜邦线4根

电路连接:
37种传感器(二)之超声波传感器模块+Stduino Nano&UNO_第2张图片
代码展示:

int trig = 8;//Trig端
int echo = 9;//Echo端
void setup() 
{
// put your setup code here, to run once:
pinMode(echo,INPUT);
pinMode(trig,OUTPUT);
Serial.begin(9600);
}
void loop()
{
// put your main code here, to run repeatedly:
unsigned long time = 0;
while(1){
digitalWrite(trig,HIGH);
delayMicroseconds(15);//需要大于10
digitalWrite(trig,LOW);

time = pulseIn(echo,HIGH);//高电平传回超声波从发射到接收所经过的时间。
float S = time/58.00; //使用浮点计算出距离,单位为cm,time除以58是由速度乘以时间换算而来
Serial.println(S);
S = 0;
time = 0;
delay(500);

}
}

你可能感兴趣的:(Stduino)