Arduino - 继电器
Arduino - 继电器
In a previous tutorial, we have learned how to turn on/off an LED. In this tutorial, we are going to learn how to turn on/off some kind of devices that use the high voltage power supply(such as a light bulb, fan, electromagnetic lock, linear actuator…).
在之前的教程中,我们学习了如何打开/关闭 LED。在本教程中,我们将学习如何打开/关闭某种使用高压电源的设备(例如灯泡、风扇、电磁锁、线性执行器等)。
How To Scan Keypad
如何扫描键盘
What are the common and difference between controlling LED and controlling a light bulb?
控制LED和控制灯泡有什么共同之处和区别?
The common: Just like controlling LED, we use the Arduino’s output pin to turn on/off them.
共同点:就像控制LED一样,我们使用Arduino的输出引脚来打开/关闭它们。
The difference: 区别:
- For LED, we can use power from the Arduino board (≤ 5v). Therefore, we can connect LED directly to Arduino’s pin.
对于LED,我们可以使用Arduino板(≤ 5v)的电源。因此,我们可以将 LED 直接连接到 Arduino 的引脚。 - For the light bulb, we MUST use another power source (high voltage and/or high current), which can burn Arduino. Therefore, we CANNOT connect the light bulb directly to Arduino’s pin. We need to use a relay between Arduino’s pin and light bulb to protect Arduino from high voltage/current.
对于灯泡,我们必须使用另一种电源(高电压和/或大电流),这可能会烧毁Arduino。因此,我们无法将灯泡直接连接到Arduino的引脚。我们需要在Arduino的引脚和灯泡之间使用继电器来保护Arduino免受高电压/电流的影响。
About Relay 关于Relay
A relay is a programmable electrical switch, which can be controlled by Arduino or any micro-controller. It is used to programmatically control on/off the devices, which use the high voltage and/or high current.
继电器是一种可编程的电气开关,可以由Arduino或任何微控制器控制。它用于以编程方式控制使用高电压和/或高电流的设备的开/关。
It is a bridge between Arduino and high voltage devices.
它是Arduino和高压设备之间的桥梁。
WARNING
When you are making projects that are connected to mains voltage, you need to know what you are doing, otherwise, you may shock yourself. This is a serious topic, and we want you to be safe. If you’re NOT 100% sure what you are doing, do yourself a favor and don’t touch anything. Ask someone who knows!
当您制作连接到电源电压的项目时,您需要知道自己在做什么,否则您可能会震惊自己。这是一个严肃的话题,我们希望您安全。如果您不是 100% 确定自己在做什么,请帮自己一个忙,不要碰任何东西。问问知道的人!
Although some kinds of relays support both DC and AC devices, We highly recommend you to use a DC device (≤24V) for testing.
尽管某些类型的继电器同时支持直流和交流设备,但我们强烈建议您使用直流设备 (≤24V) 进行测试。
Relay Pinout 继电器引脚排列
Relay has two groups of pins: input (low voltage) group and output (high voltage) group.
继电器有两组引脚:输入(低压)组和输出(高压)组。
-
Pins in the input group are connected to Arduino, including three pins:
输入组中的引脚连接到Arduino,包括三个引脚:-
DC- pin: needs to be connected to GND (0V)
DC- 引脚:需要连接到 GND (0V) -
DC+ pin: needs to be connected to VCC (5V)
DC+ 引脚:需要连接到 VCC (5V)
IN pin: receives the control signal from Arduino
IN引脚:接收来自Arduino的控制信号 -
-
Pins in the output group are connected to the high voltage device, including three pins (usually in screw terminal):
输出组中的引脚连接到高压器件,包括三个引脚(通常在螺丝端子中):- COM pin: is the common pin. It is used in both normally open mode and normally closed mode
COM引脚:是常用引脚。它用于常开模式和常闭模式 - NO pin: is normally open pin. It is used in the normally open mode
NO 引脚:是常开引脚。它在常开模式下使用 - NC pin: is normally closed pin. It is used in the normally closed mode
NC引脚:常闭引脚。它在常闭模式下使用
- COM pin: is the common pin. It is used in both normally open mode and normally closed mode
-
In practice, we usually do NOT use all of the pins in the high voltage group. We use only two of them:
在实践中,我们通常不会使用高压组中的所有引脚。我们只使用其中两种: -
We use only COM pin and NO pin if we use normally open mode.
如果我们使用常开模式,我们只使用 COM 引脚和 NO 引脚。 -
We use only COM pin and NC pin if we use normally closed mode.
如果我们使用常闭模式,我们只使用 COM 引脚和 NC 引脚。 -
Additionally, if the relay supports both LOW and HIGH level triggers, there is usually a jumper to select one of two: LOW level trigger or HIGH level trigger.
此外,如果继电器同时支持低电平和高电平触发,则通常有一个跳线可以选择以下两种触发之一:低电平触发或高电平触发。 -
※ NOTE THAT: ※ 注意事项:
The order of the relay module’s pins can vary between manufacturers. ALWAYS use the labels printed on the relay. Look closely!
继电器模块引脚的顺序可能因制造商而异。始终使用印在继电器上的标签。仔细看! -
How to Connect the High Voltage Device to Relay
如何将高压设备连接到继电器
-
How It Works 它是如何工作的
-
Depending on manufacturers and user’s installation, a relay can work differently.
根据制造商和用户的安装,继电器的工作方式可能有所不同。 -
The input mode mode (for IN pin): There are two input modes that make relay works oppositely:
输入模式模式(用于 IN 引脚):有两种输入模式使继电器相反地工作: -
LOW level trigger mode 低电平触发模式
-
HIGH level trigger mode HIGH电平触发模式
-
The output mode mode (for output pins): There are two output modes that make relay works oppositely:
输出模式模式(用于输出引脚):有两种输出模式使继电器相反地工作: -
normally open mode 常开模式
-
normally closed mode. These modes are the opposite.
常闭模式。这些模式正好相反。 -
The “normally” means “if IN pin is connected to *LOW* (0V)”.
“通常”表示“如果 IN 引脚连接到 LOW (0V)”。 -
Before going into detail, let’s see some quick information:
在详细介绍之前,让我们先看一些快速信息: -
The normally open and normally closed mode work oppositely
常开和常闭模式相反 -
The most of relay modules supports both normally open and normally closed mode
大多数继电器模块支持常开和常闭模式 -
The LOW level trigger and HIGH level trigger mode work oppositely
低电平触发和高电平触发模式相反 -
NOT all of relay modules supports both LOW level trigger and HIGH level trigger mode
并非所有继电器模块都支持低电平触发和高电平触发模式 -
At a time, The relay module can work at only one of two LOW level trigger and HIGH level trigger mode
一次,继电器模块只能在两个低电平触发和高电平触发模式之一下工作 -
The combination of the input modes mode and output modes modes creates many use cases. If you are a beginner, we recommend using HIGH level trigger mode and normally open mode
输入模式模式和输出模式模式的组合创造了许多用例。如果您是初学者,我们建议您使用 HIGH 级别触发模式和常开模式 -
Because the LOW level trigger and HIGH level trigger mode work oppositely, The next will explain the HIGH level trigger mode in detail. The LOW level trigger works oppositely.
由于 LOW 电平触发和 HIGH 电平触发模式的工作方式相反,因此接下来将详细解释 HIGH 电平触发模式。LOW 电平触发器的工作方式相反。 -
HIGH Level Trigger - Normally Open Mode
HIGH 电平触发 - 常开模式 -
To use this mode, we need to connect the high voltage device to the COM pin and NO pin.
要使用此模式,我们需要将高压设备连接到 COM 引脚和 NO 引脚。 -
If the IN pin is connected to LOW (0V), the switch is open. The device is OFF (or inactive).
如果 IN 引脚连接到 LOW (0V),则开关断开。设备处于关闭(或非活动状态)。 -
If the IN pin is connected to HIGH (5V), the switch is closed. The device is ON (or active).
如果 IN 引脚连接到高电平 (5V),则开关闭合。设备处于打开(或活动)状态。 -
HIGH Level Trigger - Normally Closed Mode
HIGH 电平触发 - 常闭模式 -
To use this mode, we need to connect the high voltage device to the COM pin and NC pin.
要使用此模式,我们需要将高压器件连接到COM引脚和NC引脚。 -
If the IN pin is connected to LOW (0V), the switch is closed. The device is ON (or active).
如果 IN 引脚连接到低电平 (0V),则开关闭合。设备处于打开(或活动)状态。 -
If the IN pin is connected to HIGH (5V), the switch is open. The device is OFF (or inactive).
如果 IN 引脚连接到高电平 (5V),则开关断开。设备处于关闭(或非活动状态)。 -
There are up to 8 use cases. It may overload you. However, If you are a newbie, you just need to care about the two first cases, where HIGH level trigger and normally open are used. The rest of this tutorial will use those two use cases
最多有 8 个用例。它可能会使您超负荷。但是,如果您是新手,则只需要关心前两种情况,即使用高电平触发和常开。本教程的其余部分将使用这两个用例 -
Arduino - Relay Arduino - 继电器
-
Arduino controls a high voltage device by controlling a relay.
Arduino通过控制继电器来控制高压设备。 -
Controlling a relay is simple. We just need:
控制继电器很简单。我们只需要: -
Connect an Arduino’s pin to the IN pin of the relay
将Arduino的引脚连接到继电器的IN引脚 -
Control the relay by programming the pin to LOW or HIGH
通过将引脚编程为低电平或高电平来控制继电器
Wiring Diagram 接线图
How To Program For Relay 如何为继电器编程
- Configure an Arduino’s pin to the digital output mode by using pinMode() function. For example, pin 3:
使用 pinMode() 函数将 Arduino 的引脚配置为数字输出模式。例如,引脚 3:
pinMode(3, OUTPUT);
- Program the pin to LOW (0V) by using digitalWrite() function:
使用 digitalWrite() 函数将引脚编程为低电平 (0V):
digitalWrite(3, LOW);
- Program the pin to HIGH (5V) by using digitalWrite() function:
使用 digitalWrite() 函数将引脚编程为高电平 (5V):
digitalWrite(3, HIGH);
Arduino Code Arduino代码
/** Created by ArduinoGetStarted.com** This example code is in the public domain** Tutorial page: https://arduinogetstarted.com/tutorials/arduino-relay*/// constants won't change
const int RELAY_PIN = 3; // the Arduino pin, which connects to the IN pin of relay// the setup function runs once when you press reset or power the board
void setup() {// initialize digital pin as an output.pinMode(RELAY_PIN, OUTPUT);
}// the loop function runs over and over again forever
void loop() {digitalWrite(RELAY_PIN, HIGH);delay(500);digitalWrite(RELAY_PIN, LOW);delay(500);
}
Quick Steps 快速步骤
- Copy the above code and open with Arduino IDE
复制上面的代码并使用Arduino IDE打开 - Click Upload button on Arduino IDE to upload code to Arduino
单击Arduino IDE上的“上传”按钮,将代码上传到Arduino - See LED strip state: blinking
查看 LED 灯条状态:闪烁
相关文章:
Arduino - 继电器
Arduino - 继电器 In a previous tutorial, we have learned how to turn on/off an LED. In this tutorial, we are going to learn how to turn on/off some kind of devices that use the high voltage power supply(such as a light bulb, fan, electromagnetic lock, lin…...
状态压缩DP——AcWing 327. 玉米田
状态压缩DP 定义 状态压缩 DP 是一种通过二进制压缩状态的动态规划算法。它通过使用位运算来加速状态的转移和计算,从而提高算法的效率。 注意事项 数据范围:状态压缩 DP 通常适用于数据范围较小的问题,因为它需要使用二进制来表示状态&a…...
kafka(二)安装部署(2)windows
目录 一、前提 1、jdk 2、Zookeeper 2.1、解压 2.2、创建data文件夹 2.3、配置文件 2.4、添加环境变量 2.5、启动zk:zkServer 2.6、客户端 3、Scala 3.1、下载安装 3.2、配置环境变量 3.3、验证是否安装成功 二、kafka下载安装 1、下载 2、安装 2.1…...
aliplayer Server returned 403 Forbidden (access denied)
最近在接入阿里云播放器的sdk,项目的播放地址是m3u8的,h265的url 输入播放源以后播放报错,提示403,拒绝访问,起初以为是crt路径问题和key的问题,然后检查了以后没问题,后来又看了一下是不是白名单的问题,但是项目资源没通过阿里云平台存储 AVPUrlSource *source [[AVPUrlSou…...
单例模式(下)
文章目录 文章介绍步骤安排及单例讲解step1:注册单例类型(main.cpp)step2:定义类和私有构造函数(keyboardinputmanager.h)step3:(keyboardinputmanager.cpp)step4:在qml中…...
合约期VS优惠期,搞明白他们的区别才能避免很多坑!
在购买流量卡时,相信大家也都发现了,市面上的不少套餐都是有合约期和优惠期的,尤其是联通和移动,那么,什么是合约期?什么又是优惠期呢? 其实,目前很多在网上办理的大流量卡都是有…...
函数式反应式编程(FRP)在Scala中的实践与探索
函数式反应式编程(Functional Reactive Programming,简称FRP)是一种编程范式,它结合了函数式编程(Functional Programming,FP)的声明式特性和反应式编程(Reactive Programming&#…...
NGINX配置web文件服务
一、需求描述 系统需要提供文件(pdf、图片)等上传后支持预览功能。 二、实现方式 2.1 文件权限配置 chmod arwx -R public/chmod 是更改文件权限的命令。-R 是递归选项,表示更改目录及其所有子目录和文件的权限。arwx 是权限设置…...
deepspeed docker集群实现多机多卡训练----问题记录及解决方案资源汇总
. Docker中实现Deepspeed多机多卡训练 【掘金-雨田君的记事本】docker容器中deepspeed多机多卡集群分布式训练大模型 . 问题记录及解决方案资源汇总 问题1:deepspeed socketStartConnect: Connect to 172.18.0.3<54379> failed : Software caused connectio…...
恢复 IntelliJ IDEA 中消失的菜单栏
要恢复 IntelliJ IDEA 中消失的菜单栏,可以按照以下简单步骤操作: 使用快捷键打开搜索:首先,双击 Shift 键打开全局搜索对话框。 搜索“Menu”:在搜索框中输入 menu,然后从搜索结果中选择与“Main Menu”相…...
漏洞利用开发基础学习记录
文章目录 简介Win32缓冲区溢出内容难点 SEH 溢出内容难点 Egg Hunters内容难点 Unicode 溢出内容难点 x86-64 缓冲区溢出内容难点 参考资料 简介 本文基于ERC.Xdbg漏洞分析文章进行初步归纳整理,主要有Win32 缓冲区溢出、SEH 溢出、Egg Hunters、Unicode 溢出、x86…...
云通SIPX,您的码号资源智能调度专家!
在数字化转型的浪潮中,号码资源作为企业与客户沟通的重要桥梁,其管理效率直接关系到企业运营的成败。随着运营商对号码资源管理的规范化和精细化,企业对高效、智能的号码资源管理需求日益增长,以实现对外呼叫的降本增效。 一、什么…...
04-Mysql 索引,事务
MySQL 索引介绍 索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址。在数据十分庞大的时候,索引可以大大加快查询的速度。这是因为使用索引后可以不用扫描全表来定位某行的数据,而是先通过索引表找到该行…...
U盘提示格式化怎么搞定?本文有5种方法(内含教程)
U盘提示格式化是一种常见故障,即:当U盘插入电脑后,电脑上弹出对话框,提示该U盘需要格式化才能使用。 接触不良、文件系统损坏、热插拔、感染病毒、芯片损坏等原因都可能导致U盘出现此故障。这时点击“格式化”,大概率会…...
day02-登录模块-主页鉴权
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1.分析登录流程1.1传统思路是登录校验通过之后,直接调用接口,获取token之后,跳转到主页1.2vue-element-admin模板的登录思路&…...
git rebase的使用
没有排版,但是干货 因为项目要求,所以使用rebase指令 我使用的是rebase 的分支变基的功能 情景描述: 一共有两个分支:master owner 我在owner分枝上开发,有好多次commit master上也有同事在正常commit, …...
LICEcap-开源GIF 屏幕录制工具
LICEcap-开源GIF 屏幕录制工具 开源GIF 屏幕录制工具 下载可以访问:https://www.cockos.com/licecap/ 点击Record,开始录制 点击Stop,停止录制 点击Record,进入该页面 display in animation(在动画中显示) …...
【Java Web】会话管理
目录 一、为什么需要会话管理? 二、会话管理机制 三、Cookie概述 四、HttpSession概述 4.1 HttpSession时效性 一、为什么需要会话管理? HTTP协议在设计之初就是无状态的,所谓无状态就是在浏览器和服务器之间的通信过程中,服务器并…...
RestTemplate修改默认转换器,使用FastJsonConverter
问题描述: 在使用RestTemplate发送POST请求时,发现发送的数据并未按配置的JSONField转换,导致服务方一直收不到参数 排查过程: 将itemList改成Items传输即可 原因分析: RestTemplate有默认的转换器,所以…...
什么是div移动指令?如何用vue自定义指令实现?
目录 一、Vue.js框架介绍二、vue自定义指令directive三、什么是div移动指令四、使用vue自定义指令directive写一个div移动指令 一、Vue.js框架介绍 Vue.js是一个用于构建用户界面的渐进式JavaScript框架。它设计得非常灵活,可以轻松地被集成到现有的项目中…...
Golang | Leetcode Golang题解之第187题重复的DNA序列
题目: 题解: const L 10 var bin map[byte]int{A: 0, C: 1, G: 2, T: 3}func findRepeatedDnaSequences(s string) (ans []string) {n : len(s)if n < L {return}x : 0for _, ch : range s[:L-1] {x x<<2 | bin[byte(ch)]}cnt : map[int]in…...
智能猫砂盆到底是不是智商税?解救上班族双手的测评合集来了
不得不说,像我这样的上班族真的是很需要一个智能猫砂盆了。普通的猫砂盆一天就要打扫3次,遇到很能拉的猫咪的时候,就不止是三次那么简单了。如果有个产品能帮我解决这个问题,让我能放心外出,那又何乐而不为呢ÿ…...
java 数据新增、更新、删除监听,并记录日志或其他业务
数据新增、更新、删除监听,并记录日志或其他业务 1.使用场景 日志记录、KPI考核(业务进行到某个阶段,对人员的考核)等等 实体监听器 实体增加注解 EntityListeners({KpiOrderCounter.class}) /*** 订单管理考核** author sul…...
developer.android.com在国内无法正常访问解决方法
将android.com替换为android.google.cn...
大学物理(下)笔记
摘录来自笔记网站的笔记。笔记网站详见https://onford.github.io/Notes/。 大学物理(下)笔记 部分常用物理常量的计算值 C h a p t e r 9 Chapter9 Chapter9 恒定磁场 毕奥-萨伐尔定律 磁场和电场在很多性质上是有共性的,很多时候可以拿它…...
Mind+在线图形编程软件(Sractch类软件)
Scratch作为图形编程软件,可以为小朋友学习编程提供很好的入门,是初次接触编程的小朋友的首选开发软件。这里介绍的Mind软件与Sractch用法几乎完全一致,并且可以提供在线免安装版本使用,浏览器直接打开网址: ide.mindp…...
数智化招采供应链平台七大优点
在当今快速发展的商业环境中,技术更新风起云涌、数字化转型不断加快,产业链供应链竞争日趋激烈。企业必须不断提升产业链供应链现代化水平,建设畅通、韧性、竞争力强的产业链供应链,因此招采供应链平台的需求日益迫切。 为满足企…...
Java面试题:对比HTTP的GET和POST方法,并讨论它们的使用场景
HTTP的GET和POST方法是用于在客户端和服务器之间交换数据的两种基本请求方法。它们有不同的特性和使用场景。 GET方法 特性 数据在URL中传输:GET请求的数据附加在URL的末尾,通过查询字符串传输。数据长度限制:由于浏览器和服务器对URL长度…...
webpack+webpack server入门
1.webpack介绍 webpack是一个模块加载器兼打包工具。它是以 commonJS 的形式来书写脚本的,但对 AMD/CMD 的支持也很全面,方便旧项目进行代码迁移。支持对react热插拔。 2.安装(使用淘宝镜像) 全局安装 cnpm install webpa…...
Java内存模型以及多线程并发深度剖析
文章目录 Java内存模型JMM的基本概念缓存一致性与处理器优化happens-before原则总结主内存以及cpu的多级缓存模型的实现原理主内存(Main Memory)CPU多级缓存模型实现原理:多线程并发运行时可能引发的数据不一致问题总线加锁机制和MESI缓存一致性协议的工作原理总线加锁机制M…...
汕头企业网站建站模板/网络营销公司哪家好
老子对你一见钟情,你说老子长得不行。老子对你含情脉脉,你说老子神兮踔踔。老子对你轰轰烈烈,你说老子爱得造孽。老子对你牵肠挂肚,你说老子棉花当布。老子对你天长地久,你说老子永垂不朽。老子对你百分之百࿰…...
企业门户网站费用/武汉seo公司排名
Mojo C 绑定 API 官方文档:https://chromium.googlesource.com/chromium/src.git//refs/heads/main/mojo/README.md 本文档是Mojo 文档的子集。 概述 Mojo C 绑定 API 利用C 系统 API提供一组更自然的原语,用于通过 Mojo 消息管道进行通信。结合从Mojom IDL 和绑…...
高端品牌网站建设公司/搜索引擎营销与seo优化
Competition Add : https://www.kaggle.com/c/digit-recognizer 此题目已经把每个图片向量化了。下载到的data里包含三个文件: 数据文件train.csv和test.csv包含从0到9的手绘数字的灰度图像。 每个图像的高度为28个像素,宽度为28个像素,总共…...
大兴做网站/开源crm系统
1、找不到方法的实现unrecognized selector sent to instance 2、KVC造成的crash 3、EXC_BAD_ACCESS 4、KVO引起的崩溃 5、集合类相关崩溃 6、多线程中的崩溃 7、Socket长连接,进入后台没有关闭 8、Watch Dog超时造成的crash 9、后台返回NSNull导致的崩溃&a…...
国贸行业 网站建设/百度seo排名优化系统
/********************************************************************* Redmine 数据库连接错误* 说明:* OpenMediaVault上的Redmine出现连接错误,目前不知道是我自己不小心* 把mysql的密码修改了,还是因为被攻击…...
河北建设厅网站首页/站长工具推荐网站
本章将分为三个部分: KVC是什么KVC之Set/GetKVC键值路径之Set/GetKVC是什么 KVC,即 NSKeyValueCoding,一个非正式的 Protocol,提供一种机制来间接访问对象的属性,并不需要调用setter/getter函数或者类的实例变量。 KVC…...