硬件版本: 1.2 - 兼容的电路板 Arduino Uno、Mega、Leonardo--... 许可证: CC BY-SA 4.0
https://github.com/felis/USB_Host_Shield_2.0/raw/master/images/shield.jpg
如果遇到无法打开的页面,请阅读本文
概述
这款专业级 Arduino 屏蔽将继电器控制、多协议传感器接口和强大的电源管理集成到一个可堆叠模块中。它专为工业自动化、楼宇管理系统和物联网应用而设计,在控制逻辑和大功率电路之间提供电隔离,同时提供全面的保护功能。该屏蔽通过精心设计的电子电路实现了三个核心子系统,确保了在电气噪声环境中的可靠性。
主要功能
- 4x 隔离继电器
额定 10A/250VAC 开关的 SPDT 继电器,在 Arduino GPIO 和高压电路之间具有光耦合器隔离(5kV RMS)。每个继电器都具有 MOSFET 驱动器,可抑制背向 EMF。 - 多协议传感器接口
8 个模拟输入端(0-5V 范围,带抗混叠滤波器)、4 个数字输入/输出端(3.3V/5V 容差),以及专用的 I²C 和 SPI 总线连接器(带适当的上拉电阻器)。 - 智能电源管理
双路输入能力(6-24V DC,通过桶状插孔或接线端子)为高效降压转换器(5V@2A)和 LDO 稳压器(3.3V@500mA)供电,具有极性反接保护和过流保护功能。 - 安全认证设计
符合 EN 61010-1(II 类过电压)标准,具有适当的爬电/间隙距离、热降额规定和瞬态电压抑制功能。
硬件实施细节
继电器控制子系统
继电器模块采用级联保护方式:
- 信号隔离 - PC817 光耦合器可在 Arduino GPIO(D4-D7)和电源电路之间建立 5kV 隔离屏障
- MOSFET 驱动器 - IRF520 N 沟道 MOSFET 可提供足够的电流(≥ 500mA)为继电器线圈通电
- 背面电磁场保护 - 1N4007 反激二极管可在线圈断电时钳制电压尖峰
- 接触保护 - 继电器触点上的 RC 缓冲器网络(0.1µF + 47Ω)可抑制电弧
继电器与敏感元件的距离≥10 毫米,采用 40mil 电源线,以尽量减少大电流开关时的电压降。
// 带安全联锁的继电器控制示例</em
#define PUMP_RELAY 4
#define SAFETY_INTERRUPT 2
void setup() {
pinMode(PUMP_RELAY, OUTPUT);
attachInterrupt(digitalPinToInterrupt(SAFETY_INTERRUPT), emergencyShutdown, FALLING);
}
void loop() {
// 正常泵循环</em
digitalWrite(PUMP_RELAY, HIGH);
delay(300000); // 5 分钟开启</em
digitalWrite(PUMP_RELAY, LOW);
delay(600000); // 10 分钟 OFF
}
void emergencyShutdown() {
digitalWrite(PUMP_RELAY, LOW); // 立即切断电源</em
while(1); // 锁定状态,直到复位</em
}
传感器接口架构
传感器子系统采用三级调节方法:
- 输入保护
- 5.1V 齐纳二极管箝位过压事件
- 1kΩ 串联电阻限制故障电流
- TVS 二极管可抑制 ESD 瞬变
- 信号调节
- 二阶抗混叠滤波器(1kΩ + 100nF ),截止频率为 160Hz
- 用于高压传感器的可配置分压器(跳线可选)
- 界面灵活性
- 数字输入/输出:施密特触发器输入,具有抗噪功能
- I²C:4.7kΩ 上拉,与 3.3V/5V 设备兼容
- SPI带独立接地平面的缓冲信号
电源管理系统
电源架构采用多级调节策略:
- 输入保护级
- SS34 肖特基二极管可防止反向极性损坏
- P6KE15A TVS 二极管可吸收瞬态电压
- 可复位多芯保险丝(2.5A 保持电流)限制故障电流
- 直流-直流转换
- 初级调节:LM2678 降压转换器(12V 输入时效率为 92%)
- 次级调节:AMS1117 LDO 提供清洁的 3.3V 电压轨
- 电源路径选择:跳线可选择 USB 或外部电源
- 输出分配
- 带独立接地平面的专用传感器电源接头
- 大容量电容(470µF)可在继电器接通时维持电压
- 星形接地拓扑结构最大限度地减少了噪声耦合
技术规格
继电器性能
| 参数 | 价值 | 说明 |
|---|---|---|
| 联系配置 | 单刀双掷(表格 C) | 先断后连操作 |
| 最大开关量 | 10A @ 250 伏交流,10A @ 30 伏直流 | 电阻负载 |
| 线圈功率 | 每个继电器 70mA @ 5V | 四项总计 280 毫安 |
| 机械寿命 | 10⁷ 操作 | 空载状态 |
| 电气寿命 | 10⁵ 操作 | 额定负载 |
电力系统特性
| 输出 | 调节器 | 波纹 | 最大电流 | 保护 | 效率 |
|---|---|---|---|---|---|
| 5V | LM2678 | ≤50mV | 2A 连续 | OCP、OTP、UVLO | 92%@12V |
| 3.3V | AMS1117 | ≤10mV | 500 毫安 | 热关机 | 85%@5V 输入 |
安全实施
防护罩包含多个保护层:
- 电隔离
- 5kV 光隔离器将控制域和电源域分开
- 高/低电压段之间的爬电距离为 3 毫米
- 热管理
- 降压转换器集成电路下的散热孔
- 80% 继电器电流容量降额规则
- 故障遏制
- 高压线迹周围的保护环
- 用于关键安全功能的焊接跳线
重要安全通知:
在切换电感负载(电机、电磁阀)时,一定要使用外部缓冲电路。板载 RC 网络仅适用于 5A 以下的电阻负载。通过继电器的连续电流不得超过 8A。
应用实例
工业电机控制系统

