用AD8232搭建实时心电监护:从面包板接线到滚动心率波形
【免费下载链接】AD8232_Heart_Rate_MonitorAD8232 Heart Rate Monitor项目地址: https://gitcode.com/gh_mirrors/ad/AD8232_Heart_Rate_Monitor
心脏的电信号只有 0.5–5 mV,比面包板上任何一根线里的噪声都小几个数量级。AD8232 芯片把信号放大 100 倍并滤除干扰,得到可读的心电(ECG,心电图)波形。开源项目 AD8232_Heart_Rate_Monitor 提供了完整的接线、固件与显示代码,一块 AD8232 模块加一块 Arduino、一个面包板,就能得到实时滚动的心电波形和数字心率读数。
能力全景:放大、报警、数心跳的文件分别在哪
| 能力 | 对应文件 | 说明 |
|---|---|---|
| 心电前端放大与滤波 | AD8232 模块(SparkFun SEN-12650) | 增益 100 倍,内置滤波器抑制工频噪声和基线漂移 |
| 脱落检测(判断电极是否贴好) | Heart_Rate_Display_Arduino.ino | 读引脚 10/11,导联脱落时改为发送警告字符 |
| 实时波形与平均心跳 | Heart_Rate_Display.pde | Processing 程序,取最近 500 次心跳间隔求平均得到 BPM(每分钟心跳次数) |
| 原理图与 PCB 布局 | AD8232_Heart_Rate_Monitor.sch、AD8232_Heart_Rate_Monitor.brd | 自画板或直接送 PCB 厂 |
| 拼板生产文件 | Production Files 目录 | v10 拼板文件,可直接投产 |
硬件侧只有三样:AD8232 模块、Arduino Pro Mini 3.3V、FTDI 串口转换模块(让电脑通过 USB 与 Arduino 通信的芯片板),全部插在面包板上,不用焊接。
最小上手路径:接线、烧录与运行显示
接线共 5 步:
- 模块 3.3V 引脚接板子 3.3V,两边 GND 相连(模块是 3.3V 电平,接 5V 会烧)
- 模块 OUTPUT 引脚接 A0(模拟输入,读取放大后的波形)
- LO+ 与 LO- 接数字引脚 10 和 11(脱落检测用)
- FTDI 模块 TX、RX 接板子 RX、TX,GND 接 GND(建立与电脑的串口链路)
- 贴三个电极:RA 右锁骨下、LA 左锁骨下、RL 右下腹(这是三电极单导联放置法,皮肤先用酒精擦一遍保证接触)
软件两步:
- 用 Arduino IDE 打开上面的 .ino 文件,板子选 "Arduino Pro 3.3V/8MHz" 并选对端口,上传(9600 波特率已写死在代码里)
- 用 Processing 打开 .pde 文件,选择同一个串口,运行
输出结果怎么读:红色波形、蓝线与数字
窗口内容分三部分,分别对应不同状态:
- 红色滚动波形:正常数据。波形应每秒出现一个尖锐的 R 波尖峰,其余时间是小幅抖动
- 蓝色水平线:导联脱落报警,波形固定在 512,即 1024 档 ADC(模数转换器,把电压变成 0–1023 的数字)量程的中点
- 左上角数字:演示版实际显示的是当前 ADC 采样值而非平均心率,真正的均值存在 BPM 变量里;想显示均值,把
draw()里text("BPM: " + inByte, ...)的inByte改成BPM - 判断标准:静息时尖峰大约每 0.8–1 秒出现一次;波形平直或尖峰模糊时,先查电极接触
关键参数怎么解读:9600、620 与 500
Processing 程序里的心跳判定依赖一个阈值参数,摘录如下:
float threshold = 620.0; // Threshold at which BPM calculation occurs if (inByte > threshold && belowThreshold == true) { calculateBPM(); belowThreshold = false; }- 9600:两端串口波特率,一端不匹配波形就会乱码或不出数据
- 620:超过该 ADC 值判定为一次心跳;波形幅度偏低时调小更容易计数,但噪声可能被误判
- 500:参与平均的心跳间隔个数,均值平滑但有延迟
- delay(1):.ino 中把采样限制在约每秒 1000 点,防止串口数据溢出
边界与注意事项:做不了什么、容易错在哪
- 不是医疗器械:数据只用于学习和日常参考,不能用于诊断
- 5V 引脚:FTDI 模块的 5V 输出不要接到板子的 3.3V 电源引脚,5V 会损伤 3.3V 板
- 运动伪影:手臂一动基线就跳,测量时保持静止或用胶布固定电极
- 工频干扰:50Hz 交流声在远离调光开关、电动工具后明显减小
- 接触不良:单导联放置对皮肤接触很敏感,电极没贴好会直接出蓝线
资源入口:目录索引与 clone 地址
目录索引:
- /Fritzing:接线示意图与 Fritzing 工程文件
- /Hardware:Eagle 原理图(.sch)与 PCB 布局(.brd)
- /Production Files:v10 拼板生产文件
- /Software:Arduino 与 Processing 演示程序
获取项目:
git clone https://gitcode.com/gh_mirrors/ad/AD8232_Heart_Rate_Monitor硬件设计基于 Creative Commons Share-alike 3.0 许可,软件代码采用 Beerware 许可,均可自由修改与再使用,商用采用硬件设计时需署名。
【免费下载链接】AD8232_Heart_Rate_MonitorAD8232 Heart Rate Monitor项目地址: https://gitcode.com/gh_mirrors/ad/AD8232_Heart_Rate_Monitor
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考