首页 » 智能家居 » 用Arduino控制交流设备的3种方法

用Arduino控制交流设备的3种方法

福州有家装饰工程通讯 2025-02-12 0

扫一扫用手机浏览

文章目录 [+]

本文翻译自科普大神DroneBotWorkshop.com文章,浅近易懂适宜新手入门译者:DIY百事

目录

用Arduino控制交流设备的3种方法 用Arduino控制交流设备的3种方法 智能家居

1 弁言

用Arduino控制交流设备的3种方法 用Arduino控制交流设备的3种方法 智能家居
(图片来自网络侵删)

2 安全第一!
2.1互换电2.2安全事情台设置

3 掌握互换设备3.1硅掌握器整流器(SCR)3.2三极管互换开关(TRIAC)3.3固态继电器(SSR)3.4继电器3.5继电器模块

4 将继电器模块与Arduino一起利用4.1继电器模块连接4.2继电器模块示意图

5 在Arduino上利用固态继电器5.1固态继电器连接5.2固态继电器示意图

6 IoT掌握继电器

7 结论

由于大多数人可能希望掌握利用市电电压的设备,因此我们将特殊把稳安全性。

先容

您可以利用Arduino掌握很多东西。
显示器,LED和其他设备可以轻松地连接到I / O引脚,并可以通过大略的Sketch代码进行掌握。

但是Arduino或任何微掌握器上的输出端口仅设计用于掌握逻辑级设备。
与任何必要逻辑电平以上旗子暗记的接口都将须要外部组件。

我们已经理解了如何利用BJT(双极结型晶体管)或MOSFET掌握直流操作的设备。
利用这些组件,我们可以掌握电压和电流,否则会破坏我们的微掌握器。

掌握互换设备须要不同的技能。
可以掌握直流电流的半导体只能通过部分互换波形,因此不能直接用于掌握互换电。

接下来我们磋商一下掌握互换电的技能。

但是,在研究利用Arduino掌握互换的任何方法之前,我们须要谈论一个非常主要的考虑成分-安全性。

安全第一!

只管您可能只打算掌握低压互换设备,但您更有可能想学习如何掌握插入家庭或办公室插座的设备。
毕竟,打开台灯比打开LED有用得多。

但是,在开始操持如何利用几个Arduino来掌握全体房屋之前,您须要考虑利用高压互换电源所涉及的危险。

互换电

互换电(AC)与直流电(DC)的不同之处在于,互换电不断改变极性,在预定频率下像正弦波一样在正负之间振荡。

请把稳,常见的互换电压是220V, 打仗如此高的电压可能很危险,实际上,这可能是致命的!

以下是利用AC的一些辅导原则:

切勿直接用高压互换电进行试验。
切勿将高压互换电连接到无焊面包板上。
切勿将高压直接连接到微掌握器的I / O引脚(或任何引脚)。
始终在互换电源关闭的情形下事情。
用万用表确认电源确实关闭。
始终在通电之前用万用表测试您的接线。
请勿使高压设备在无人扼守时通电。
如果离开,请务必断开电路电源,以免造成他人侵害。
如果没有履历,请勿考试测验利用高压互换电。

我将向您展示一种安全的互换电源和Arduino实验方法。

在本文的结尾,我将向您展示利用预制产品掌握互换设备的最安全方法是什么。

安全事情台设置

如上所述,您永久都不想在事情台上利用220 VAC进行试验。
我利用降压变压器来安全地利用互换电–该设备将互换电压降压至较低水平。
我选择了28伏变压器,由于它的电压足够低,可以安全利用,但又足够高,可以与固态继电器一起利用(稍后会详细先容)。

选择降压变压器后,您还须要负载进行测试。
我利用了一些28伏的白炽灯泡,但纵然是功率电阻器也可以办理问题。
您常日可以从较旧的设备中拆下一个变压器来用。

掌握互换设备

接下来学习如何利用Arduino或其他逻辑电平设备掌握这些电压。

这样做的方法不止一种,我们将先容个中的几种。

晶闸管(SCR)