图 TB
A[Arduino UNO] --> B[继电器保护罩]
B --> C[三相电机启动器]
B --> D[PT100温度传感器]
B --> E[4-20mA压力变送器]
D -->| 模拟 A0| B
E -->|I²C| B
C -->|Relay1-3| B
B --> F[24V直流电源]
实施说明:
- 使用联锁逻辑防止继电器同时接通
- 通过 EEPROM 存储的系数实现传感器校准
- 为集成 PLC 增加 MODBUS 通信功能
智能温室控制器
#include
#include
void readEnvironmentalSensors() {
// I²C 温度/湿度</em
sensors_event_t temp, humidity;
dht.temperature().getEvent(&temp);
dht.humidity().getEvent(&humidity);
// 模拟土壤湿度</em
int moistureRaw = analogRead(SOIL_SENSOR);
float moisture = map(moistureRaw, 0, 1023, 0, 100);
// 控制逻辑</em
if (humidity.relative_humidity < 60 || moisture < 40) {
digitalWrite(IRRIGATION_RELAY, HIGH);
delay(300000); // 5 分钟浇水</em
digitalWrite(IRRIGATION_RELAY, LOW);
}
}
常见问题
可以,但功率共享需要仔细规划。通过软件禁用未使用的继电器digitalWrite(RELAY_PIN, LOW))) 并提供辅助冷却。最多两个屏蔽罩,外置 2A 电源。
在模拟输入端跨接一个 250Ω 的精密电阻,以转换为 1-5V 范围。以获得最佳效果:
通过 JP2 选择 24V 电源模式
将传感器+ 连接至 24V_OUT
将传感器连接至 250Ω 电阻器
将电阻结点连接到模拟输入端
这表明线圈功率不足。解决方案:
在 5V 继电器电源上添加 470µF 电容器
验证电源是否能提供 ≥1A 的电流
检查连接器上的电压降
启用 RELAY_HOLD 软件模式(降低线圈电流 30%)
支持与贡献
错误报告: 金鑫洋
硬件支持: [email protected] (包括原理图片段)
捐款: 参见 贡献.md 设计指南




