Arduino实验二十三:HC-SR04超声波传感器实验
来自丢石头百科
模块介绍
模块说明
超声波模块主要是由两个通用的压电陶瓷超声传感器,并加外围信号处理电路构成的。具体为:两个压电陶瓷超声传感器一个用于发出超声波信号,一个用于接收反射回来的超声波信号。由于发出信号和接收信号都比较微弱,所以需要通过外围信号放大器提高发出信号的功率,和将反射回来信号进行放大,以能更稳定地将信号传输给单片机。超声波模块常用于机器人避障、物体测距、液位检测、公共安防、停车场检测等场所。
工作原理
超声波测距原理是在超声波发射装置发出超声波,它的根据是接收器接到超声波时的时间差,与雷达测距原理相似。 超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。(超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:s=340t/200)
参数说明
- 工作电压:DC3.3-5V
- 输出端口:GPIO/UART/IIC/1-Wrie
- 输出信号:TTL 电平,与射程成正比
- 工作电流:2.2mA
- 工作频率:40Hz
- 测量距离:2cm - 4.5m
- 测量角度:15度
- 测量精度:0.1cm+2%
- 工作温度:-10°C-+70°C
- PCB尺寸:45mm*20mm*16mm
- UART设置:波特率 9600,起始位 1位,停止位 1 位,数据位 8 位,无奇偶校验位,无流控
引脚说明
- 引脚说明
- 1、VCC:电源正极,接电压3V-5.5V
- 2、Trig/Rx/SCL/ I/O:接收MCU发送的控制脉冲
- GPIO模式:Trig 触发信号,接外部电路的Trig端
- UART模式:Rx 接收信号,接外部电路的Tx端
- IIC模式:SCL 时钟信号,接外部电路的SCL端
- 1-Wire模式:I/O 接收/发送信号
- 3、Echo/Tx/SDA:向MCU发送数据脉冲
- GPIO模式:Echo 反馈信号,接外部电路的Echo端
- UART模式:Tx 发射信号,接外部电路的Rx端
- IIC模式:SDA 数据信号,接外部电路的SDA端
- 4、GND:电源负极,接地
- 功能选择端说明
操作说明
- 实际应用,如果需要精确距离值,必需要考虑温度影响,做温度补偿
- GPIO模式
- UART模式
- UART模式:波特率9600,起始位1位,停止位1位,数据位8位,无奇偶校验位,无流控制
- 连接串口。外部MCU或PC发命令0XA0,模块完成测距后发3个返回距离数据,BYTE_H,BYTE_M与BYTE_L。
- 距离计算方式如下(单位mm):
- 距离=((BYTE_H<<16)+(BYTE_M<<8)+ BYTE_L)/1000
- IIC模式
实验说明
实验现象
- 通过串口打印模块测量到的距离
电路连接
主要程序
digitalWrite(trig,LOW); delayMicroseconds(20); digitalWrite(trig,HIGH); delayMicroseconds(20); digitalWrite(trig,LOW); //发一个20US的高脉冲去触发Trig distance = pulseIn(echo,HIGH); //计数接收高电平时间 distance = distance*340/2/10000; //计算距离 1:声速:340M/S 2:实际距离1/2声速距离 3:计数时钟为1US Serial.print("距离: "); Serial.print(distance); Serial.println("cm"); delay(20); //单次测离完成后加20mS的延时再进行下次测量。防止近距离测量时,测量到上次余波,导致测量不准确。 delay(500); //500mS测量一次