有时我们希望使用Arduino控制交流供电设备,如电灯、风扇或其他家用电器。但由于Arduino工作电压为5V,因此无法直接控制这些更高电压的设备。这时我们就可以使用继电器模块了。您可以使用继电器模块来控制交流电源,然后使用Arduino来控制继电器。
本文将主要介绍如何设置单通道继电器模块实现打开电灯或其他设备,首先让我们先简要了解一下继电器。
继电器如何工作? 继电器是一种电磁开关,由相对较小的电流操作,可以控制更大的电流。
以下是一个简单的动画,来说明继电器如何使用一个电路打开另一个电路。
最初,第一个电路关闭并且没有电流流过,直到某些东西(传感器或开关闭合)将其打开。第二个电路也关闭。
当小电流流过第一个电路时,它会激活电磁铁,从而在其周围产生磁场。通电的电磁铁将第二个电路中的触点吸合,关闭开关并允许更大的电流流过第二个电路。
当电流停止流动时,触点回到原来的位置,再次关断第二个电路。
继电器基础知识 通常继电器有5个引脚,其中三个是连接到您要控制的设备的高压端子(NC、COM和NO)。
市电连接在继电器的公共端子 (COM) 。使用NC和NO端子取决于您是要打开还是关闭设备。
在其余两个引脚之间,有一个线圈,其作用类似于电磁铁。
当电流流过线圈时,电磁铁会充电并移动开关的内部触点。此时常开(NO)端连接到公共端(COM),常闭(NC)端断开。
当电流停止流过线圈时,内部触点返回其初始状态,即常闭 (NC) 端子连接到公共 (COM),常开 (NO) 端子重新打开。
这被称为单刀双掷开关 (SPDT)。
两路继电器模块 本文中我们将使用两通道继电器模块。然而,市面上还有其他具有两个、四个和八个通道的模块。您可以选择最适合您需求的一种。
该模块设计用于仅从Arduino切换两个大功率设备。它有一个在250VAC或30VDC时额定电流高达每通道10A的继电器。
继电器模块上有两个LED灯指示继电器的位置。每当激活继电器时,相应的LED都会亮起。
这些模块的优点之一是它们带有两个光耦合器IC,可在继电器和Arduino之间提供良好的隔离。
输出接线端子 我们将继电器的三个通道分接到蓝色螺钉式接线端子。通道按功能标记:公共 (COM)、常闭 (NC) 和常开 (NO)
COM(Common,公共端):这是您应该连接到您计划切换的信号(在我们的例子中为市电)的引脚。 NC(Normally Closed,常闭端):当您想要默认关闭继电器时,使用常闭配置。在此配置中,继电器始终关闭并保持关闭,直到您从Arduino向继电器模块发送信号以打开电路。 NO(Normally Open,常开端):常开配置以另一种方式工作,继电器始终打开,直到您从Arduino向继电器模块发送信号以关闭电路。
控制引脚 在模块的另一侧,有4个引脚 - 一个接地引脚和一个VCC引脚为模块供电,两个输入引脚IN1和IN2用于控制继电器。
输入引脚为低电平有效,这意味着当您将引脚拉低时继电器将被激活,而当您将引脚拉高时继电器将变为非活动状态。
电源选择跳线 请注意,该模块有一个连接VCC和JD-VCC引脚的跳线帽。
跳线帽允许您选择电路是否物理连接到Arduino开发板。
安装跳线帽后,继电器的电磁铁直接由Arduino供电。这时继电器模块和Arduino之间没有物理隔离。
如果没有跳线帽,则必须提供独立的电源,通过JD-VCC引脚为继电器的电磁铁供电。这种配置在内置光耦合器的帮助下将继电器模块与Arduino物理隔离。
两路继电器模块引脚 让我们看一下两路继电器模块的引脚排列。
控制引脚: VCC 引脚为内置光耦合器和继电器的电磁铁供电(如果已安装跳线) GND 是公共接地连接。 IN1 & IN2 引脚用于控制继电器。这些是低电平有效引脚,这意味着当您将引脚拉低时继电器将被激活,而当您将引脚拉高时继电器将变为非活动状态。 电源选择引脚: JD-VCC 为继电器的电磁铁供电。当安装跳线后时,它会从Arduino的5V获取电源。如果没有跳线帽,您必须将其连接到独立电源。 VCC 跳线帽打开时,此引脚短接到 JD-VCC 引脚。如果您移除跳线,请保持此引脚未连接。 GND 是公共接地连接。 输出引脚: COM 引脚连接到您计划切换的信号。 NC 引脚默认连接到COM引脚,除非您从Arduino向继电器模块发送信号以断开连接。 NO 引脚默认是打开的,除非您从Arduino向继电器模块发送信号以建立连接。
使用Arduino UNO开发板连接两路继电器模块 现在我们了解了有关继电器模块的一切,是时候使用它了!让我们设置继电器模块来点亮一盏电灯。
首先将模块上的VCC引脚连接到Arduino上的5V,GND引脚接地。将数字引脚#6连接到IN1输入引脚以控制第一个继电器。
您还需要将继电器模块与您尝试控制的交流供电设备连接。您必须切断带电的交流线,并将切断的电线的一端连接到 COM,另一端连接到NC或NO,具体取决于您希望设备的初始状态。
如果您的AC设备大部分时间都处于关闭状态,而您偶尔想打开它,则应将另一个连接到NO。如果设备大部分时间都处于开启状态,请连接到NC。
对于这个项目,我们希望我们的灯在静止状态下关闭,并在激活继电器时点亮,因此我们将一端置于COM,另一端置于NO。
下图显示了接线。
在上面的接线图中,我们保留了跳线,因此继电器的电磁铁将直接从Arduino驱动。这时继电器模块和Arduino不会在物理上相互隔离。
如果您想让它们保持隔离,则必须通过JD-VCC引脚提供独立电源。下图显示了如何执行此操作。
Arduino代码 现在我们的硬件都设置好了,让我们看一下打开灯的代码。
这是一个很简单的代码,它将打开灯,3秒后熄灭灯,然后3秒后再次点亮灯。 - int RelayPin = 6;
- void setup() {
- // Set RelayPin as an output pin
- pinMode(RelayPin, OUTPUT);
- }
- void loop() {
- // Let's turn on the relay...
- digitalWrite(RelayPin, LOW);
- delay(3000);
-
- // Let's turn off the relay...
- digitalWrite(RelayPin, HIGH);
- delay(3000);
- }
复制代码
代码说明 使用Arduino控制继电器模块就像控制LED一样简单。草图首先声明继电器模块的输入引脚连接到的引脚。
在setup()函数中,我们将该引脚定义为输出。 - pinMode(RelayPin, OUTPUT);
复制代码
在loop()函数中,我们分别通过将继电器引脚拉低/高来打开/关闭设备。
digitalWrite(RelayPin, LOW) 将引脚拉低,digitalWrite(RelayPin, HIGH) 将引脚拉高。 - digitalWrite(RelayPin, LOW);
- delay(3000);
- digitalWrite(RelayPin, HIGH);
- delay(3000);
复制代码
|