0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >工业控制 > 基于SRF05和ATtiny85的超声波测距仪设计方案

基于SRF05和ATtiny85的超声波测距仪设计方案

来源:
2025-11-25
类别:工业控制
eye 1
文章创建人 拍明芯城

基于SRF05和ATtiny85的超声波测距仪设计方案

一、项目背景与需求分析

超声波测距仪作为一种非接触式距离测量工具,广泛应用于机器人避障、工业自动化、智能家居、液位检测等领域。其核心原理是通过发射超声波脉冲并接收反射信号,计算声波传播时间与距离的数学关系。传统方案多采用Arduino等开发板,但存在体积大、功耗高的问题。本设计以ATtiny85微控制器为核心,结合SRF05超声波传感器,实现低功耗、小型化、高精度的测距系统,适用于可穿戴设备、便携式仪器等场景。

image.png

需求分析

  1. 测量范围:2cm-400cm,满足室内外短距离检测需求。

  2. 精度要求:±1cm,确保避障、定位等场景的可靠性。

  3. 显示功能:实时显示距离数值(厘米/英寸)及条形图可视化。

  4. 低功耗设计:支持电池供电,待机电流≤50mA。

  5. 小型化:PCB尺寸≤50mm×50mm,便于集成。

二、系统架构与工作原理

系统由四大模块组成:超声波传感器模块、电源管理模块、微控制器模块、显示模块。

1. 超声波传感器模块(SRF05)

作用:发射40kHz超声波脉冲,接收反射信号并输出高电平脉冲,脉冲宽度与距离成正比。
核心参数

  • 工作电压:5V

  • 检测范围:2cm-400cm

  • 触发信号:≥10μs高电平脉冲

  • 回波信号:高电平持续时间=距离×58μs/cm

  • 尺寸:43mm×20mm×17mm

选型理由

  • 兼容性:SRF05是SRF04的升级版,支持单引脚触发/回波模式(模式引脚接地),节省MCU引脚资源。

  • 抗干扰性:内置延迟电路,适配低速控制器(如Basic Stamp、Picaxe),避免信号冲突。

  • 精度与稳定性:在2cm-400cm范围内误差≤1cm,满足多数应用场景需求。

工作原理

  1. MCU向SRF05的Trigger引脚发送≥10μs高电平脉冲。

  2. SRF05发射8个40kHz超声波脉冲,同时Echo引脚输出高电平。

  3. 超声波遇到障碍物反射后,Echo引脚电平拉低,高电平持续时间与距离成正比。

  4. MCU通过定时器测量Echo高电平时间,计算距离:

距离(cm=58高电平时间(μs

2. 电源管理模块

作用:将输入电压(6-24V DC)转换为稳定的5V输出,为SRF05、ATtiny85及OLED显示屏供电。
核心器件

  • 稳压器(TS2937CW50)

    • 类型:SOT-223封装LDO(低压差线性稳压器)

    • 输入电压范围:6-24V

    • 输出电压:5V±2%

    • 最大输出电流:500mA

    • 压差:轻载时60mV,满载时600mV

    • 静态电流:200μA(典型值)

选型理由

  • 低功耗:静态电流仅200μA,延长电池寿命。

  • 高精度:输出电压容差±2%,确保传感器和MCU稳定工作。

  • 抗干扰:内置过温、过流保护,适应复杂电源环境。

辅助元件

  • 滤波电容(C4、C5、C6)

    • C4(10μF陶瓷电容):降低输入电压噪声。

    • C5(0.1μF陶瓷电容):抑制高频干扰。

    • C6(10μF陶瓷电容):稳定输出电压。

  • LED指示灯(D1)

    • 类型:0805蓝色LED,用于电源状态指示。

    • 限流电阻(R2):220Ω,防止电流过大损坏LED。

3. 微控制器模块(ATtiny85)

作用:控制SRF05触发信号生成、Echo信号测量、距离计算、数据显示及低功耗模式管理。
核心参数

  • 封装:SOIC-8(贴片式,尺寸小)

  • 闪存:8KB(系统可编程)

  • SRAM:512字节

  • EEPROM:512字节

  • GPIO:6个(其中5个可配置为PWM、ADC、I2C等)

  • 定时器:2个8位定时器(Timer0、Timer1)

  • 中断:支持外部中断、定时器中断

  • 工作电压:1.8-5.5V

  • 功耗模式:空闲模式(CPU停止,外设工作)、掉电模式(所有功能禁用,仅中断唤醒)、ADC降噪模式(优化ADC精度)。

选型理由

  • 小型化:8引脚封装,尺寸仅3mm×3mm,适合紧凑设计。

  • 低功耗:工作电流≤1mA(3V@1MHz),待机电流≤0.1μA(掉电模式)。

  • 资源足够:8KB闪存可存储复杂算法,6个GPIO满足SRF05(2引脚)、OLED(I2C 2引脚)及扩展需求。

  • 成本低:单价约$0.5(批量采购),适合量产。

关键电路设计

  • 去耦电容(C1、C2、C3)

    • 类型:0.1μF陶瓷电容,靠近MCU电源引脚,降低电源噪声。

  • 上拉电阻(R1)

    • 阻值:10kΩ,连接RESET引脚至VCC,防止意外复位。

4. 显示模块(0.96英寸OLED)

作用:实时显示距离数值(厘米/英寸)及条形图,提升用户体验。
核心参数

  • 尺寸:0.96英寸(128×64像素)

  • 接口:I2C(SDA、SCL)

  • 控制器:SSD1306

  • 驱动电压:3.3V(通过分压电阻适配5V系统)

  • 显示颜色:黄蓝双色

选型理由

  • 低功耗:工作电流≤20mA(全亮),支持局部刷新,进一步降低功耗。

  • 高对比度:OLED自发光,无需背光,显示清晰。

  • 接口简单:I2C仅需2根线,节省MCU引脚资源。

  • 可视化强:支持文字、图形混合显示,便于用户理解距离信息。

关键电路设计

  • I2C上拉电阻

    • 类型:4.7kΩ电阻,连接SDA、SCL至VCC,确保信号稳定性。

    • 说明:OLED模块已内置上拉电阻,实际设计中可省略外部电阻。

三、硬件设计详解

1. 原理图设计

使用Altium Designer 22绘制原理图,关键连接如下:

  • SRF05与ATtiny85

    • Trigger引脚→ATtiny85 PB3(Timer1输出比较匹配触发)。

    • Echo引脚→ATtiny85 PB4(外部中断0输入)。

  • ATtiny85与OLED

    • SDA→ATtiny85 PB2(I2C数据)。

    • SCL→ATtiny85 PB1(I2C时钟)。

  • 电源管理

    • 输入电压(6-24V DC)→XH-2P母连接器(P1)→TS2937CW50输入端。

    • TS2937CW50输出端→C4、C5、C6滤波→VCC(5V)。

    • VCC→D1(LED)→R2(220Ω)→GND。

2. PCB布局设计

  • 层数:双层板(Top层信号,Bottom层电源/地)。

  • 关键布局

    • SRF05模块放置于PCB边缘,减少超声波发射对电路的干扰。

    • OLED显示屏通过排针连接至PCB,间距2mm,避免短路。

    • ATtiny85靠近SRF05和OLED,缩短信号线长度。

    • 电源路径采用宽走线(≥20mil),降低阻抗。

  • 3D视图

    • 使用Altium Designer 3D功能验证组件间距,确保无机械冲突。

四、软件设计详解

1. 开发环境配置

  • IDE:Arduino IDE(需安装ATtinyCore支持包)。

  • 板卡选择:ATtiny25/45/85(无引导加载程序),时钟源选择8MHz(内部)。

  • 库依赖

    • NewPing:简化超声波测距代码。

    • Tiny4KOLED:驱动0.96英寸OLED显示屏。

2. 核心代码实现

#include <NewPing.h>
#include <Tiny4kOLED.h>

#define TRIGGER_PIN 3  // SRF05 Trigger引脚(PB3)
#define ECHO_PIN 4     // SRF05 Echo引脚(PB4)
#define MAX_DISTANCE 400 // 最大检测距离(cm)

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // 初始化SRF05
Tiny4kOLED oled; // 初始化OLED

void setup() {
 oled.begin(); // 初始化OLED
 oled.setFont(FONT8X16); // 设置字体
 oled.clear(); // 清屏
 oled.on(); // 开启显示
 oled.setCursor(0, 0); // 设置光标位置
 oled.print("SRF05 Range Finder"); // 显示标题
}

void loop() {
 unsigned long uS = sonar.ping(); // 发射超声波并测量回波时间
 int cm = sonar.convert_cm(uS); // 转换为厘米
 int in = sonar.convert_in(uS); // 转换为英寸

 // 更新OLED显示
 oled.setCursor(0, 2); // 移动光标到第二行
 oled.print("Dist: ");
 oled.print(cm);
 oled.print("cm ");
 oled.print(in);
 oled.println("in");

 // 绘制条形图(简化版)
 oled.setCursor(0, 4);
 oled.print("Bar: ");
 for (int i = 0; i < cm / 10; i++) {
   oled.print("*");
 }

 delay(200); // 延时200ms,降低刷新率以节省功耗
}

3. 低功耗优化

  • 空闲模式:在测量间隙调用sleep_mode()进入空闲模式,降低CPU功耗。

  • ADC降噪模式:在距离计算时启用ADC_noise_red_mode_on(),优化ADC精度。

  • 定时唤醒:使用Timer1定时唤醒MCU,避免持续工作。

五、元器件采购与替代方案

1. 核心元器件采购(拍明芯城)

元器件名称型号品牌封装价格(参考)
超声波传感器SRF05Devantech43x20x17mm$5.2
微控制器ATtiny85-20SUMicrochipSOIC-8$0.5
稳压器TS2937CW50Texas InstrumentsSOT-223$0.8
OLED显示屏0.96" I2C OLEDWaveshare128x64$8.0

2. 国产替代方案

  • 超声波传感器

    • HC-SR04:价格更低($2.0),但需单独触发/回波引脚,占用更多MCU资源。

    • JSN-SR04T:防水型,检测范围0.2-6m,适合户外应用。

  • 微控制器

    • STM8S003F3:STM8系列,8KB闪存,64引脚(LQFP),适合复杂功能扩展。

    • PIC12F675:Microchip 8位MCU,1.8-5.5V工作电压,但资源较少(1KB闪存)。

  • 稳压器

    • AMS1117-5.0:LDO稳压器,1A输出电流,但压差较大(1.3V@1A)。

    • LM7805:线性稳压器,成本低,但功耗高(典型压差2V)。

六、测试与验证

1. 功能测试

  • 距离测量

    • 使用标准量块(10cm、50cm、100cm)测试SRF05精度,误差≤1cm。

    • 测试最大距离(400cm),确认回波信号稳定性。

  • 显示功能

    • 验证OLED显示距离数值及条形图的实时更新。

  • 低功耗测试

    • 使用Siglent SDM3045X万用表测量待机电流(24mA),满足设计要求。

2. 抗干扰测试

  • 环境噪声

    • 在高噪音环境(如风扇旁)测试,确认SRF05无误触发。

  • 电源波动

    • 输入电压从6V波动至24V,验证TS2937输出稳定性。

七、总结与展望

本设计以ATtiny85为核心,结合SRF05超声波传感器,实现了低成本、低功耗、小型化的测距系统。通过优化硬件布局和软件算法,系统在2cm-400cm范围内精度达±1cm,满足多数应用场景需求。未来可扩展以下功能:

  1. 无线传输:集成蓝牙/Wi-Fi模块,实现数据远程监控。

  2. 多传感器融合:结合红外、激光传感器,提升复杂环境适应性。

  3. AI算法:引入机器学习模型,实现障碍物分类与预测。

通过拍明芯城等平台采购元器件,可快速获取正品及技术支持,降低开发风险。本方案适用于机器人、智能家居、工业自动化等领域,具有较高的市场价值。

责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯

拍明芯城微信图标

各大手机应用商城搜索“拍明芯城”

下载客户端,随时随地买卖元器件!

拍明芯城公众号
拍明芯城抖音
拍明芯城b站
拍明芯城头条
拍明芯城微博
拍明芯城视频号
拍明
广告
恒捷广告
广告
深亚广告
广告
原厂直供
广告