当前位置: 首页 > article >正文

基于Arduino与应变片传感器的高精度厨房电子秤DIY全攻略

1. 项目概述用Arduino打造一台高精度厨房电子秤作为一个喜欢在厨房里折腾的硬件爱好者我经常遇到需要精确称量食材的场合。市面上的电子秤要么精度不够要么价格不菲要么功能单一。于是我萌生了自己动手做一台的想法。核心目标很明确低成本、高精度、可定制并且要足够稳定可靠能应对厨房里偶尔的水汽和油污。最终我选择基于Arduino平台和应变片传感器打造了一台量程5公斤、精度可达1克的厨房电子秤。整个项目花费极低大部分核心元件都能在常见的电子商城找到总成本甚至可以控制在“一杯咖啡”的价格以内。这台秤不仅能称面粉、糖通过简单的“去皮”功能还能直接称量液体的净重非常实用。更妙的是其核心原理与商用体重秤、厨房秤完全一致你完全可以通过更换更大规格的应变片将它改造成一台浴室体重秤。接下来我将从设计思路、硬件选型、软件编程到机械组装毫无保留地分享整个制作过程无论你是Arduino新手还是有一定经验的玩家都能跟着一步步做出来。2. 核心硬件选型与原理深度解析2.1 为什么选择应变片与HX711组合这是整个项目的传感核心也是决定精度和稳定性的关键。我放弃了常见的压力传感器或重量传感器模块因为它们通常价格较高或量程不匹配。应变片是一种将机械形变转换为电阻变化的敏感元件价格低廉是商用电子秤的绝对主流方案。应变片的工作原理你可以把它想象成一段极细的“金属丝”附着在柔软的基底上。当基底比如我们待会要做的秤盘底板受力弯曲时这段“金属丝”会被拉长或压缩其电阻值会发生微小的、线性的变化。这个变化量非常小通常只有零点几个欧姆我们的单片机根本无法直接读取。HX711模数转换器放大器的作用这就是HX711芯片大显身手的地方。它是一款专为电子秤设计的24位高精度ADC模数转换器芯片。它的核心功能有两个第一内置一个可编程增益放大器能将应变片输出的微弱电压信号放大128倍第二进行高精度的模数转换将模拟电压信号变成单片机可以处理的数字信号。24位的分辨率意味着它能将满量程电压划分为2^24约1677万个等级从而实现对重量微小变化的敏锐捕捉。注意HX711模块在市场上非常常见且廉价。购买时请认准模块上是否有便于调节的增益选择电阻通常是50kΩ这关系到你后续能否灵活调整量程和灵敏度。2.2 Arduino主控与外围器件选型考量主控MCU项目中使用的是ATmega328P芯片也就是Arduino Uno的核心。选择它原因有三一是资源足够32KB Flash 2KB RAM能轻松容纳我们的称重程序和校准数据存储逻辑二是其内置的EEPROM1KB可以永久保存校准参数断电不丢失这是实现“开机即用”的关键三是普及度高资料丰富烧录和调试都非常方便。显示单元我选用了一块经典的16x2字符型LCD屏并搭配了I2C接口适配器。这样做的好处是仅需4根线VCC, GND, SDA, SCL即可完成连接极大简化了布线。LCD屏能稳定显示两行信息比如第一行显示状态如“Zero Set”第二行显示实时重量直观明了。交互与校准一个轻触开关按键被连接到数字引脚10。这个按键肩负着至关重要的“去皮/归零”和“手动校准触发”功能。软件上通过长按、短按不同逻辑来区分后文会详细说明。机械结构件这是将电子部分转化为实用产品的关键。你需要准备应变片推荐购买常见的“铝合金基底单点式应变片”量程5kg左右通常带有配套的惠斯通电桥。承重结构两块尺寸合适的硬质塑料板如三聚氰胺板也就是常见的橱柜板材、亚克力板或铝板。它们将作为秤盘和底座。连接件若干M3或M4规格的螺丝、螺母、垫片特别是需要几颗较厚的螺母或特制的垫圈用于在两层板之间创造关键的“悬空间隙”。外壳与秤盘一个合适的盒子作为外壳以及一个塑料或金属托盘作为秤盘。3. 电路连接与核心软件逻辑实现3.1 硬件接线图与要点说明整个系统的接线清晰明了遵循“电源-信号-显示”的顺序连接即可。HX711模块连接VCC- Arduino5VGND- ArduinoGNDDT数据- ArduinoDigital Pin 3(可自定义需与代码对应)SCK时钟- ArduinoDigital Pin 2(可自定义需与代码对应)E E-- 应变片的激励电压正负极A- A- 应变片的信号输出负正极这里正负接反会影响读数增减方向后文会讲LCD I2C模块连接VCC- Arduino5VGND- ArduinoGNDSDA- ArduinoA4(在Uno上SDA是A4)SCL- ArduinoA5(在Uno上SCL是A5)校准按键连接一端接 ArduinoDigital Pin 10另一端接GND采用下拉模式代码中启用内部上拉电阻实操心得在焊接或连接杜邦线时务必确保HX711与应变片之间的连接牢固。虚焊或接触不良是导致读数跳变、不准的首要元凶。建议使用焊锡可靠焊接并用热缩管保护焊点。3.2 软件核心校准、去皮与EEPROM存储Arduino代码的核心逻辑围绕三个功能初始化读取校准值、实时重量测量、按键处理校准/去皮。1. 校准因子Calibration Factor的获取 这是将HX711读取的原始“读数”转换为实际“重量克”的魔法数字。你需要一个已知重量的标准砝码比如500克的调味罐。// 伪代码逻辑 long raw_value hx711.read(); // 读取空载时的原始值 long raw_value_with_weight hx711.read(); // 读取放置标准砝码后的原始值 float calibration_factor (raw_value_with_weight - raw_value) / known_weight; // 计算校准因子 // 例如空载值10000 加载500克后值60000 则校准因子 (60000-10000)/500 100这个calibration_factor需要保存在EEPROM中。首次运行时程序会检测EEPROM中是否有有效值如果没有则提示用户进行校准。2. 去皮Tare功能实现 去皮功能在称量液体或使用容器时极其有用。其本质就是重新定义“零”点。// 当按下去皮键时 void tare() { zero_offset hx711.read(); // 记录当前读数作为新的零点偏移量 EEPROM.put(0, zero_offset); // 将新的零点存入EEPROM首地址 lcd.print(Tared!); }之后所有重量计算都基于这个新的zero_offsetweight (current_reading - zero_offset) / calibration_factor;3. EEPROM存储策略 为了避免每次上电都需校准我们将zero_offset零点偏移和calibration_factor校准因子都存入EEPROM。通常zero_offset因传感器安装的机械应力变化而缓慢漂移需要偶尔重新去皮calibration_factor则相对稳定除非更换传感器否则一般不变。#include EEPROM.h struct ScaleConfig { long zero_offset; float cal_factor; }; ScaleConfig config; void loadConfig() { EEPROM.get(0, config); // 从地址0读取结构体 if (isnan(config.cal_factor) || config.cal_factor 0.0) { // 如果读取的数据无效则使用默认值并标记需要校准 config.cal_factor -1000; // 一个明显的无效值 config.zero_offset 0; } }4. 按键逻辑优化 简单的单按键可以通过按下时长实现多功能。短按 2秒执行去皮Tare操作。将当前重量设为零。长按 3秒进入校准模式。此时LCD提示“Put 500g weight”放上标准砝码后再次长按程序自动计算并保存新的calibration_factor。4. 机械结构设计与组装实战详解机械结构的核心目标是让应变片产生清晰、线性、可重复的形变。我采用了经典的“单点悬臂梁”结构这也是大多数厨房秤的内部结构。4.1 双层板“三明治”结构制作正如我妻子和女儿帮忙制作的那样我们使用了两块硬质三聚氰胺板。底座板下层选择一块大小合适如15cm x 15cm的板作为底座。在板的中心位置钻孔并固定四个铜柱或使用厚螺母作为垫高脚确保整个秤能平稳放置。受力板上层选择一块稍小的板如12cm x 12cm作为承重托盘的直接支撑。在这块板的正中心下方牢固粘贴应变片。应变片的金属丝方向应与预想的弯曲方向一致通常沿板的长边方向。核心连接点在受力板的中心位置和底座板的对应位置钻一个通孔。使用一颗加长的螺丝配合**两个特厚螺母或一叠垫片**作为间隔物将两层板连接起来。关键来了螺丝不能拧死它需要充当一个“支点”。厚螺母的作用就是在两层板之间创造一个1-2毫米的微小间隙让受力板可以围绕这个支点轻微上下弯曲。组装将应变片的导线从侧面引出。然后用螺丝将受力板通过中心支点“松松地”固定在底座板上。此时用手按压受力板的四个角你应该能感觉到它相对于底座板有轻微的、弹性的上下运动。这个运动就会导致粘贴在受力板中心的应变片发生形变。注意事项粘贴应变片是成败关键。务必使用专用的应变片胶水如氰基丙烯酸酯快干胶确保应变片与板材之间完全贴合无气泡。粘贴后最好施加一定压力并静置24小时以上使其完全固化。不牢固的粘贴会导致读数漂移和滞后。4.2 外壳与最终集成将组装好的传感器核心部分放入一个开放式的外壳中确保受力板四周与外壳无接触只有中心支点连接。将承重托盘一个塑料盘或碗固定在受力板上方。将Arduino、HX711模块、LCD屏妥善固定在外壳内或外壳上。所有走线用扎带固定避免拉扯传感器导线。5. 系统调试、校准与精度优化5.1 上电初调与故障排查组装完成后首次上电打开串口监视器波特率9600你会看到HX711输出的原始读数。此时不要急于看重量。读数稳定性空载时原始读数应该在±10以内波动。如果跳动范围超过几十甚至上百请检查电源干扰尝试给Arduino和HX711使用独立的稳压电源或在其电源入口处并联一个100uF的电解电容和一个0.1uF的瓷片电容。接线噪声确保信号线DT SCK远离电源线且长度尽可能短。机械干扰确保秤放在绝对平稳、无振动的台面上且受力板与任何物体无摩擦。读数方向用手轻轻下压承重盘观察原始读数的变化。正常情况下读数应变大正值增加。如果读数变小说明应变片信号线A和A-接反了。只需将HX711模块上连接应变片信号输出的两根线对调即可。5.2 分步校准流程校准是获得准确重量的唯一途径务必耐心细致。预去皮清零确保秤空载且读数稳定。通过短按按键执行去皮功能。此时LCD重量显示应为0.0g程序会将当前的原始读数存入EEPROM作为zero_offset。校准模式长按按键3秒进入校准模式LCD显示“Calib:Add 500g”。将你准备好的500.0克标准砝码务必精确轻轻放在秤盘中心。完成校准等待读数稳定后约3-5秒再次长按按键。程序会计算calibration_factor并存入EEPROMLCD显示“Calib Done”。此时秤显示的重量应非常接近500.0克。验证取下砝码显示应归零。换上一个200克左右的已知重物测试中间量程的准确性。误差应在±1-2克以内为佳。5.3 提高精度与稳定性的技巧软件滤波HX711的24位读数虽然精细但也容易受到噪声影响。在代码中引入软件滤波能极大改善显示稳定性。最简单有效的是移动平均滤波。#define SAMPLE_NUM 10 long get_filtered_reading() { long sum 0; for (int i 0; i SAMPLE_NUM; i) { sum hx711.read(); delay(5); // 适当延迟避免读取过快 } return sum / SAMPLE_NUM; }取10次平均值后重量显示会变得非常稳定几乎不再跳动。温度补偿应变片对温度敏感。如果追求极致精度可以在相同环境下比如厨房常温进行校准和使用。更专业的做法是加入温度传感器如DS18B20建立温度-漂移补偿表但这对于厨房秤而言通常不是必须的。机械保护避免超载5kg的应变片长期称量接近或超过5kg的物体会导致金属疲劳永久性损坏传感器或降低精度。建议留出20%余量最大称量4kg左右。6. 功能扩展与项目变体思路一台基础厨房秤完成后你可以根据自己的需求进行各种有趣的扩展。6.1 添加蓝牙/Wi-Fi实现智能连接通过添加一个HC-05蓝牙模块或ESP-01s WiFi模块可以让秤与手机或电脑通信。蓝牙方案将HC-05的TX/RX连接到Arduino的软串口。秤可以将实时重量数据发送到手机AppApp可以记录每次称量的数据计算总热量或者根据食谱提示下一步该加多少克某种食材。Wi-Fi方案进阶使用NodeMCUESP8266直接替代Arduino作为主控。它可以连接家庭Wi-Fi将称重数据上传到云端服务器如Blynk、Thingspeak或本地Home Assistant。实现远程查看、历史图表、甚至与其他智能设备联动如“面粉称量达到250克时自动开启厨师机低速搅拌”。6.2 改造为人体体重秤正如开头所说这其实就是一台体重秤的雏形。改造非常简单更换传感器购买一个量程为150kg左右的商用体重秤专用应变式传感器通常为铝合金梁式结构。调整机械结构你需要一个坚固的踏板并将传感器安装在踏板下方合适的支点上。通常需要四个传感器分布在四角以保持平衡。四个传感器的信号线可以并联接入一个HX711它支持差分输入但更常见的做法是使用多个HX711或者使用支持多通道的专用称重芯片。修改软件重新校准。因为传感器量程和灵敏度变了calibration_factor会完全不同。程序逻辑完全通用。6.3 实现自动单位切换与峰值保持单位切换通过增加一个按键可以在“克(g)”、“盎司(oz)”、“毫升(ml 针对水”等单位间循环切换。这只需要在显示前对计算出的重量值乘以一个转换系数即可。峰值保持在称量跳动剧烈的物体比如一只活虾时很有用。代码逻辑是在短时间内如3秒记录并持续比较重量读数只显示这段时间内出现的最大值并在LCD上做一个“PEAK”标识直到用户手动清零。7. 常见问题排查速查表在实际制作和调试过程中你可能会遇到下表所列的问题。这里提供了快速的排查思路和解决方法。问题现象可能原因排查与解决方法LCD屏不亮或无显示1. 电源接反或未接通。2. I2C地址不对。3. 对比度电位器未调节。1. 检查VCC和GND。2. 扫描I2C地址使用I2C扫描示例程序。3. 旋转LCD模块背面的蓝色电位器直到显示出现。重量读数始终为0或固定值1. HX711与Arduino通信失败。2. 应变片或HX711损坏。3. 校准因子calibration_factor为0或极大。1. 检查DT SCK引脚连接是否正确代码中引脚定义是否匹配。2. 用万用表测量应变片输入端的激励电压E/-之间应有~5V输出端A/-之间在受力时应有mV级电压变化。3. 检查EEPROM中的校准值尝试重新校准。读数不稳定跳动大1. 电源噪声。2. 机械振动或接触不稳。3. 信号线受干扰。4. 未使用软件滤波。1. 为Arduino和HX711电源并联滤波电容。2. 将秤放在稳定、厚重的台面上。3. 缩短传感器到HX711的导线并远离电源线。4. 在代码中实现移动平均滤波。加载后读数反而减小应变片信号输出线A和A-接反。将HX711模块上连接应变片A和A-的两根线对调。读数线性度差小重量准大重量不准1. 机械结构不合理应变片形变已超出线性区间。2. 传感器超载损坏。3. 承重物未放在中心。1. 检查中心支点“悬空”间隙是否足够受力板弯曲是否顺畅无卡滞。2. 避免超载使用。3. 确保称量时物体置于秤盘中心。去皮或校准后断电重启数据丢失EEPROM写入/读取失败。检查代码中EEPROM操作地址是否正确结构体是否对齐。尝试在setup()中初始化EEPROM慎用会擦除数据。完成所有调试后你的自制厨房电子秤就应该能稳定、精确地工作了。这台秤的精度和可靠性在日常厨房使用中完全媲美甚至超越许多中低端的商业产品。更重要的是你透彻地理解了从物理形变到数字显示的每一个环节获得了完全的掌控力和无限的改造可能。下次烘焙时看着自己亲手打造的秤精确地显示着面粉的克数那种满足感是购买成品无法比拟的。如果在制作过程中遇到上表未涵盖的古怪问题不妨回到最基本的环节电源、接地、连接和机械结构耐心排查一定能找到答案。

