Arduino控制继电器:原理与实践指南
Arduino控制继电器:原理与实践指南
继电器是Arduino项目中常用的扩展模块,它能够帮助Arduino控制高电压设备。本文将详细介绍继电器的工作原理、连接方法以及如何使用Arduino控制继电器,适合Arduino初学者学习。
在之前的教程中,我们学习了如何打开/关闭LED。在本教程中,我们将学习如何打开/关闭某种使用高压电源的设备(例如灯泡、风扇、电磁锁、线性执行器等)。
控制LED和控制灯泡有什么共同之处和区别?
共同点:就像控制LED一样,我们使用Arduino的输出引脚来打开/关闭它们。
区别:
- 对于LED,我们可以使用Arduino板(≤ 5v)的电源。因此,我们可以将LED直接连接到Arduino的引脚。
- 对于灯泡,我们必须使用另一种电源(高电压和/或大电流),这可能会烧毁Arduino。因此,我们无法将灯泡直接连接到Arduino的引脚。我们需要在Arduino的引脚和灯泡之间使用继电器来保护Arduino免受高电压/电流的影响。
关于继电器
继电器是一种可编程的电气开关,可以由Arduino或任何微控制器控制。它用于以编程方式控制使用高电压和/或高电流的设备的开/关。
它是Arduino和高压设备之间的桥梁。
警告
当您制作连接到电源电压的项目时,您需要知道自己在做什么,否则您可能会震惊自己。这是一个严肃的话题,我们希望您安全。如果您不是 100% 确定自己在做什么,请帮自己一个忙,不要碰任何东西。问问知道的人!
尽管某些类型的继电器同时支持直流和交流设备,但我们强烈建议您使用直流设备 (≤24V) 进行测试。
继电器引脚排列
继电器有两组引脚:输入(低压)组和输出(高压)组。
输入组中的引脚连接到Arduino,包括三个引脚:
DC- 引脚:需要连接到 GND (0V)
DC+ 引脚:需要连接到 VCC (5V)
IN引脚:接收来自Arduino的控制信号
输出组中的引脚连接到高压器件,包括三个引脚(通常在螺丝端子中):
COM引脚:是常用引脚。它用于常开模式和常闭模式
NO 引脚:是常开引脚。它在常开模式下使用
NC引脚:常闭引脚。它在常闭模式下使用
在实践中,我们通常不会使用高压组中的所有引脚。我们只使用其中两种:
- 如果我们使用常开模式,我们只使用 COM 引脚和 NO 引脚。
- 如果我们使用常闭模式,我们只使用 COM 引脚和 NC 引脚。
此外,如果继电器同时支持低电平和高电平触发,则通常有一个跳线可以选择以下两种触发之一:低电平触发或高电平触发。
※ 注意事项:
继电器模块引脚的顺序可能因制造商而异。始终使用印在继电器上的标签。仔细看!
如何将高压设备连接到继电器
它是如何工作的
根据制造商和用户的安装,继电器的工作方式可能有所不同。
输入模式(用于 IN 引脚):有两种输入模式使继电器相反地工作:
低电平触发模式
高电平触发模式
输出模式(用于输出引脚):有两种输出模式使继电器相反地工作:
常开模式
常闭模式。这些模式正好相反。
“通常”表示“如果 IN 引脚连接到 LOW (0V)”。
在详细介绍之前,让我们先看一些快速信息:
- 常开和常闭模式相反
- 大多数继电器模块支持常开和常闭模式
- 低电平触发和高电平触发模式相反
- 并非所有继电器模块都支持低电平触发和高电平触发模式
- 一次,继电器模块只能在两个低电平触发和高电平触发模式之一下工作
输入模式模式和输出模式模式的组合创造了许多用例。如果您是初学者,我们建议您使用 HIGH 级别触发模式和常开模式
因为 LOW 电平触发和 HIGH 电平触发模式的工作方式相反,因此接下来将详细解释 HIGH 电平触发模式。LOW 电平触发器的工作方式相反。
HIGH 电平触发 - 常开模式
要使用此模式,我们需要将高压设备连接到 COM 引脚和 NO 引脚。
- 如果 IN 引脚连接到 LOW (0V),则开关断开。设备处于关闭(或非活动状态)。
- 如果 IN 引脚连接到高电平 (5V),则开关闭合。设备处于打开(或活动)状态。
HIGH 电平触发 - 常闭模式
要使用此模式,我们需要将高压器件连接到COM引脚和NC引脚。
- 如果 IN 引脚连接到低电平 (0V),则开关闭合。设备处于打开(或活动)状态。
- 如果 IN 引脚连接到高电平 (5V),则开关断开。设备处于关闭(或非活动状态)。
最多有 8 个用例。它可能会使您超负荷。但是,如果您是新手,则只需要关心前两种情况,即使用高电平触发和常开。本教程的其余部分将使用这两个用例
Arduino通过控制继电器来控制高压设备。
控制继电器很简单。我们只需要:
- 将Arduino的引脚连接到继电器的IN引脚
- 通过将引脚编程为低电平或高电平来控制继电器
接线图
如何为继电器编程
- 使用 pinMode() 函数将 Arduino 的引脚配置为数字输出模式。例如,引脚 3:
pinMode(3, OUTPUT);
- 使用 digitalWrite() 函数将引脚编程为低电平 (0V):
digitalWrite(3, LOW);
- 使用 digitalWrite() 函数将引脚编程为高电平 (5V):
digitalWrite(3, HIGH);
Arduino代码
/*
* Created by ArduinoGetStarted.com
*
* This example code is in the public domain
*
* Tutorial page: https://arduinogetstarted.com/tutorials/arduino-relay
*/
// constants won't change
const int RELAY_PIN = 3; // the Arduino pin, which connects to the IN pin of relay
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin as an output.
pinMode(RELAY_PIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(RELAY_PIN, HIGH);
delay(500);
digitalWrite(RELAY_PIN, LOW);
delay(500);
}
快速步骤
- 复制上面的代码并使用Arduino IDE打开
- 单击Arduino IDE上的“上传”按钮,将代码上传到Arduino
- 查看 LED 灯条状态:闪烁