|
有时我们希望使用Arduino控制交流供电设备,如电灯、风扇或其他家用电器。但由于Arduino工作电压为5V,因此无法直接控制这些更高电压的设备。这时我们就可以使用继电器模块了。您可以使用继电器模块来控制交流电源,然后使用Arduino来控制继电器。
本文将主要介绍如何设置单通道继电器模块实现打开电灯或其他设备,首先让我们先简要了解一下继电器。
继电器如何工作? 继电器是一种电磁开关,由相对较小的电流操作,可以控制更大的电流。
以下是一个简单的动画,来说明继电器如何使用一个电路打开另一个电路。
最初,第一个电路关闭并且没有电流流过,直到某些东西(传感器或开关闭合)将其打开。第二个电路也关闭。
当小电流流过第一个电路时,它会激活电磁铁,从而在其周围产生磁场。通电的电磁铁将第二个电路中的触点吸合,关闭开关并允许更大的电流流过第二个电路。
当电流停止流动时,触点回到原来的位置,再次关断第二个电路。
继电器基础知识 通常继电器有5个引脚,其中三个是连接到您要控制的设备的高压端子(NC、COM和NO)。
市电连接在继电器的公共端子 (COM) 。使用NC和NO端子取决于您是要打开还是关闭设备。
在其余两个引脚之间,有一个线圈,其作用类似于电磁铁。
当电流流过线圈时,电磁铁会充电并移动开关的内部触点。此时常开(NO)端连接到公共端(COM),常闭(NC)端断开。
当电流停止流过线圈时,内部触点返回其初始状态,即常闭 (NC) 端子连接到公共 (COM),常开 (NO) 端子重新打开。
这被称为单刀双掷开关 (SPDT)。
单通道继电器模块 在本文,我们将使用一个单通道继电器模块。然而,市面上还有其他具有两个、四个和八个通道的模块。您可以选择最适合您需求的一种。
该模块设计用于仅从Arduino切换单个大功率设备。它有一个在250VAC或30VDC时额定电流高达每通道10A的继电器。
发光二极管 继电器模块上有两个LED指示继电器的位置。
模块通电时,电源LED灯点亮。当继电器激活时,状态LED点亮。
输出接线端子 我们将继电器的三个通道分接到蓝色螺钉式接线端子。通道按功能标记:公共 (COM)、常闭 (NC) 和常开 (NO)
COM(Common,公共端):这是您应该连接到您计划切换的信号(在我们的例子中为市电)的引脚。 NC(Normally Closed,常闭端):当您想要默认关闭继电器时,使用常闭配置。在此配置中,继电器始终关闭并保持关闭,直到您从Arduino向继电器模块发送信号以打开电路。 NO(Normally Open,常开端):常开配置以另一种方式工作,继电器始终打开,直到您从Arduino向继电器模块发送信号以关闭电路。
控制引脚 在模块的另一侧,有三个引脚 - 一个接地引脚和一个VCC 引脚为模块供电,一个输入引脚 IN 用于控制继电器。
输入引脚为低电平有效,这意味着当您将引脚拉低时继电器将被激活,而当您将引脚拉高时继电器将变为无效。
单通道继电器模块的引脚 让我们看一下单通道继电器模块的引脚排列。
控制引脚: IN 引脚用于控制继电器。它是一个低电平有效引脚,这意味着当您将引脚拉低时继电器将被激活,而当您将引脚拉高时继电器将变为非活动状态。 GND 是接地连接。 VCC 引脚为模块供电。 输出引脚: COM 引脚连接到您计划切换的信号。 NC 引脚默认连接到COM引脚,除非您从Arduino向继电器模块发送信号以断开连接。 NO 引脚默认是打开的,除非您从Arduino向继电器模块发送信号以建立连接。
使用Arduino UNO开发板连接单通道继电器模块 现在我们了解了有关继电器模块的一切,是时候使用它了!让我们设置继电器模块来点亮一盏电灯。
首先将模块上的VCC引脚连接到Arduino上的5V,GND引脚接地。将数字引脚#6连接到IN输入引脚以控制继电器。
您还需要将继电器模块与您尝试控制的交流供电设备连接。您必须切断带电的交流线,并将切断的电线的一端连接到 COM,另一端连接到NC或NO,具体取决于您希望设备的初始状态。
如果您的AC设备大部分时间都处于关闭状态,而您偶尔想打开它,则应将另一个连接到NO。如果设备大部分时间都处于开启状态,请连接到NC。
对于这个项目,我们希望我们的灯在静止状态下关闭,并在激活继电器时点亮,因此我们将一端置于COM,另一端置于NO。
下图显示了接线。
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);
复制代码
|