Arduino红外遥控器,控制继电器水泵

我们将讨论如何使用Arduino和IRremote库来实现通过红外遥控器控制继电器的开关。通过这个项目,你将学会如何接收和解码红外信号,并根据接收到的信号控制继电器(这里的继电器可以换成其他传感器)的状态。

项目简介

我们将使用Arduino开发板、一个红外接收模块和一个红外遥控器来实现这个项目。当按下遥控器上的特定按钮时,继电器将会打开或关闭。我们将使用最新版本的IRremote库来接收和解码红外信号。

硬件准备

  • Arduino开发板(例如Arduino Uno)
  • 红外接收模块
  • 红外遥控器
  • 继电器
  • 杜邦线

电路连接

 

  1. 将红外接收模块的信号引脚连接到Arduino的数字引脚11。
  2. 将红外接收模块的VCC和GND分别连接到Arduino的5V和GND。

继电器连接如图所示,信号输入引脚接arduino的7号引脚 

软件准备

确保你已经在Arduino IDE中安装了最新版本的IRremote库。你可以通过以下步骤来安装:

  1. 打开Arduino IDE。
  2. 进入“工具”菜单,选择“库管理器”。
  3. 在弹出的窗口中搜索“IRremote”,找到“IRremote并安装。

 这是解码遥控器发出的红外信号的代码

