news 2026/9/17 22:42:46

纯门电路超声波测距:NE555+LM324+CD4511无单片机实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
纯门电路超声波测距:NE555+LM324+CD4511无单片机实现

简介:不使用单片机的超声波测距项目设计文档,由成都信息工程学院气象电子综合设计报告整理而来,面向电子、自动化类课程设计与综合实践场景。方案以两级NE555定时器为核心,生成约40kHz脉冲驱动超声波发射探头,配合接收放大、检波与数码管显示电路,完成从发射、回波处理到距离显示的完整闭环,适合希望用纯数字电路替代微控制器完成测距功能的读者参考。资源包共1个docx文件,约1.15MB,内含项目计划、系统框图、各单元模块设计原理(超声波产生电路、载波发生器、发射驱动电路、接收电路、时间测量电路、计数锁存显示及电源部分)、调试说明等完整章节,并附有中英文摘要,便于逐段对照学习整体设计思路与电路细节。目前已有278人学习,可作为超声波测距专题设计、数字电路应用或毕业设计的重要参考资料。

1. 纯门电路测距:绕开单片机的一条超声波链路

测距不一定要单片机。这套设计用两级 NE555 生成 40kHz 超声脉冲群,接收端靠 LM324 做 900 倍放大和二极管包络检波,最后用 8.912kHz 计数脉冲把发射到回波的往返时间量化成脉冲个数,直接送 CD4511 译码驱动数码管。整个信号链没有任何固件,改一个电阻电容就能改变测量节奏,所有行为都能用示波器逐级观察。它属于 30~200cm 的近距离测距场景,适合倒车提醒、料位检测这类对成本敏感、对精度要求不苛刻的工业现场。对习惯了单片机方案的工程师来说,把这条链路从头到尾走一遍,反而能把超声波测距的时差法本质看得更清楚:频率怎么产生、回波怎么放大、时间怎么计数,每一处都有明确的模拟逻辑依据。

2. NE555 两级门控与 CD4069 推挽:发射端的波形整形细节

2.1 第一级 555 的 337us 门控:98% 占空比到底想干什么

这一级的作用不是产生对称方波。NE555 在非稳态(astable)模式下,输出高电平时间由 R1+R2 与 C 决定,低电平时间由 R2 与 C 决定。标准公式为:

  • t_high = 0.693 × (R1+R2) × C
  • t_low = 0.693 × R2 × C
  • 输出占空比 = (R1+R2) / (R1+2R2),天然大于 50%

第一级周期 337us、占空比 98%,意味着高电平约 330us,低电平只留 6.7us。也就是说这一级输出是一条持续的高电平“巷道”,只在短暂瞬间拉低一下,这个低电平恰好接到第二级 NE555 的复位脚(第 4 脚),低电平期间第二级被强制复位停振,其余时间保持释放状态自由振荡。用窄负脉冲做门控,发射通道的损耗被压到最小,同时也给 40kHz 载波一个清晰的起始沿,方便后续时间测量电路取参考点。

要复现这组参数,常见做法是按公式逆推 RC。我一般会先固定电容再算电阻:

C = 10e-9 # 定时电容,常用 10nF 瓷片 R1 = 47e3 # 充电通路电阻,决定高电平宽度 R2 = 1e3 # 放电通路电阻,决定低电平宽度 t_high = 0.693 * (R1 + R2) * C t_low = 0.693 * R2 * C T = t_high + t_low print(f"高电平 {t_high*1e6:.1f} us") print(f"低电平 {t_low*1e6:.1f} us") print(f"周期 {T*1e6:.1f} us,频率 {1/T:.0f} Hz,占空比 {t_high/T*100:.1f}%")

这段脚本运行结果是高电平 332.6us、低电平 6.9us、周期 339.5us、占空比 98.0%,与设计值 337us 只差一个电阻精度。R2 在这里很小,它单独决定低电平宽度,想调整停振时间而不动发射宽度,优先动 R2;想整体拉周期,就同比例调 R1。47k 与 1k 的组合只是一个起点,焊接前用示波器确认波形,再微调 R1 到目标频率。