SCR是已存在很永劫光的组件,并且已创造它可用于调光器和电机速率掌握之类的设备中。

SCR

在许多方面,您都可以将SCR视为“可开关二极管”。
施加到栅极的直流电压将许可电流流过阳极和阴极。
但是,当然,由于该设备的行为非常类似于二极管,因此具有相同的特性-它仅许可电流沿一个方向流动。

SCR的互换输入

SCR的输出 被部分斩波

因此,实际上,SCR在传导直流电方面要比互换电更好。
那为什么要利用它们呢?

答案是您须要利用个中两个,将阳极和阴极颠倒并且连接在一起。
这将许可电流在两个方向上流动。

双向晶闸管(TRIAC)

背对背连接两个SCR是掌握AC的一种方法,但更好的方法是双向晶闸管TRIAC。

TRIAC实质上与单个封装中的两个反向连接的SCR完备相同。
使之成为用于开关和掌握AC的空想半导体。

从灯调光器到加热器控件,您会在许多设备中找到TRIAC。
实际上,它们是我们列表中下一个AC掌握器设备中的关键组件之一。

固态继电器(SSR)

固态继电器内部在输出端具有TRIAC,在输入端具有光耦。

SSR示意图

光耦是一种大略的设备,在封闭的包装中带有红外LED和光电晶体管。
点亮LED将打开光电晶体管,实质上是通过光学连接传输数字旗子暗记。
在没有电气连接的情形下,光隔离器是将高压和低压分开的一种好方法。

这种配置使固态继电器成为通过Arduino等微掌握器安全掌握互换电流的空想组件。
这是我建议的两个组件之一。

但是,固态继电器并不完美。
您须要理解一些特色:

它们比仅仅购买TRIAC和光隔离器还要昂贵。
他们中的许多型号都无法在较低的电压下事情,因此掌握低压互换电将须要另一种技能。
我在演示中利用的那个至少须要24 VAC,这便是为什么我要试验28 VAC变压器的缘故原由。
它们让AC正弦波轻微失落真。
但大多数设备不会受到影响。

对付用于互换开关的半导体办理方案,固态继电器是一个不错的选择。

继电器

继电器是机电组件,而不是电子组件。
它的存在韶光比您更长,最早的电报系统中的继电器可以追溯到1835年。

继电器的事情事理非常大略。
继电用具有一个线圈,该线圈充当电磁体。
当电流施加到线圈时,它产生的磁场会吸引金属臂,称为“电枢”。
电枢用作开关中的臂,当继电器被激活时连接到一个极,而在不被激活时连接到另一个。
当电流从线圈中经由时,继电器内的弹簧将其拉回到其静止位置。

由于继电器实质上是电磁体和开关,因此其规格是双重的:

线圈规格,包括所需的电压和花费的电流。
开关规格,包括配置和电流/电压容量。

SPDT(单刀双掷)和DPDT(双刀双掷)开关配置是最常见的,但是也有带有四个或更多刀极的专用继电器。

由于它们实质上是机器开关,以是继电器非常适宜同时开关AC和DC。
而且,只管这项技能已经由时,但它们本日仍在大量利用,并且将利用很永劫光。

与其他办理方案比较,继电用具有许多上风:

它们实质上是一个电磁体和一个开关,因此非常易于利用。
它们很便宜。
它们可用于各种线圈电压和电流额定值。
它们可用于互换和直流低压旗子暗记。
它们不会以任何办法失落真,放大或修正开关旗子暗记。

当然,继电器也有一些缺陷。

首先,继电器线圈常日花费比Arduino上的数字I / O端口更多的电流。
因此,您须要利用晶体管来驱动它,而不是直接将继电器连接到Arduino。
根据线圈规格,您可能还须要单独的电源。

其次,当继电器被激活时,电枢被拉向线圈的动作会产生与施加到线圈的极性相反的电脉冲。
此脉冲称为“反电动势”,可能会破坏用于驱动继电器的晶体管。

办理第二个问题的方法是在继电器线圈上安装一个二极管,以接管反电动势。

