资讯详情

用 Arduino 实现带继电器的拨动开关

f64071e4837ed3b9b44650618b58ec2d.png

在许多情况下,我们需要通过程序实现相同的按钮对应的多个操作,如开关按钮,然后关闭(注意,这里指的是轻触摸按钮,而不是通过自开关);另一个例子是播放按钮,按下播放,然后按下暂停。

现在我们将在此开关下连接继电器,通过拨动开关控制接入设备。

为了更简单、更清晰地呈现中继触发控制的原理,我做了这个小项目。项目原理图和线路连接如上图所示。

所需材料:

继电器 X 1

330Ohm 电阻 X 2

晶体管 NPN 2N2222 X 1

二极管 1N4148 X 1

按钮 X 1

LED X 1

按钮连接上拉电阻,需要二极管拦截从继电器线圈返回的电流。这被称为续流二极管(或飞轮二极管)。

工作原理:我在这里使用一个按钮作为拨号开关,它可以模拟打开和关闭,而不是两个按钮。对于继电器上的负载,暂时只使用Led来演示。

这部分类似的项目大多被忽略了。用欧姆表找到线圈端子的位置。它的价值大约不到100欧姆。找到线圈上没有电压的触点并关闭NC(常闭)~0Ohm。(其他触点NO(常开)开路电阻相同。

根据原理图正确连接晶体管E(发射极),B(基极),C(集电极)。

/*********************

Simple toggle switch

Created by: P.Agiakatsikas

*********************/

int button = 8;

int led = 13

int status = false;

void setup(){

pinMode(led, OUTPUT);

pinMode(button, INPUT_PULLUP); // set the internal pull up resistor, unpressed button is HIGH

}

void loop(){

//a) if the button is not pressed the false status is reversed by !status and the LED turns on

//b) if the button is pressed the true status is reveresed by !status and the LED turns off

if (digitalRead(button) == true) {

status = !status;

digitalWrite(led, status);

} while(digitalRead(button) == true);

delay(50); // keeps a small delay

}

f64071e4837ed3b9b44650618b58ec2d.png

如果你需要 Proteus 点击此处下载文件。

之前还有一篇《用》 Arduino 实现最简单的拨动开关,这里提供了更简单的 Arduino 保持和切换开关状态的使用范例。

标签: l型线圈端子式继电器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台