相关文章:

基于Arduino与应变片传感器的高精度厨房电子秤DIY全攻略

1. 项目概述:用Arduino打造一台高精度厨房电子秤作为一个喜欢在厨房里折腾的硬件爱好者,我经常遇到需要精确称量食材的场合。市面上的电子秤要么精度不够,要么价格不菲,要么功能单一。于是,我萌生了自己动手做一台的想…...

AArch64内存管理:MAIR_EL3寄存器详解与应用

1. AArch64内存管理基础与MAIR_EL3寄存器定位 在Armv8-A/v9-A架构中,内存管理单元(MMU)通过多级页表实现虚拟地址到物理地址的转换。当处理器执行内存访问时,MMU会遍历页表条目(Translation Table Entry),其中包含两个关键信息:目…...

利用DiSEqC协议与AVR单片机驱动卫星天线电机改造户外设备

1. 项目概述:用卫星天线电机驱动一切如果你手头有一些需要承受风吹日晒、还得精确转动的设备,比如一个户外的大型定向天线,或者一个需要定期调整角度的太阳能板支架,甚至是一个坚固的监控云台,你可能会为驱动机构发愁。…...

用数字逻辑门复刻柏林钟:从二进制编码到硬件实现

1. 项目概述:用数字电路复刻“柏林钟”作为一个在柏林长大的孩子,我从小就对库达姆大街上的那座“柏林钟”着迷。它不像传统时钟那样用指针或数字告诉你时间,而是通过几排不同颜色的发光方块,以一种近乎艺术的方式呈现时间。这种独…...

