37种传感器(二)之超声波传感器模块+Stduino Nano&UNO
本文转载自:www点stduino点com/forum.php?mod=viewthread&tid=24&extra=
说明:
超声波测距原理简析:
超声波传感器能够发射超声波并接收反射回的超声波信号。利用发射与接收的时间差以及传播速度(即声速,声音在空气中传播的速度约为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);//需要大于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);
- }
- }
复制代码
|