参数第一级门控第二级载波
周期 / 频率337us / 约 2.97kHz40kHz
占空比98%50%
高电平含义放行第二级振荡输出半周期
低电平含义复位第二级输出半周期
对系统影响决定发射脉冲群包络决定换能器中心频率

2.2 40kHz 载波发生器与 64ms 停振间隔

第二只 NE555 的复位脚接第一级输出,所以它的振荡被第一级门控。自由振荡频率要落在 40kHz,对应周期 25us,高低电平各 12.5us。标准 astable 电路占空比天然大于 50%,要让输出接近 50%,常见做法是把 R1 压到几百欧到 1k 量级、R2 取十几千欧,使 t_high 近似等于 t_low;也有实现里在放电支路串二极管,把充电和放电路径隔开,直接得到对称方波。

原始报告记录这级输出约 1ms 的 40kHz 脉冲串,之后停止约 64ms 再进入下一轮。40kHz 在 1ms 内有约 40 个完整周期,这个脉冲串经换能器转成声能后,在 2m 量程内往返时间最长约 12ms,64ms 的静默足够让空气中和换能器上的余振衰减干净,避免上一轮发射的回波串进下一轮测量。实际搭建时要注意:第一级 337us 与 64ms 属于不同时间尺度的指标,前者决定脉冲群内部的窄负脉冲节奏,后者决定整个测距循环的刷新间隔,它们由不同 RC 网络分别设定,不要混在一个表达里理解。

提示:常规 TTL 版 NE555 在 12V 供电时输出高电平会比电源轨低 1~2V,CMOS 版摆幅更接近电源。用于超声驱动这种需要摆幅的场景,优先选 CMOS 版,后级 CD4069 的翻转阈值和驱动余量都更舒服。

2.3 CD4069 推挽驱动:单边脉冲怎么变成换能器的双边激励

第二级 555 输出的是 0~12V 单边脉冲,直接接压电陶瓷片也能驱动,但激励幅度只有单侧有效。压电换能器是容性两端器件,两边各施加极性相反的 40kHz 方波,换能器上的差分电压接近 2 倍电源摆幅,声波发射强度显著提升,这是 CD4069 在这一级的主要作用。

CD4069 有六个反相器,典型接法是一个反相器做输入整形,两个反相器并联输出同相信号,两个并联输出反相信号,剩余一个做缓冲或接地不用。并联输出并不是为了逻辑功能,而是把多个输出级电流合到一起,提升对电容性负载的瞬态驱动能力。40kHz 方波边沿很陡,换能器等效电容在 nF 级,瞬间充放电电流峰值不小,单路反相器容易把边沿拉软,并联后上升沿能保持干净。

4069 和 4049 都能干这个活,区别在 4049 是缓冲器、输出电流稍大,4069 是反相器。本设计用 4069,一半是因为它常见,另一半是反相器取反后天然形成差动对。走线时注意同相与反相两组输出到换能器两根引脚的路径尽量等长,避免引入不应有的相位差。

3. LM324 两级放大与二极管检波:回波链路的增益分配

3.1 回波信号弱在哪:为什么需要 900 倍增益

本设计用的是有源超声波探头,接收换能器内部已经包含一级前置放大和整理电路,信号以较低阻抗传到主板。但回波本身在空气中传播时声压按距离近似一次方衰减,遇到障碍物反射还伴随反射损耗,到 1~2m 处反射回来的信号已经衰减到 mV 量级,必须再做板级放大,才能翻动后面的数字门电路。

板级方案给出的是两级放大,每级 30 倍,总增益 900 倍,折算约 59dB。这个量级用两级做而不是一级做,原因有两个。第一是闭环增益太高时反馈电阻比值大,运放开环增益余量变小,噪声和失调都会被放大到不可控,容易自激;第二是运放增益带宽积的限制,单级 900 倍时可用带宽根本覆盖不了 40kHz。两级分开处理更可控,哪一级波形不对就单独调哪一级。

3.2 30 倍级联的边界:LM324 的增益带宽积

LM324 的单位增益带宽典型值在 1.2MHz 左右,这是运放开环增益跌到 1 的频率,也是设计闭环带宽的上限参考。闭环可用带宽约等于单位增益带宽除以闭环增益,也就是 GBW/A:

import math GBW = 1.2e6 # LM324 典型单位增益带宽 stages = [30, 30] # 两级闭环增益配置 total = 1 for i, A in enumerate(stages, 1): bw = GBW / A total *= A print(f"第 {i} 级:增益 {A} 倍,闭环 -3dB 带宽约 {bw/1e3:.1f} kHz") print(f"总增益 {total} 倍,约 {20*math.log10(total):.1f} dB") print(f"如果单级做 900 倍:带宽约 {GBW/900/1e3:.2f} kHz")

脚本输出:每级 30 倍时带宽约 40kHz,总增益 900 倍(59.1dB);如果一级做 900 倍,带宽只剩 1.33kHz,40kHz 的回波信号在这种带宽下基本出不来。所以 30 倍是贴着 LM324 能力取的边界值。这个 -3dB 带宽点本身就落在 40kHz 上,信号已经有少量衰减,放大后的幅值会比理想值略低。想给 40kHz 留出更多余量,可以把第二级降到 22 倍左右,总增益掉到 660 倍(56.4dB),但波形更干净、不容易在高频处抖动。

LM324 是四运放封装的单电源器件,12V 供电时输入共模范围和输出摆幅都要留余量。回波信号很小,容易叠在直流偏置上,级间用交流耦合把前级直流失调隔掉,可以避免两级漂移互相叠加导致放大器饱和。增益电阻的比值决定放大倍数,阻值本身决定噪声影响,常见做法是用 1% 精度电阻,10k 与 300k 的比值就可以实现 30 倍。

3.3 包络检波:D6、D7、C17、R28 把正弦串变成脉冲包络

放大后的 40kHz 回波是一个正弦衰减串,直接让数字电路判断“有没有回波”,需要先做包络拾取。本设计用二极管和 RC 组成包络检波,把高频正弦波的幅度变化转成缓慢起伏的直流包络曲线。

原理并不复杂:D6、D7 对回波整流,C17 在信号峰值处充电,R28 提供放电通路。充电通路电阻小,电容电压快速跟上信号峰值;放电通路电阻大,载波周期内电压跌不掉,最后输出就是跟随回波幅度起伏的包络。RC 时间常数直接影响检波质量:RC 太小,包络上残留大量 40kHz 纹波,比较器可能在波峰波谷之间反复翻转;RC 太大,包络拖尾变长,两个相邻脉冲被拉成一个,时间测量起点滞后。

RC 时间常数载波纹波包络拖尾适用判断
约 25us(1 倍载波周期)明显边缘陡,但易误触发
约 100us(4 倍载波周期)中等中等较稳妥的起点
约 250us(10 倍载波周期)明显适合强回波、慢包络

以上是经验量级,原设计里 C17、R28 的具体数值没有标注,焊接后以实测包络形状为准:回波前沿要陡,相邻两个峰之间要能分清。若看到包络前沿拖着长斜坡,说明 RC 偏大,往减小时间常数的方向调。

3.4 用发射窗口做比较:把直通脉冲从回波里剔掉

检波输出会有两个脉冲:前一个来自发射瞬间换能器之间的直接串扰和近场泄漏,后一个才是目标物反射回来的回波。直通脉冲幅度大、位置固定,如果直接拿它触发计时,测出来的距离会恒定等于某个极小值。本设计的处理方式是把第二级 555 的发射窗口输出与检波输出分别接到 LM324 剩下两个运放上做比较:发射窗口有效期间压低比较器,禁止输出;窗口结束后检波信号才有机会通过比较器,形成有效的回波到达脉冲。

这本质上是一个时间窗与。LM324 四只运放里两只做放大、两只做比较,整个接收链路用同一个器件,BOM 很简洁。比较阈值一般取发射窗口信号幅度的三分之一到二分之一,用两个电阻分压给出参考电平。如果直通脉冲还是漏过来,优先检查发射窗口信号沿与直通脉冲的时序关系,确认窗口关闭沿早于直通脉冲前沿,而不是单纯提高比较阈值——提高阈值会把真实的弱回波一起滤掉。

4. 8.912kHz 门控计数与 CD4511 锁存显示:时间差如何折算成距离

