产品开发:空气波按摩器的一些控制逻辑
随着大健康产业的爆发,空气波按摩器(气压按摩仪) 这类产品的销量也跟着爆发,这不最近刚好接到空气波腿部按摩器的PCBA的软硬件开发项目,在这里记录下一些开发心得
一、 压力校准与 EEPROM 数据防丢设计
不同批次的压力传感器(空气波按摩器通常使用表压型压力传感器,是惠斯通电桥类传感器)在零点偏置和灵敏度上存在硬件差异,因此出厂校准是必不可少的环节。
1. 校准了哪些数据?
出厂校准时主要采集并记录了两个关键的 16 位 ADC 值:
- 0 mmHg(零压)下的 ADC 值:作为系统基准零点。
- 100 mmHg下 的 ADC 值:用于计算传感器的灵敏度(即每 10mmHg 对应的 ADC 步进值)。
2. 校准数据的EEPROM 存储
为了防止设备在使用过程中因静电或意外操作导致校准数据损坏,底层的 EEPROM 写入采取了 "校验和 + 冗余备份" 的设计:
- 3字节存储结构 :每个 16 位数据占用 3 个字节 =
低 8 位+高 8 位+校验和(低8位+高8位)。 - 双重备份机制 :例如 100 mmHg 的校准数据,主数据存放在
0x09~0x0B,备份数据存放在0x0C~0x0E。系统开机读取时,如果主数据的校验和不匹配,会自动偏移读取备份数据。
二、 气泵 PWM 控制与"缓启动"算法
气泵的控制不能简单地"开或关",不同的目标充气压力等级设计和气囊充气数量下,需要有不同的气泵输出功率相匹配,从而能更好平衡充气速度和气压采集的准确性,因此需要通过 PWM 动态调节转速。
1. PWM控制 与查表法
为了兼顾不同压力档位和不同气室容积的充气效率,气泵的占空比(Duty)采用了双维度的查表补偿策略:
- 基础转速:根据设定的目标压力(80~250 mmHg)查表。压力越高,基础占空比越大。
- 阀门数量补偿:开启的气阀(腔体)越多,气流分流越大,需要额外增加占空比,提高输出功率。
如设定 80mmHg 且开启单个阀门时的 PWM 计算
- 查基础表,80mmHg 对应的基础占空比为
42%。 - 查补偿表,开启 2个气囊对应的补偿值为
15%。 - 总百分比 =
42 + 15 = 57%。
2. 保护硬件的"缓启动"逻辑
如果占空比瞬间从 0 飙升到 60%,巨大的启动电流会冲击电池甚至导致 MCU LVR 复位。代码中可引入了斜启动(Soft Start) :设定目标占空比后,实际输出的 Duty 会在设定时间内逐级递增,直至达到目标值,实现了气泵的平滑启动。
三、 充气与压力闭环控制逻辑
当设定好目标压力后,系统是如何精准在目标点停泵的?这依赖于底层与应用层的协同:
- 目标计算 :利用公式
目标 ADC = 零点ADC + (设定压力 * 传感器灵敏度)计算出理论停止点。 - 底层防抖检测:如底层硬件每 30ms 读取一次 ADC。为了防止气流波动造成的误判,必须**连续 N 次(如 5 次)**检测到 ADC ≥ 目标 ADC,才认定气压达标,一旦达标,立即切断气泵,并将对应的气阀切换为"保压"状态。
四、 压力补偿
因为结构的原因,气压传感器通常采集的气压点离气泵输出口较近,因此系统采集的这个气压通常比气囊内的压力大,造成气囊实际气压达不到设定值,因此靠软件参数来弥补"因管路配置造成的压降",如何获得这些参数就必须在不同的压力档位和开启的气囊数量的组合下进行实际的测试。
本文为原创技术分享,欢迎点赞、收藏与转发。转载请注明出处!