继电器模块让 Arduino 或 ESP32 的小信号去开关一个完全独立的电路——12V 风扇、5V 水泵、LED 灯条。控制侧接 5V、GND 和一个 GPIO,负载接在公共(COM)和常开(NO)上,先在低压直流上练熟,再谈 240V 市电的事。本文讲的就是 MakerHub 在卖的这款板子——包括让很多人误以为“继电器反了”的 HIGH/LOW 触发跳线。
继电器模块到底是做什么的?
继电器模块就是一个电控开关:线圈把触点从一个位置吸到另一个位置,板上的光耦和驱动三极管让微控制器引脚可以安全地控制这个线圈。MakerHub 板子上那块蓝色继电器是 Songle SRD-05VDC-SL-C,它的 5V 线圈吸合时大约消耗 71mA——远超 GPIO 引脚应该输出的电流,这正是这个模块存在的意义。
三个输出端子可以想象成一条走廊、两扇门:
| 端子 | 含义 | 继电器闲置时的状态 |
|---|---|---|
| COM | 公共(Common)——活动触点 | 始终在电路中 |
| NO | 常开(Normally Open) | 断开——线圈吸合之前负载保持关闭 |
| NC | 常闭(Normally Closed) | 接通——线圈吸合之前负载保持开启 |
几乎所有项目都该用公共(COM)加常开(NO),这样在你的代码打开负载之前它一直是断电的。这颗继电器是单刀双掷(SPDT):COM 任何时候只贴着其中一扇门,绝不会同时碰两扇。

该买哪一款继电器模块?
下面的 1 路和 2 路继电器模块是同一套电路——同样的红色 PCB、接线端子、光耦、指示 LED 和触发选择跳线——按你要开关几路负载来选就行。Arduino Uno 兼容板(CH340G)带哪一款都轻松。
零件清单
HIGH/LOW 触发跳线是干什么的?
HIGH/LOW 触发跳线——三针排针上一个小黑帽,旁边标着 H 和 L——决定哪个逻辑电平让继电器吸合。跳线帽在 L 位时,板子是低电平触发:IN 被拉低(LOW)时继电器吸合;在 H 位时,则是 IN 被驱动为高(HIGH)时吸合。
网上大多数教程默认的是老式固定低电平触发的板子,所以它们的程序在跳线放 H 位的板子上会反着跑——而且出厂位置每批货都可能不一样。别靠猜;看清楚你手上这块板的跳线帽压在哪一对针上。
接任何负载之前先做一分钟测试:输出端子空着,给板子上电,用程序切换 IN,一边看通道 LED 一边听咔哒声。如果动作和代码相反,就挪跳线帽,或对调程序里的 ON/OFF 常量——什么都没接的时候,继电器反着动作毫无代价。

继电器模块怎么接 Arduino Uno?
继电器模块的引脚是六个螺丝位:控制侧 DC+、DC− 和 IN,输出侧 NO、COM 和 NC——两边都是接线端子(screw terminal),不是排针。IN 只驱动光耦内部的 LED——每通道 15–20mA 的负载——而线圈那约 71mA 走的是 DC+;Uno 的 GPIO 每个引脚只标称 20mA,这就是为什么线圈绝不挂在引脚上。
| 继电器端子 | Arduino Uno | 用途 |
|---|---|---|
| DC+ | 5V | 线圈和光耦供电(每路吸合约 71mA) |
| DC− | GND | 接地 |
| IN | D7 | 触发信号(15–20mA,光耦输入) |
先从低压负载开始——带独立电源的 12V 风扇最合适;同样的接法也用来驱动我们 Arduino 自动浇花项目里的 5V 水泵。
| 从 | 到 | 说明 |
|---|---|---|
| 12V 电源(+) | 继电器 COM | 电源从这里进入开关 |
| 继电器 NO | 风扇红线 | 常开(NO)让风扇默认保持关闭 |
| 风扇黑线 | 12V 电源(−) | 完成负载回路 |