#include <IRremote.hpp> // 引入新的IRremote库const int RECV_PIN = 11; // 定义红外接收器引脚
const int LED_PIN = 13; // 定义LED引脚
bool ledState = LOW; // 初始化LED状态为低void setup() {pinMode(LED_PIN, OUTPUT); // 设置LED引脚为输出模式Serial.begin(9600); // 初始化串口通讯,波特率为9600IrReceiver.begin(RECV_PIN, ENABLE_LED_FEEDBACK); // 启动红外解码,并启用LED反馈
}void loop() {if (IrReceiver.decode()) { // 判断是否接收到红外码Serial.print("bits: ");Serial.println(IrReceiver.decodedIRData.rawDataPtr->rawlen); // 打印红外线码元位数Serial.print("IRCode: ");Serial.println(IrReceiver.decodedIRData.decodedRawData, HEX); // 串口监视器查看红外解码结果(十六进制)ledState = !ledState; // 切换LED状态digitalWrite(LED_PIN, ledState); // 设置LED引脚电平IrReceiver.resume(); // 在解码一个红外线信号之后,持续接收下一组信号}
}

下面是通过遥控器控制继电器的代码

#include <IRremote.hpp> // 引入新的IRremote库const int RECV_PIN = 11; // 定义红外接收器引脚
const int LED = 7; // 定义LED引脚void setup() {Serial.begin(9600); // 初始化串口通讯,波特率为9600IrReceiver.begin(RECV_PIN, ENABLE_LED_FEEDBACK); // 启动红外解码,并启用LED反馈pinMode(LED, OUTPUT); // 设置LED引脚为输出模式
}void loop() {if (IrReceiver.decode()) { // 判断是否接收到红外码unsigned long value = IrReceiver.decodedIRData.decodedRawData; // 获取解码后的红外码switch (value) {case 0xBA45FF00: Serial.println("OPEN"); digitalWrite(7, HIGH); // 打开LEDbreak;case 0xB946FF00: Serial.println("MODE"); digitalWrite(7, LOW); // 关闭LEDbreak;case 0xB847FF00: Serial.println("jingyin"); break;case 0xF30CFF00: Serial.println("1"); break;case 0xE718FF00: Serial.println("2"); break;case 0xA15EFF00: Serial.println("3"); break;case 0xF708FF00: Serial.println("4"); break;case 0xE31CFF00: Serial.println("5"); break;default: Serial.println("Unknown"); break; // 添加默认情况处理}IrReceiver.resume(); // 等待接收下一组信号}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1424121.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux网络编程】IO多路转接之poll

poll 1.poll初始2.poll函数接口3.poll服务器4.poll的优点缺点 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&#x1f603; 1.poll初始 poll也是一种linux…

静态IP代理:网络世界的隐秘通道

在数字化时代&#xff0c;网络安全和隐私保护日益受到重视。静态IP代理作为一种网络服务&#xff0c;为用户提供了一个稳定且可预测的网络连接方式&#xff0c;同时保护了用户的在线身份。本文将从五个方面深入探讨静态IP代理的概念、优势、应用场景、技术实现以及选择时的考量…

英语单词量测试

网址&#xff1a;https://preply.com/en/learn/english/test-your-vocab 测试结果&#xff1a; 细节&#xff1a;英语母语者有20000-35000个单词的词汇量&#xff0c;8岁孩子的词汇量在8000个左右。而不是我们教育系统里说的&#xff0c;6000个单词足够用了。足够用&#xff0…

基于EBAZ4205矿板的图像处理:05均值滤波算法

基于EBAZ4205矿板的图像处理&#xff1a;05均值滤波算法 项目全部文件已经上传&#xff0c;是免费的 先看效果 可以明显看到图像变糊了&#xff0c;这就是均值滤波的特点&#xff0c;将噪声均摊到每个点上的同时&#xff0c;也会让图像丢失细节。 算法讲解 均值滤波&#x…

Mini Cheetah 代码分析(八)基于零空间的任务分级

一、主要公式 二、源代码注释 三、相关原理解释 一、主要公式 二、源代码注释 该功能的实现在文件KinWBC.cpp中的FindConfiguration函数&#xff0c;主要看注释&#xff0c;与公式是能够对应起来的&#xff0c;由第0个任务&#xff0c;也就是接触任务开始进行迭代&#xff0…

基于SSM的“羽毛球馆管理系统”的设计与实现(源码+数据库+文档)

基于SSM的“羽毛球馆管理系统”的设计与实现&#xff08;源码数据库文档) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SSM 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统结构图 登录界面 后台用户添加 后台用户管理 球场添加 球场…

「前端」性能优化问题总结

前言 本文主要介绍一些前端通用的性能优化方案总结&#xff0c;非写代码阶段的性能优化。 分包 React router V6.4 数据路由新特性 <Route path/xx lazy{async()>{const module await import(./xx)const XX module.defaultreturn{element:(<Suspense fallback…

C++(week3):C语言文件操作

文章目录 (十二) 文件1.流(1)流模型(2)程序员视角的文件(3)缓冲区类型(4)标准流(5)二进制文件 与 文本文件(6)文件流的接口(API) 2.打开/关闭文件(1)fopen(2)fclose(3)示例代码 3.读/写文件(1)fgetc / fputc&#xff1a;读写文本文件&#xff0c;一个字符一个字符地读写(2)fget…

校园防欺凌平台

校园霸凌事件很难被发现&#xff0c;发现者又可能迫于威胁而不敢告发&#xff0c;被霸凌者又因各种原因而选择忍耐&#xff0c;所以&#xff0c;如果能够在发生校园霸凌的时候&#xff0c;做出及时的预警&#xff0c;也许能够拯救挽回无数个家庭。本平台结合防欺凌设备&#xf…

什么是Serverless ?

目录&#xff1a; 1、服务器发展阶段 2、Serverless定义 3、Serverless理解

软件确认测试详细介绍

在软件开发流程中&#xff0c;确认测试是一个至关重要的环节&#xff0c;它确保软件产品满足预定的需求、性能和质量标准。本文将详细介绍软件确认测试的概念、目的、方法、执行步骤以及其在软件开发周期中的重要性。   一、软件确认测试的概念   软件确认测试&#xff0c;…

干货【挑战全网】中电联互联互通协议 最全高德地图充电桩接入指南,流量必火!慧哥开源充电桩平台V2.5.2

分享《一套免费开源充电桩物联网系统&#xff0c;是可以立马拿去商用的&#xff01;》 一、和高德直接互联互通的优势&#xff1a; 1、高德官方直接互联互通&#xff0c;提供给合作商户独立发展自主权&#xff0c;不依赖任何第三方平台; 2、自己控制电站的上线、下线、修改电…

独立静态ISP:互联网连接的新选择

在数字化时代&#xff0c;互联网连接的质量直接影响着我们的工作与生活。随着技术的发展&#xff0c;独立静态ISP&#xff08;Internet Service Provider&#xff0c;互联网服务提供商&#xff09;逐渐成为企业和个人用户关注的焦点。本文将从五个方面探讨独立静态ISP的优势、应…

C语言详解:数组指针

数组指针是指针 int* p[10] 这是指针数组的写法 &#xff0c;因为【】的优先级比*高&#xff0c; 所以为了解决优先级问题&#xff0c;加&#xff08;&#xff09; int(* p)[10]&arr;//数组的地址要存起来 说明p是指针&#xff08;首先与*结合&#xff09;&#xff0c…

国网1376.1主站与采集终端通信协议和国网1376.2集中器本地通信模块接口协议报文解析工具

本文分享一个国网1376.1主站与采集终端通信协议的报文解析工具&#xff0c;同时本报文解析软件也支持国网1376.2集中器本地通信模块接口协议的报文解析。 下载链接: https://pan.baidu.com/s/1ngbBG-yL8ucRWLDflqzEnQ 提取码: y1de 主界面如下图所示&#xff1a; 同时本软件自…

[图解]SysML和EA建模住宅安全系统-03

1 00:00:00,490 --> 00:00:01,180 怎么加 2 00:00:01,570 --> 00:00:04,380 我们来看&#xff0c;这是刚才那个图 3 00:00:05,200 --> 00:00:06,390 17.7 4 00:00:07,150 --> 00:00:08,260 我们同样在这里加 5 00:00:08,430 --> 00:00:10,100 同样在这个下面…

「AIGC算法」近邻算法原理详解

本文主要介绍近邻算法原理及实践demo。 一、原理 K近邻算法&#xff08;K-Nearest Neighbors&#xff0c;简称KNN&#xff09;是一种基于距离的分类算法&#xff0c;其核心思想是距离越近的样本点&#xff0c;其类别越有可能相似。以下是KNN算法的原理详解&#xff1a; 1. 算…

python3.6+pycharm安装配置

python3.6安装 下载python3.6 官网&#xff1a;下载 安装及环境变量配置 等待几分钟安装成功&#xff0c;cmd中输入python后返回版本号&#xff0c;安装成功 环境变量path下能看到自动添加了环境变量 pycharm下载安装 pycharm社区版下载 官网&#xff1a;下载 等待…

SmartEDA在电工电子实验中的神奇应用:解锁实验新境界!

在电工电子的广阔领域中&#xff0c;实验是不可或缺的一部分。它不仅能够验证理论知识的正确性&#xff0c;还能够帮助学生和研究者深入理解电子元件和电路的工作原理。而在这个数字化的时代&#xff0c;一款强大的实验辅助工具——SmartEDA&#xff0c;正悄然改变着电工电子实…

Qt自定义QpushButton分别在c++/python中实现

//.h文件#ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QPainter> #include<QMouseEvent> #include<QPropertyAnimation> #include<QResizeEvent>QT_BEGIN_NAMESPACE namespace Ui { class Widget; }class Widget : public QWi…