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以上,由此形成了超声波。
该信号经锥形“辐射口”处将超声波信号发射出去。接收器接收到反射回来的超声波信号后,将超声波变成微弱的电振荡,并将信号进行放大,就可得到所需的脉冲信号,此脉冲信号再返回给单片机。
实验目的:
利用HC-SR04超声波传感器测量到目标物体的距离,并利用串口通信窗口显示。
具体而言,在模块trig端输出一个至少10us的高电平信号,则该模块内部将循环发射8个40KHz频率的脉冲;若检测由回波信号,则会在echo端产生高电平信号。
器材:
Stduino Uno/Nano、超声波传感器HC-SR04、杜邦线4根
电路连接:
代码展示:
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);//需要大于10digitalWrite(trig,LOW);time = pulseIn(echo,HIGH);//高电平传回超声波从发射到接收所经过的时间。float S = time/58.00; //使用浮点计算出距离,单位为cm,time除以58是由速度乘以时间换算而来Serial.println(S);S = 0;time = 0;delay(500);}}