查看: 2650|回复: 0

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

[复制链接]

53

主题

55

帖子

431

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
431
发表于 2020-5-19 21:45:55 | 显示全部楼层 |阅读模式
Stduino Uno/Nano-37种传感器(二)超声波传感器模块

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

一、超声波测距原理简析:
超声波传感器能够发射超声波并接收反射回的超声波信号。利用发射与接收的时间差以及传播速度(即声速,声音在空气中传播的速度约为340m/s)即可计算传感器到障碍物体的距离。单片机向超声波传感器发送脉冲,超声波传感器被此脉冲触发后会产生一个40 kHz的脉冲电信号,通过激励换能器处理以后,转换成机械振动,频率约在20 kHz以上,由此形成了超声波。
该信号经锥形“辐射口”处将超声波信号发射出去。接收器接收到反射回来的超声波信号后,将超声波变成微弱的电振荡,并将信号进行放大,就可得到所需的脉冲信号,此脉冲信号再返回给单片机。
HC-SR04.jpg
二、实验目的:

利用HC-SR04超声波传感器测量到目标物体的距离,并利用串口通信窗口显示。


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

1.Stduino Uno/Nano

2.超声波传感器HC-SR04

3.杜邦线4根。



四、电路连接:
02超声波传感器.png
五、代码:

  1. int trig = 8;//Trig端
  2. int echo = 9;//Echo端
  3. unsigned long time = 0;
  4. void setup()
  5. {
  6. // put your setup code here, to run once:
  7. pinMode(echo,INPUT);
  8. pinMode(trig,OUTPUT);
  9. Serial.begin(9600);
  10. }
  11. void loop()
  12. {
  13. // put your main code here, to run repeatedly:


  14. digitalWrite(trig,HIGH);
  15. delayMicroseconds(15);//需要大于10
  16. digitalWrite(trig,LOW);

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


  23. }
复制代码


功能函数子函数模式

  1. int trig = 8;//Trig端
  2. int echo = 9;//Echo端
  3. unsigned long time = 0;
  4. //写成子涵数形式直接进行调用
  5. float chao(void)
  6. {

  7. digitalWrite(trig,HIGH);
  8. delayMicroseconds(15);//需要大于10
  9. digitalWrite(trig,LOW);

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

  12. time = 0;
  13. return S;

  14. }
  15. void setup()
  16. {
  17. // put your setup code here, to run once:
  18. pinMode(echo,INPUT);
  19. pinMode(trig,OUTPUT);
  20. Serial.begin(9600);
  21. }
  22. void loop()
  23. {
  24. // put your main code here, to run repeatedly:


  25. delay(500);
  26. Serial.println(chao());

  27. }
复制代码

超声波传感器连接.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐

Stduino 零基础入门课程系列(五) 实验三:按键输入
Stduino 零基础入门课程系
Hello!各位同学大家好~上节课我们利用管脚输出高低电平信号,控制LED的亮灭,那么我
Stduino小白练习第六弹--按键控制串口通信
Stduino小白练习第六弹--
2020/01/08 星期三 作者:Astilbe 问题:我们如何通过按下按键来传输固定的信息给PC呢
37种传感器(二十九)MPU6050陀螺仪模块+Stduino Nano&UNO
37种传感器(二十九)MPU6
StduinoUno /纳米37种传感器(二十九)六轴 MPU陀螺仪模块关键词: 51 ; stm32 ; ar
stm32 最小系统 小蓝板 LED闪烁灯(三),无需刷Bootloader
stm32 最小系统 小蓝板 LE
关键词:stm32 小蓝板 STM32F103C8T6 Stduino IDE Stduino Nano LED闪烁灯 通过Stduin
Stduino IDE软件下载专区
Stduino IDE软件下载专区
Stduino IDE软件下载专区 Windows版:7月29号发布1.01, 现可
今天在文涛老大的帮助下我的stm32zet6终于把simlpefoc库跑起...
今天在文涛老大的帮助下我
[md]首先本身是刚刚从MDK转到arduino过来的新人,只因为要完开源的simplefoc,期间由
连接ADS1292模拟前端芯片,使用SPI库,导致串口不输出数据
连接ADS1292模拟前端芯片
[md]连接ADS1292模拟前端芯片,使用SPI库,导致串口不输出数据 ![QSJSBEZF83I8C907%$
©2001-2018  Stduino官网  Powered by©Discuz!   ( 皖ICP备17011998号 )
快速回复 返回顶部 返回列表