标题: 37种传感器(二)之超声波传感器模块+Stduino Nano&UNO [打印本页]

作者: Stduino    时间: 2020-6-29 22:56
标题: 37种传感器(二)之超声波传感器模块+Stduino Nano&UNO
37种传感器(二)之超声波传感器模块+Stduino Nano&UNO

本文转载自:www点stduinocom/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根

电路连接:



代码展示:


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

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

  24. }
  25. }
复制代码








欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1