4.1 8.912kHz 计数脉冲:每一次计数约等于 1.92cm

回波经过整形后变成标准逻辑电平,接下来要把“发射到接收的时间差”量化。方法是用一个频率固定的计数脉冲去填充这段时间,脉冲数乘以每个脉冲对应的时间,再乘声速、除 2,就是单程距离。本设计里计数振荡器频率取 8.912kHz,由 CD4069 和 1N4148 二极管等组成门控振荡器产生。

每个计数脉冲对应的距离可以这样推:

v_sound = 343.0 # 20°C 空气中的声速 f_count = 8912.0 # 计数振荡频率 cm_per_pulse = v_sound * 100 / (2 * f_count) print(f"每个计数脉冲对应 {cm_per_pulse:.2f} cm") for d in [30, 50, 100, 150, 200]: n = d / cm_per_pulse print(f"{d} cm -> 约 {n:.1f} 个计数脉冲")

脚本输出:每个脉冲对应 1.92cm。30cm 距离大约计 16 个脉冲,50cm 约 26 个,100cm 约 52 个,200cm 约 104 个。这个映射关系很直观:计数器里读到的十进制数乘以 1.92 就是厘米数。8.912kHz 这个频率决定了分辨率和计数器容量之间的折中。把计数频率翻倍到 17.824kHz,每个脉冲对应的距离减半到 0.96cm,但同样的测量时间会多出一倍脉冲,需要更多位计数器,门控沿的时序余量也更紧张。

目标距离 cm往返时间 ms理论计数脉冲数(取整)
301.7516
502.9226
1005.8352
20011.66104

表格里的往返时间按 343m/s 声速计算。30~200cm 量程对应计数范围只有 16~104,两到三位 BCD 计数器足够。三位数码管理论上可以显示到 19m 以上,但那只代表显示电路容量,实际量程由发射功率、接收增益和盲区共同决定,不要以显示位数判断测距能力。

4.2 CD4011 测量窗口:复位、计数、锁存三步时序

时间测量部分由 CD4011 四与非门、计数器、锁存器配合完成。回波比较器输出的跳变沿,会经一只 NE555 组成的单稳电路整理成锁存脉冲,宽度落在计数器的锁存建立时间内。整体工作节奏分四步:

  1. RESET 端来一个复位脉冲,计数器清零,同时与非门被打开,计数脉冲通道放行。
  2. FREQUENCY 引脚的 8.912kHz 脉冲通过门控,进入计数器开始累加。
  3. 回波到达后,LOCK 端得到一个锁存脉冲,计数器当前值被锁存,同时与非门关闭,计数停止。
  4. 锁存值送显示电路保持,直到下一次 RESET 来临开始新一轮测量。

CD4011 是四路二输入与非门,这里用一路做门控,一路做复位与锁存信号的整形。与非门和与门在这个位置上都能实现门控,选与非门是因为 CD4011 是 4000 系列里最通用的器件之一,配合 CD4069、CD4511,整块板不用引入异族逻辑芯片。时序上最需要注意的是 RESET 和 LOCK 不能重叠加在同一个测量周期里,否则计数器既清零又锁存,显示值会乱跳。

4.3 CD4511 锁存译码与数码管显示

CD4511 是 BCD 到七段锁存译码驱动器,自带锁存端。计数器输出的 BCD 码送到它的 A~D 输入,正常显示时锁存端置高,数据变化不会立即反映到输出,只有 LOCK 信号拉一下才更新显示。这个特性正好用来消除测量过程中数字快速跳动带来的视觉闪烁:锁存后显示保持稳定,下一轮测量完成再刷一次。

CD4511 输出驱动共阴极数码管时接线最直接,a~g 段输出串限流电阻到数码管段脚。原设计里出现了 PNP 管做位选扩流,这种接法常见于多位显示:段电流由 4511 输出能力决定,位选部分用三极管把公共端电流通道扩一下,避免单颗芯片承受全部数码管电流。12V 供电下数码管每段电流按 5~10mA 设计,限流电阻在 330 欧到 1k 之间调整,以亮度均匀、不发红为准。

