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

需求分析
测量范围:2cm-400cm,满足室内外短距离检测需求。
精度要求:±1cm,确保避障、定位等场景的可靠性。
显示功能:实时显示距离数值(厘米/英寸)及条形图可视化。
低功耗设计:支持电池供电,待机电流≤50mA。
小型化: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,满足多数应用场景需求。
工作原理:
MCU向SRF05的Trigger引脚发送≥10μs高电平脉冲。
SRF05发射8个40kHz超声波脉冲,同时Echo引脚输出高电平。
超声波遇到障碍物反射后,Echo引脚电平拉低,高电平持续时间与距离成正比。
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. 核心元器件采购(拍明芯城)
| 元器件名称 | 型号 | 品牌 | 封装 | 价格(参考) |
|---|---|---|---|---|
| 超声波传感器 | SRF05 | Devantech | 43x20x17mm | $5.2 |
| 微控制器 | ATtiny85-20SU | Microchip | SOIC-8 | $0.5 |
| 稳压器 | TS2937CW50 | Texas Instruments | SOT-223 | $0.8 |
| OLED显示屏 | 0.96" I2C OLED | Waveshare | 128x64 | $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,满足多数应用场景需求。未来可扩展以下功能:
无线传输:集成蓝牙/Wi-Fi模块,实现数据远程监控。
多传感器融合:结合红外、激光传感器,提升复杂环境适应性。
AI算法:引入机器学习模型,实现障碍物分类与预测。
通过拍明芯城等平台采购元器件,可快速获取正品及技术支持,降低开发风险。本方案适用于机器人、智能家居、工业自动化等领域,具有较高的市场价值。
责任编辑:David
【免责声明】
1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。
2、本文的引用仅供读者交流学习使用,不涉及商业目的。
3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。
4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。
拍明芯城拥有对此声明的最终解释权。

产品分类

2012- 2022 拍明芯城ICZOOM.com 版权所有 客服热线:400-693-8369 (9:00-18:00)