其他一些继电器问题:

作为机电设备,继电器对振动和冲击敏感。
一段韶光后,继电器触点会磨损或起弧,从而使连接性能低落乃至破坏继电器。
继电器线圈比半导体办理方案花费更多的电流,因此并不真正适宜电池供电的设计。
请记住,只要继电器处于活动状态,其线圈就会花费电流。

因此,只管它们并不完美,但继电器仍旧是掌握互换电的绝佳办理方案。

为了使它们更安全,更随意马虎利用,我们将连续进行下一个选择-继电器模块。

继电器模块

继电器模块只是一个已经安装了晶体管驱动器和反电动势抑制二极管的继电器。
许多继电器模块的输入端还装有一个光电隔离器,从而增加了一层隔离。

继电器模块常日还有的另一个是螺钉端子,用于将开关设备连接到该螺钉端子。
这样可以大大简化输出端高压互换电的安全接线。

继电器模块有多种样式,有些只有一个继电器,有些最多有32个继电器。
它们可以绑在一起以利用Arduino电源或独立的电源。

简而言之,继电器模块使继电器与诸如Arduino之类的微掌握器的接口连接成为一项大略的任务。
因此,它们以及固态继电器是我推举的将Arduino与高压AC设备接口的两种方法。

在Arduino上利用继电器模块

我们将利用继电器模块开始Arduino接口实验。
您可以将任何模块与一个或多个继电器一起利用。
实际上,我在实验中利用的模块是双继电器模型,我仅利用个中一个继电器。

驱动继电器模块时,应把稳它们常日为“低电平有效”,这意味着您须要向它们发送LOW(0)旗子暗记以激活继电器。
如果恰巧碰着“高电平有效”模块,则可以变动代码以利用HIGH(1)逻辑而不是LOW逻辑。
另一个乃至更大略的办理方案是将输出负载连接到相反的一组触点(NC代替NO)。

为了使实验更加有趣,我利用了光敏电阻(LDR)来感测光,并在光敏电阻降至特定水平以下时激活继电器。

这实际上使该实验变成了一个实用的项目,您可以在光芒低于一定水平时打开或关闭某些东西(例如灯)。

继电器模块连接

此处解释了继电器模块实验的连接。

险些可以利用任何LDR,也可以用其他电阻设备代替它,例如热敏电阻(电阻温度传感器)。
我利用的电阻为10k,但您可以考试测验利用不同的值来“微调”您的LDR。

在继电器模块上,您将在“ VCC”和“ JD-VCC”引脚之间看到跳线的位置。
您须要在此处插入跳线,以便从Arduino电源为继电器供电。
我们可以这样做,由于我们仅在模块中利用一个继电器,如果您想利用两个或多个继电器,那么最好自己供应电源并卸下跳线。

我的输出负载是我的28VAC变压器和一个28伏的白炽灯泡。
对付此实验,任何负载和任何低压都将起浸染。

连线后,您可以加载一些代码。

继电器模块代码

此处用了光敏电阻加继电器:

/LDR Relay Demoarduino-ldr-relay.inoUses LDR to drive relay module in low lightRelay module is active LOWDroneBot Workshop 2020https://dronebotworkshop.com///Integers for LDR input pin and valueint ldrPin = A0;int ldrValue = 0;// Integer for Relay module output pinint relayOut = 8;// Integer for threshold point (change as required)int thresholdPoint = 700;void setup() {// Setup relay pin as outputpinMode(relayOut, OUTPUT);// Setup serial monitor to check LDR readingsSerial.begin(9600);}void loop() {// Get the sensor valueldrValue = analogRead(ldrPin);// Print value to serial monitorSerial.println(ldrValue);// See if value is below thresholdif (ldrValue < 700) {// Turn module on (active LOW)digitalWrite(relayOut, LOW);} else {// Turn module off (active LOW)digitalWrite(relayOut, HIGH);}// Short delaydelay(100);}

这是一个非常大略的代码,它所要做的只是丈量仿照输入上的电压电平,并在继电器降至指定电平以下时触发继电器。