别再死记硬背SMO公式了!用Python手写一个SVM分类器,带你一步步拆解SMO核心逻辑

用Python手写SVM分类器:代码驱动理解SMO算法核心在机器学习领域,支持向量机(SVM)以其优秀的分类性能和坚实的数学基础著称。然而,许多学习者在理解其核心算法——序列最小优化(SMO)时,往往被复杂的数学推导所困扰。本文将采用一种…...

CANN-昇腾NPU-RAG推理-检索增强生成怎么部署

RAG(Retrieval-Augmented Generation)是 LLM 知识库的组合:先检索相关文档,再让 LLM 基于文档回答。昇腾NPU 上部署 RAG 需要两个组件:Embedding 模型(做向量检索)和 LLM(做生成&am…...

从Gamma函数到泊松分布:一个概率论中的含参量积分实用案例解析

Gamma函数与泊松分布:概率论中的数学之美 在数据科学和机器学习的实践中,概率分布构成了建模的基石。当我们深入探究这些分布背后的数学原理时,Gamma函数以其优雅的性质和广泛的应用脱颖而出。它不仅连接了离散与连续概率世界,更在…...

DIY复刻经典:Texar Audio Prism动态处理器克隆套件全攻略

1. 项目概述:Texar Audio Prism 克隆套件如果你在专业音频圈子里混过一段时间,尤其是对上世纪八九十年代那些经典的、带点“魔法”色彩的外置动态处理器感兴趣,那么“Texar Audio Prism”这个名字你大概率不会陌生。它不是最常见的1176或者LA…...

BetterJoy完整配置指南:5分钟让Switch手柄在PC上完美运行

BetterJoy完整配置指南:5分钟让Switch手柄在PC上完美运行 【免费下载链接】BetterJoy Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput 项目地址: https://gitcode.c…...

HFSS仿真结果怎么看?一文读懂S参数与电场图,让你的T型波导分析不再迷茫

HFSS仿真结果深度解析:从S参数到电场图的工程实践指南面对HFSS仿真生成的复杂数据图表,许多工程师常陷入"看得见数据却读不懂含义"的困境。本文将带您穿透数据表象,掌握T型波导性能分析的核心方法论。1. S参数:波导性能…...

基于LM22678的树莓派硬盘专用电源设计:解决供电不稳与电流冲击

1. 项目概述:为什么我们需要一个“专用”电源?如果你正在用树莓派搭配一块机械硬盘搭建一个家庭服务器或者个人云存储,可能已经遇到了一个不大不小的麻烦:供电不稳。树莓派官方推荐的5V/3A电源,单独带树莓派4B跑满负载…...

除了排错,你可能不知道OPC Expert v8.1还能做这些:数据归档、计算与冗余实战

解锁OPC Expert v8.1的隐藏潜力:数据归档、实时计算与冗余架构实战指南在工业自动化领域,OPC Expert常被视为故障排查的"急救箱",但它的能力远不止于此。当大多数工程师还在用它解决DCOM配置问题时,少数先行者已经用它重…...

从Office功能区的“局外人“到“掌控者“:Office RibbonX Editor深度指南

从Office功能区的"局外人"到"掌控者":Office RibbonX Editor深度指南 【免费下载链接】office-ribbonx-editor An overhauled fork of the original Custom UI Editor for Microsoft Office, built with WPF 项目地址: https://gitcode.com/g…...

告别虚频困扰:用VASP+DynaPhoPy搞定高温材料声子谱的保姆级教程

高温材料声子谱计算实战:从虚频困境到非谐解决方案 引言:虚频问题的根源与突破路径 在计算材料学领域,声子谱分析是理解材料动力学稳定性和热力学性质的核心手段。然而许多研究者都遭遇过这样的困境:对实验合成的材料进行简谐近似…...

Office RibbonX Editor:让Office界面定制变得像搭积木一样简单

Office RibbonX Editor:让Office界面定制变得像搭积木一样简单 【免费下载链接】office-ribbonx-editor An overhauled fork of the original Custom UI Editor for Microsoft Office, built with WPF 项目地址: https://gitcode.com/gh_mirrors/of/office-ribbon…...

手把手教你为WCH CH582移植CherryUSB主机栈(基于RT-Thread,含中断优化)

基于RT-Thread的WCH CH582 USB主机协议栈深度移植指南在嵌入式开发领域,USB主机功能的实现往往意味着设备能够直接连接各类USB外设,从简单的键盘鼠标到复杂的存储设备。对于使用WCH CH582这类RISC-V内核MCU的开发者而言,原厂SDK提供的USB主机…...

D3KeyHelper:暗黑3玩家的智能按键助手,告别重复操作疲劳

D3KeyHelper:暗黑3玩家的智能按键助手,告别重复操作疲劳 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面,可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper 你是否曾在《暗黑破坏…...

番茄小说下载器终极指南:三步构建你的离线阅读自由王国

番茄小说下载器终极指南:三步构建你的离线阅读自由王国 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader 你是否曾在地铁里读到精彩章节时突然断网?是否在…...

AI时代程序员职业发展与个人创业可行性研究报告

一、行业宏观变革(2026核心趋势数据佐证) 1.1 开发范式已彻底重构(行业不可逆拐点) 2026年正式进入AI Agent智能体开发时代,传统CRUD编码价值持续崩塌。 核心权威数据: Gartner预测:2026年75%企…...

从社交关系到分子结构:图解GCN(图卷积网络)到底在‘看’什么?

从社交关系到分子结构:图解GCN(图卷积网络)到底在‘看’什么?想象一下,你刚搬到一个新社区,想快速了解周围的邻居。最直接的方式是什么?不是挨家挨户敲门,而是通过社区活动认识几位关…...

告别道路预测老套路:用ParkPredict+模型思路,解决停车场里的‘鬼探头’难题

破解泊车场景预测困局:ParkPredict模型的技术革新与实践停车场里的每一次转向、倒车和避让,都是对自动驾驶系统预测能力的极限挑战。与开放道路的规则明确不同,这里没有清晰的车道线指引,没有统一的行驶方向,只有随时可…...

新手村任务:成为一个架构师需要哪些装备?

新手村任务:成为一个架构师需要哪些装备? 一、前言 如果你刚入行不久,想成为一名架构师,那这篇文章就是为你写的。 我们把成为架构师比作一个RPG游戏,你是主角,需要收集各种装备、刷经验、升级技能。 新手村的第一个任务就是:了解你需要哪些装备。 二、架构师技能树…...

自制射频功率计:基于AD8317芯片,成本43欧元实现1MHz-10GHz测量

1. 项目概述:为什么我要亲手打造一台射频功率计在无人机和模型飞行器的圈子里,尤其是在我们荷兰FMS Spaarnwoude俱乐部,合规飞行是头等大事。我给我的八轴飞行器加装了云台相机和图传系统,工作在5.8GHz频段。根据本地法规&#xf…...

数组专项(一):数组排序、去重、查找

大家好,欢迎来到《算法面试60讲(2026最新版全真题带解析)》第19篇!上一篇我们彻底吃透了字符串专项的核心难点——BF暴力匹配与KMP高效匹配算法,搞定了字符串模块面试最难的算法考点。从本节课开始,我们正式进入算法面试第一高频模块:数组专项。 在算法面试中,数组是出…...

对称与负电源测试:动态直流电子负载的设计、原理与应用

1. 项目概述:对称与负电源的静态与动态直流负载在电子实验室里,测试一个电源的性能,尤其是它的动态响应能力,是件既基础又关键的事。我们常说的“直流电子负载”就是这个领域的核心工具。我之前设计并分享过一个用于正电源测试的静…...

[智能体-69]:重新认知MCP:协议不生产智能,只是AI全域交互的标准化基石

MCP只是提供了大模型、编排调度、外部工具能够进行结构化交流的标准,而整个系统的智能主要依赖编排调度,与外部软件系统的交互取决于外部工具,包括外部语音交互、视觉交互、数字化交互。当下MCP(Model Context Protocol&#xff0…...

BLE蓝牙扫描深度剖析:扫描原理、核心参数、前后台差异

一、前言BLE设备交互分为两大角色:广播端(外设Peripheral)与扫描端(中心Central)。上一篇博客详解了四大广播模式,本文聚焦配套核心能力——BLE扫描机制。绝大多数蓝牙开发疑难问题:前台能扫后台…...

BLE四大广播模式详解:可连接/不可连接/定向/周期广播

一、前言在低功耗蓝牙(BLE)开发中,广播(Advertising)是设备发现、连接建立、数据广播、设备重连的核心基石,所有BLE交互流程均始于广播报文的收发。不同于传统经典蓝牙,BLE所有广播行为标准化、…...

从多路复用到三维光阵:Arduino驱动8x8x8 LED立方体全解析

1. 项目概述:用Arduino点亮一个三维世界几年前,我第一次在创客展上看到一个8x8x8的LED立方体,那种由数百个光点构成的、在三维空间中流动的动画效果,瞬间就把我吸引住了。它不像普通的平面LED屏,而是真正有“深度”的光…...

Arduino PWM转4-20mA工业电流信号:二阶滤波与V/I转换电路设计

1. 项目概述:从PWM到工业标准电流信号在工业自动化、过程控制和传感器领域,4-20 mA电流环是一个几乎无处不在的标准。它用4 mA代表测量值的下限(如0C),20 mA代表上限(如100C),这种设…...