基于51单片机驱动HC-SR04超声波模块(LCD1602显示)

  • 一、基本参数
  • 二、通信时序
  • 三、部分代码展示
  • 四、实际效果
  • 总结

一、基本参数

点击图片购买

HC- SR04+是一款宽电压工作的超声波测距模块。模块外形尺寸及软件与老版本
HC- SR04完全兼容;可以与老版本HC SR04无缝切换。低至3V的低工作电压,
使其与3.3V供电的MCU可以直接连接。

特点
探测角度: <15°
采用工业级MCU,工作温度:-20C~80C
探测距离:5V:2cm– 450cm;3.3V: 2cm–400cm
宽电压工作: 3V-5.5V与HC SR04软件与硬件尺寸完全兼容
板.上接线方式,VCC、trig (控制端)、echo( 接收端)、out(空脚,GND)。

注意:模块应先插好在电路板上再通电,避免产生高电平的误动作,如果产生了,
重新通电方可解决。

二、通信时序

三、部分代码展示

//HC-SR04接线定义sbit INPUT  = P1^2;                //回声接收端口sbit OUTPUT = P1^3;                //超声触发端口
//LCD1602接线定义//D0-D7----------P0sbit rs    = P0^7;sbit rw    = P0^6;sbit lcden = P0^5;
/******************************************************************************//* 函数名称  : main                                                           *//* 函数描述  : 主函数                                                         *//* 输入参数  : 无                                                             *//* 参数描述  : 无                                                             *//* 返回值    : 无                                                             *//******************************************************************************/void main(void){  rw = 0;initLCD();Init_MCU();Init_Parameter();display_char(table,0x00);display_char(table0,0x40);Delay_xMs(30000);display_char(table2,0x00);display_char(table1,0x40);while(1){ Trig_SuperSonic();         //触发超声波发射 while(INPUT == 0)          //等待回声         {             ;         } Measure_Distance();        //计算脉宽并转换为距离 display_char(table3,0x40); display(distance,0x49);    //显示距离 Init_Parameter();          // 参数重新初始化 delayt(100);               //延时,两次发射之间要至少有10ms间隔 }}

四、实际效果

总结

1、供电3.3V,5V均可,尽量供电不超过5V,不低于3.3V
2、测量距离是平面距离,斜面测误差会特别大
3、测量角度是15度以内,测量范围内有其他物体挡住也会影响测量结果

需要完整工程的可以下方留言