它通过定义整数来表示代表输入引脚,所得的仿照输入值以及用于继电器输出的引脚,从而进行陈述。
这些引脚都不是至关主要的,因此您可以根据须要利用其他引脚。

定义了另一个整数来表示阈值,即继电器将触发的点。
您可能须要考试测验调度该值来实现适宜您的实际情形。

在Setup中,用于继电器的引脚定义为输出。
串口监视器也已初始化,您可以利用它来监视从LDR得到的读数,并利用该值来确定最佳阈值。

在loop中,将读取传感器值并将其分配给ldrValue变量。
然后,在if-else语句中利用该值来确定要采纳的操作。

如果该值低于设定的阈值,则继电器被激活。
请把稳,当继电器模块输入变为LOW时,继电器将被激活,这彷佛违反常规,但这是大多数继电器模块的事情办法。
如果恰巧是个高电压输入使能的,则须要相应地变动代码。

否则,将继电器输出设置为高电平以关闭继电器。

末了,我们运用较短的韶光延迟,以防止在光芒水平靠近阈值时继电器“抖动”。
这也可以防止由于短暂的光芒不敷而触发系统(即有人走在传感器前面)。

将代码加载到Arduino并不雅观察操作。
当LDR暴露在光芒下时,继电器模块将处于非活动状态,并且白炽灯的互换负载将关闭。
如果光芒降到特定水平以下(您可以将手指放在LDR上以将其遮挡),则继电器模块应触发。

大略的电路,但是有很多潜在的运用。

在Arduino上利用固态继电器

不才一个实验中,我们将利用带有四个固态继电器(SSR)的模块。
我们将利用它来构建走马灯效果。

为了安全起见,我将在事情台上利用28伏灯泡,但该电路也可用于驱动全尺寸灯泡,以创建真正的走马灯。
您也可以轻松地对其进行修正,使其具有四个以上的单元。

固态继电器连接

走马灯的连接图示如下:

如果没有4-SSR模块,则可以更换为四个单独的固态继电器,该模块可以简化接线。

其余,只管我在输出上只显示了四个白炽灯泡,但实际上在测试中利用了八个。
我并联了其他四个灯泡。

电位器只是一个10K的可调电阻,但很不错,任何超过5K的可调电阻都可以正常事情。

接好线后,我们接下来看代码。

固态继电器代码

再次,我们在项目中利用了一个大略的代码,但是,此代码确实解释了一种减少代码的技能,而我以前从未向您展示过这种代码。
因此,作为学习履历也很有代价!

/Solid State Switch Chaser Demoarduino-ssr-chaser.inoFour Solid State Switches used to control chaser with AC lightsPotentiometer controls chaser speedSolid State Switches are active LOWDroneBot Workshop 2020https://dronebotworkshop.com/// Integer to define the number of output pinsint outputPins = 4;// Array with pin numbersint pins[] = {11, 10, 9, 8};// Integers for potentiometer connection and valueint speedControl = A0;int speedValue = 0;void setup() {// Define pins as outputs and set them HIGHfor (int i = 0; i < outputPins; i++) {// Set pin as outputpinMode(pins[i], OUTPUT);// Set it HIGH to turn off SSRdigitalWrite(pins[i], HIGH);}}void loop() {// Get speed control value and map to delay range (adjust as required)speedValue = map(analogRead(speedControl), 0, 1023, 40, 400);// Cycle through outputs, make active output LOWfor (int i = 0; i < outputPins; i++) {// Set output at index LOW to turn on SSRdigitalWrite(pins[i], LOW);// Delay perioddelay(speedValue);// Set output at index HIGH to turn off SSRdigitalWrite(pins[i], HIGH);}}

我们定义的第一个整数是outputPins,它定义了我们要掌握的引脚数。
如果要利用多于(或少于)四个输出,则可以相应地调度此变量的值。

