如何将5V继电器与3.3V arduino pro mini一起使用?


12

我正在为家庭自动化项目使用几个arduino pro mini(3.3V),并希望在最终的PCB设计中添加继电器,以打开和关闭某些功能。

由于我想使用5V继电器,例如:HF 46F 5V,微型HF电源继电器,5 V,1 NO 5 A

我不知道如何用arduino切换此继电器,因为pro mini在引脚上仅具有3.3V的输出?arduino由3.7V锂离子电池驱动。

另一个问题是如何在高压下安全使用继电器?(除了PCB上高低压部分之间的走线宽度和走线间隔),先谢谢您!


1
为什么不选择低压继电器?您链接的模型有3V版本。您可能会发现3.7V足以闭合某些较高电压继电器的触点。它会在数据表中说。链接继电器的最小“拾取”电压为3.75V,因此它不起作用。我没有长期破坏继电器的经验,因此我不能肯定地说您应该依靠这种技术。
CharlieHanson '16

从为Arduino供能的更高电压的PSU运行继电器,并从3.3 V稳压器上卸下负载。您正在寻找MOSFET或晶体管开关。这个SE网站上有数千篇与此相关的文章。
晶体管

1
@CharlieHanson,即使线圈电压匹配,控制器也无法提供/吸收足够的电流来直接驱动继电器。您将始终需要某种缓冲阶段。
jippie

@jippie我没有说控制器曾经可以。由于这是评论而不是答案,所以我认为没有必要对当前问题进行抒情评论。
CharlieHanson '16

为什么要为该电池供电,而不使用来自负载电源的电源?即使您要为MCU电池供电以用于备用,也要使用来自负载电源的电源来运行开关元件(继电器等),如果没有主电源来运行负载,则点击继电器不会有太多好处,如果不使用继电器线圈,则电池寿命会大大改善。
克里斯·斯特拉顿

Answers:


10

有很多方法可以将5V器件连接到3.3V输出引脚。

//已编辑原始/可接受的答案可以在下面找到。此编辑部分应该是原始部分的改进版本。

请记住,这个答案是用于驱动继电器的,如果您要在〜3A的电流下切换20VDC,则MOSFET将是更好/更便宜的解决方案,因为您不需要继电器。

输出引脚不应用于驱动任何东西。输出信号是低电流控制信号。从输出引脚直接驱动LED(如果使用足够高的限流电阻)在某种程度上是可以接受的,但是由于多个引脚上的总电流也可能受硬件限制,因此可能会导致问题。对于通信,有时可以使用3.3V,因为它可以注册为逻辑高电平,但对于任何重要的应用程序,最好不要依赖它。

您可以选择可以在低电压/低电流下工作的继电器。最好的选择是“固态继电器”,因为它们不需要给线圈通电,并且可以在低电压/电流下工作。检查规格以找到适合您需求的规格。

通常,您希望通过5V USB或9V插头为3.3V设备供电。这些电源通常可以提供给继电器线圈通电所需的功率。您将必须制作电路板的控制信号,并在继电器线圈上切换“输入电源”。(TODO添加图表,我目前无法,请给我12小时)

请注意,某些继电器突破已经具有用于此的电路。并且您的输入电压不应高于/低于线圈的额定电压。您的电源应能够为继电器提供足够的电流。

线圈可能“突然”消耗大量电流,您可能会看到板上的电压下降或复位。通常,电源的响应速度不够。您可以通过添加一个电容器来“缓冲”电源来解决此问题,以便在线圈需要通电的那一刻可以释放它,并且不会使电路板上的其余部分失去电力。

//结束编辑

  1. 只需连接即可。(错误的方法)**

这可能在某些情况下可行,但在这种情况下不行。继电器会吸收太多电流。对于连接低电流数据连接,它可以正常工作,因为3.3V可能被视为逻辑高电平。

2. Arduino方式。

购买TTL逻辑电平转换器-https: //www.sparkfun.com/products/12009

当在信号输入端给定3.3V电压时,这块小板将改变输出5V。但是,唯一的问题是,板子的输入将需要5V。