显示电路本身不参与测距计算,它只忠实反映计数器锁存的结果。所以整块板显示值准不准,取决于发射链路、门控时序、回波整形这三块。显示最后一位数不稳,多数时候问题不在数码管,而在计数器时钟上。

5. 示波器分级调试与误差拆解:不用单片机也要避开时序陷阱

5.1 从发射头逐级看波形

纯硬件测距的调试顺序一定是从发射端往接收端推,逐级确认信号活着,再谈精度。示波器探头按这个顺序挂:

  1. 第一只 555 的输出:应看到 337us 周期、占空比 98% 的门控脉冲,低电平窄而干净。如果低电平有毛刺,检查 R2 是否接近 1k 量级、供电去耦是否到位。
  2. 第二只 555 的输出:应看到 40kHz、约 1ms 的脉冲串,停振期间无杂波。复位脚被第一级钳住时,不应有残余振荡。
  3. 发射探头两端(CD4069 输出):应为双边 40kHz 方波,差分摆幅接近两倍电源电压。如果一边幅度明显偏小,查对应反相器有没有虚焊。
  4. LM324 放大输出:放一块平整挡板在 50cm 左右,应能看到一串逐渐衰减的正弦波,幅度几百 mV 到几 V。幅度太小先查增益电阻比值,再查级间耦合电容。
  5. 检波输出:应看到发射直通峰和回波峰两个包络。如果只有一个峰,通常是检波 RC 太大把两个峰并成一个。
  6. CD4511 数据线:LOCK 之后 BCD 码应稳定保持到下一轮 RESET。若显示乱跳,重点查 RESET 和 LOCK 是否串扰。

回波看不到时,先把目标板从 30cm 推到 1m,看波形幅度变化是否连续。如果近处有、远处消失,问题在增益;如果近处就消失,多半是盲区或直通脉冲把回波压住了。

5.2 三个误差来源和一条改进路径

这套系统的误差主要来自三处。第一是量化误差,计数频率 8.912kHz 意味着 ±1 个脉冲就对应 ±1.92cm,这是原理级分辨率,不是靠调电阻能消除的。第二是声速漂移,空气中声速约随温度变化 0.6m/s/°C,0°C 到 40°C 声速差约 24m/s,200cm 处误差可达十几厘米,这也是原设计提到毫米级精度需要温度补偿的原因。第三是检波阈值滞后,比较器触发点不在回波前沿的零点,而在幅度爬到阈值的位置,回波越弱,判据点越靠后,测量值系统偏大。

提高分辨率的直接路径是提高计数振荡频率,但门控沿的建立时间会成为新瓶颈。另一个改进方向是用低温度系数电阻稳定 8.912kHz 振荡频率,再配合热敏电阻网络对计数频率或阈值做一级粗补偿,不引入单片机也能把温漂削掉一部分。要再进一步,就是把计数振荡换成晶振源,量化误差和频率漂移同时收住。

现场校准的惯用手法是取 100cm 标准距离,反推实际每脉冲厘米数,然后微调计数振荡器 RC 值把显示值拉到 100;之后在 50cm 和 150cm 两处复核,基本就能判定系统误差和盲区边界。用这个闭环再回头调检波时间常数,整块板会好调很多。

本文还有配套的精品资源,点击获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/17 22:42:14

Silero VAD 语音活动检测阈值与采样率选型指南

Silero VAD 语音活动检测阈值与采样率选型指南 【免费下载链接】silero-vad Silero VAD: pre-trained enterprise-grade Voice Activity Detector 项目地址: https://gitcode.com/GitHub_Trending/si/silero-vad Silero VAD 是一个约 2MB 的预训练语音活动检测&#xff…

作者头像 李华
网站建设 2026/9/17 22:34:43

基于STM32的PMSM电机FOC矢量控制实战:Simulink仿真与秋招简历项目

1. 别慌,先把“最快补齐简历项目”的路线算清楚说实话,秋招这个时间点,看到“只会STM32”这句话,我太能理解那种紧迫感了。很多同学在校期间学的是单片机基础——GPIO点灯、按键中断、串口打印、定时器PWM、I2C读个传感器&#xf…

作者头像 李华