“减少代码”技能从第二个定义开始。
我没有定义代表四个输出引脚的离散变量,而是将它们放置在数组中。
请把稳,阵列中引脚的顺序表示它们将在走马灯中排序的顺序。
您可以根据须要添加其他输出引脚或变动顺序。
接下来的两个整数定义了速率掌握电位计的仿照输入以及该仿照输入电压的值。
在setup中,您可以真正看到“代码缩减”的事情办法。
我们须要将所有四个引脚定义为输出。
我们还须要设置它们,使其初始化为HIGH状态,这将在首次启动项目时使固态继电器保持关闭状态。
常日,我们须要八行代码来实行此操作。
如果我们扩大输出数量,我们将须要更多,而利用10个输出,我们将须要20行代码来完成此任务。
但是,由于我们的输出引脚是在数组中定义的,因此我们可以利用更少的代码。
我们利用fo-loop在数组元素之间循环,对付每个元素,我们将其分配为输出并将其设置为HIGH。
在循环中,我们得到仿照输入的值并将其映射到产生合理韶光延迟的范围,这导致我们可以用电位计调度走马灯的移动速率。

您可能须要在此处进行一些变动,以根据您的个人需求自定义项目:

您可以将范围(40-400)变动为更得当的范围。
数字越小,速率最快,速率越高,速率越慢。
但请记住白炽灯泡无法像LED一样快地做出反应。
如果希望电位计沿相反的方向操作,则可以反转数字,许多人可能会以为更直不雅观。

在得到速率(韶光延迟)后,我们进入另一个for循环,就像我们在setup中所做的那样。
这次,我们循环读取值并将其设置为低(以激活固态继电器)。
然后,在由电位器位置确定的延迟韶光内,使SSR保持激活状态,然后将输出设置为HIGH,以关闭SSR。

结果是固态继电器将按顺序激活,从而产生“走马灯”效果。

加载代码并不雅观察输出。
如果您的SSR模块与我利用的模块相似,那么您也该当在模块“追逐”上看到LED指示灯。

如前所述,您可以进行调度以微调性能。

这只是一个可爱的小演示,但可以用作构建真实的全尺寸走马灯组件的实用电路。

物联网掌握继电器

IoT继电器。
它实质上是一个盒子中的机器继电器,带有隔离的掌握电路。

该设备有四个插座。
个中两个处于常开状态,因此在施加掌握旗子暗记时它们会打开。
一个是常闭的,因此在收到旗子暗记时将其关闭。
末了一个始终打开,方便为Arduino本身供电。

IoT继电器上的掌握输入可以通过一定范围的电压激活,包括直流和互换。
在直流侧,它可以在低至3.3伏的电压下激活,使实在用于3.3伏和5伏逻辑器件的掌握。

操作很大略–施加掌握电压,继电器就被激活。

在***中,我演示了IoT继电器与Arduino的结合利用。
我将继电器输入的正极连接到Arduino输出引脚13,负极连接到Arduino地面。
如预期的那样,将高电平旗子暗记发送到引脚13将激活继电器。

对付代码,我只是利用了经典的Blink代码!
结果是闪烁的灯光。

如果要利用Arduino或任何微掌握器或微型打算机掌握互换电,这是一种非常好且非常安全的方法。

结论

能够掌握互换设备确实可以扩展您可以利用Arduino构建的项目数量,但必须安全进行。
在隔离的低压互换电源上进行试验是在开拓过程中保持安全的一种方法。

在往后的文章和***中,我将向您展示如何打开和关闭AC设备,以及如何调节AC以掌握灯泡或空间加热器的输出亮度。

相关文章

用Arduino控制交流设备的3种方法

本文翻译自科普大神DroneBotWorkshop.com文章,浅近易懂适宜新手入门译者:DIY百事目录1 弁言2 安全第一!2....

智能家居 2025-02-12 阅读 评论0

智造向未来荆州智能家电家当成长不雅观察

近年来,我市抢抓绿色智能需求爆发、企业技能迭代加速风口,大力推进数字赋能、技改提能、制造焕新,赋能全市工业智能化转型。今年元至8月...

智能家居 2025-02-12 阅读0 评论0