下面的程序两种跳线位置都能用——把两个常量改成和你的板子一致:
// 继电器模块 + Arduino Uno——开关 12V 风扇
// 控制侧:DC+ -> 5V,DC- -> GND,IN -> D7
// 负载侧:12V 电源(+)-> COM,NO -> 风扇(+),风扇(−)-> 电源(−)
const int RELAY_PIN = 7;
// 按你的触发跳线位置修改这两个常量:
// 跳线在 L(低电平触发):引脚为 LOW 时继电器吸合(用 LOW / HIGH)
// 跳线在 H(高电平触发):引脚为 HIGH 时继电器吸合(用 HIGH / LOW)
const int RELAY_ON = LOW;
const int RELAY_OFF = HIGH;
void setup() {
digitalWrite(RELAY_PIN, RELAY_OFF); // 在引脚开始驱动前先定义好 OFF 状态
pinMode(RELAY_PIN, OUTPUT);
}
void loop() {
digitalWrite(RELAY_PIN, RELAY_ON); // 风扇开 5 秒
delay(5000);
digitalWrite(RELAY_PIN, RELAY_OFF); // 风扇关 5 秒
delay(5000);
}
ESP32 的 3.3V 能触发 5V 继电器模块吗?
ESP32 的 3.3V 逻辑电平在实际使用中可以可靠触发这类 5V 光耦板:DC+ 从开发板的 5V/VIN 引脚取电,两边共地,IN 直接接 3.3V 的 GPIO。光耦只需要点亮内部 LED 的那一点电流,对这种板子来说 3.3V 通常够用。
两句实话。DC+ 千万别接 3.3V 引脚——线圈是按 5V 绕的。另外,光耦输入电阻各批次会有差异,所以拿到新板先做空载咔哒测试;偶尔会有批次就是偏好真 5V 触发。3.3V 与 5V 逻辑电平的来龙去脉,我们在 ESP32、ESP8266 与 Uno 对比里讲得很清楚。
这个继电器模块能开关 240V 市电吗?
Songle 继电器外壳上印着 10A 250VAC / 10A 30VDC,这个额定值是真的——但它说的是那块密封的蓝色继电器本体,而不是把整块裸模块当成品用。模块有裸露的接线端子,没有外壳,PCB 布局也没有针对马来西亚潮湿环境做爬电距离设计,所以它本身只是一个元件,不是电器开关。数据手册自己的表格还比外壳印字更保守:
| 额定值 | 出处 | 对你意味着什么 |
|---|---|---|
| 10A 250VAC / 10A 30VDC | 印在继电器外壳上 | 触点本身的认证上限 |
| 10A 125VAC / 7A 240VAC / 7A 28VDC | 数据手册,Form C 阻性负载 | 在马来西亚的 240V 下,按 7A 规划——不是 10A |
| 3A(cosΦ=0.4,120VAC/28VDC 条件下) | 数据手册,感性负载——240VAC 感性额定值根本没有公布 | 电机、水泵和电磁阀能用的预算低得多 |
还有法律这一层:根据马来西亚《1994 年电力条例》(Electricity Regulations 1994),即便是住家的单相布线,也必须在 Suruhanjaya Tenaga(能源委员会)注册的合格人员——持牌 wireman(注册电工)或电气承包商——的监督下进行。固定的 240V 布线是他们的工作,不是周末实验。
如果项目确实需要开关市电电器,成熟的做法是:装外壳、加保险丝、用额定规格足够的电缆、通电时绝不触碰端子——而且市电部分由合格人员施工或检查。我们刻意不发布 240V 的操作教程;请在 12V 上把逻辑练熟,在那里犯错是学费,而不是事故。下面这条视频冷静地讲了开关交流电到底涉及什么:

为什么电机和电磁阀要格外小心?
电机、水泵、电磁阀和变压器会把能量存在磁场里,继电器触点断开的瞬间,这些能量会在触点间隙拉出电弧。电弧会把触点烧出麻点,最终把触点焊死,这正是数据手册把感性额定值降到 3A 的原因。用量要远低于外壳印的数字;直流感性负载要并联一个续流二极管,交流负载则在触点两端加 RC 缓冲电路(snubber)来压住电弧。(模块自己的线圈已经带了二极管——这里说的是你要开关的那个负载。)
真实客户常犯的错误
因为教程这么写,就默认板子是低电平触发。经典的“继电器反着动作”反馈,几乎都是触发跳线的位置和程序常量相反。先查跳线,再查代码。
负载接到了常闭(NC)而不是常开(NO)。症状是一通电负载就转,代码说开它反而停。把线从 NC 挪到 NO;用万用表的通断挡分别量 COM 与各端子之间,几秒钟就能看出区别。
DC+ 接了 3.3V 引脚。继电器抖动、嗡嗡响,或干脆不吸合。光耦输入受得了 3.3V,线圈受不了——DC+ 永远给 5V。
把绝缘皮夹进了接线端子。接线端子(screw terminal)喂什么夹什么,包括塑料。剥出 5–6mm 铜线,插到底,拧紧,然后每根线都拉一下测试——夹住绝缘皮的接头在台面上能用,之后会突然失效。
让电机跑满外壳印的额定值。10A 是阻性负载的天花板,不是电机的预算。感性负载按 3A 算并加缓冲电路,或者换一个余量足够大的继电器。
常见问题
继电器模块需要单独的电源吗?
在 Uno 的 5V 上带一两路,不需要——按每路吸合约 71mA 做预算。如果多路继电器同时保持吸合,或者继电器一咔哒板子就掉电重启,就给 DC+ 单独配一路 5V 电源,并把两边的地连在一起。
这个 5V 继电器模块能用 12V 供电吗?
不能。线圈按 5V 绕制,数据手册限定线圈电压最高为标称值的 120%——也就是 6V。12V 系统里,把电源降压到 5V 供给 DC+,负载的 12V 留在触点侧——那才是它该在的地方。
用这个模块开关烧水壶或电饭锅安全吗?
裸板放桌上直接开关,不安全。市电电器是 240V 级别的活:要外壳、保险丝、额定规格足够的电缆,并且按马来西亚法规,布线要由持牌 wireman(注册电工)施工或检查。先在 12V 负载上搭出同样的逻辑——代码原封不动就能搬过去。
1 路和 2 路模块有什么区别?
按单路看是同一套电路——同样的 Songle 继电器、光耦输入、触发跳线、接线端子。2 路板多了一块继电器和一个 IN2 端子,两路同时吸合时,约 71mA 的线圈预算要算两份。
最后更新:2026年8月。有问题?WhatsApp 联系我们。



Arduino Uno Compatible SMD UNO R3 with Type B Cable - ATMEGA328P with CH340G-Microcontroller Project
Relay Module 3.3V 5V 12V 1/2/4/8 Ways Optocoupler Trigger Relay Module 1 2 4 8 Channel Relay Module - 5V RELAY MODULE(1WAY)
Relay Module 3.3V 5V 12V 1/2/4/8 Ways Optocoupler Trigger Relay Module 1 2 4 8 Channel Relay Module - 5V RELAY MODULE(2WAY)