3.电子方式。

您可以轻松地使用晶体管或MOSFET来切换另一个(更高)电流。这与选项2并没有太大的区别,但是有点复杂,但更便宜。

4.另一种方式,像老板。

在Stack-Exchange / Google中搜索存在相同问题的人员。我发现您实际上可以将3.3V升压至5V,因此不需要5V电源。 https://www.circuitsathome.com/dc-dc/33v-to-5v-dc-dc-converter

5.解决方法

获取一个可以根据电池电压工作并且可以从3.3V触发的继电器。您可以考虑这样的事情:http : //www.ebay.com/itm/5PCS-3V-3-3V-Relay-High-Level-Driver-Module-optocouple-Relay-Module-for-Arduino-/331413255692

它具有光耦合器,可将arduino与实际继电器隔离。最好在电池电压范围内实际使用一个电池。这样您就可以将其连接到电池(以及Arduino的信号引脚)上。因此,线圈不会被arduino直接激活,这会吸收过多的电流。

6.使用5V电源

如果您确实愿意,可以扭转局面。您可能想使用USB移动电源(或某些自制/自备的电路)为pro mini供电,pro mini将能够直接采用5V电压。(https://www.arduino.cc/zh/ Main / ArduinoBoardProMini

现在,您可以使用选项2、3或5使用5V为继电器供电。


@jippie你是对的,当我看到它时立即对其进行了编辑。
Paul

谢谢!我认为使用3V继电器会更好,在这种情况下,我不需要稳压器(它占用了很多我没有的空间)。<br/>我会选择便宜的中文Songle SRD- 03VDC-SL-C(我仅将其用于20V DC以下的电压)为了安全地驱动Songle继电器,我需要一个晶体管和一个二极管(如果我输入错了,请纠正我)。我将使用NPN 2N2222和1N4007,如果可以的话。这是我的示意图的外观(D5是数字arduino引脚5; GND.2是arduino的GND): 链接
Henry

@亨利我不太了解电子学/示意图,但这行不通。您需要将电池与线圈串联,然后将晶体管用作“开关”。因此,Arduino可以激活晶体管,并让电池的更高电流流向繁重的工作。我可以检查是否可以绘制原理图,但是明天就可以了。
保罗

是的,我意识到我在上面混了些东西:D我用了一点点谷歌搜索并结束了这个新的布线:链接 是否正确?提前致谢!
亨利

@Henry,我在想这样的东西:wired.com/geekdad/wp-content/uploads/2012/09/relay_driver.jpg只是google:“晶体管驱动继电器电路”,您不是第一个这样做的人,所以无需重新发明轮子(在这种情况下:)
保罗

2

该电路可以解决您的问题。我希望它也适用于3.3 V电源和5V继电器。为了解释它起作用的原因,请在链接页面中引用:

“该电路允许12v继电器在6v或9v电源上工作。大多数12v继电器需要大约12v才能“上拉”,但会“保持”在6v左右。220u通过2k2和底部二极管充电。当输入将大于1.5v的电压施加到电路的输入端,两个晶体管都导通,电解两端的5v导致电子的负端低于0v轨约4.5v,这将使整个继电器产生10v的电压。”

在此处输入图片说明


5V是从哪里来的?
CharlieHanson '16

我错过了没有其他供应的观点。更新了电路。感谢您通知我。
阿布巴卡

0

找到一个具有3.3伏线圈的继电器,或者。。。

您将需要获得(或创建)5伏电源。

如果您搜索“升压突围”,您会发现可以将3.3v升压至5伏的产品。像这样的设备将花费几美元。

或者,如果您正在驱动交流电路,则可以直接使用3.3伏的TRIAC驱动器电路。

也可以考虑使用SSR(固态继电器)。

编辑:基于评论,我刚刚意识到您将需要一个晶体管(MOSFET)来驱动继电器的线圈。


您的修改会使整个答案无效。一旦有了晶体管(实际上,双极晶体管要比FET更好),MCU电压至少在3.3v及更高范围内几乎不会出现问题。
克里斯·斯特拉顿
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.