当前位置: 首页 > news >正文

Arduino 无线通信实战:使用 RadioHead实现 315MHz 433M模块数据传输

本文将介绍如何使用 Arduino 和 RadioHead 库实现 315MHz(或 433MHz)ASK 无线通信。通过两个 Arduino 控制板,一个作为发射端,一个作为接收端,实现“按键控制 → 无线发送 → LED 控制”的基础通信功能,非常适合无线控制、遥控器替代等场景。

接收端接线,中间两个引脚,任意接一个即可
在这里插入图片描述
发射端接线
在这里插入图片描述

安装 RadioHead 库

打开 Arduino IDE → 工具 → 管理库

搜索 RadioHead

点击安装

发射端代码如下:

#include <RH_ASK.h>
#include <SPI.h> // 必须包含,即使不用 SPIRH_ASK driver; // 默认使用 D12 发射(可改)void setup() {Serial.begin(9600);if (!driver.init()) {Serial.println("发射器初始化失败");}
}void loop() {const char *msg = "Hello";driver.send((uint8_t *)msg, strlen(msg));driver.waitPacketSent();Serial.println("已发送:Hello");delay(1000);
}

接收端代码如下,这里接收到信息,板载led会亮,如果没有加装天线的话,两个模块需要靠的非常近才能进行信息传输

#include <RH_ASK.h>
#include <SPI.h>RH_ASK driver;
const int ledPin = 13;void setup() {Serial.begin(9600);pinMode(ledPin, OUTPUT);if (!driver.init()) {Serial.println("接收器初始化失败");}
}void loop() {uint8_t buf[12];uint8_t buflen = sizeof(buf);if (driver.recv(buf, &buflen)) {buf[buflen] = '\0'; // 添加字符串结束符Serial.print("接收到:");Serial.println((char *)buf);if (strcmp((char *)buf, "Hello") == 0) {digitalWrite(ledPin, HIGH);delay(500);digitalWrite(ledPin, LOW);}}
}

将发射端代码上传到 Arduino A

将接收端代码上传到 Arduino B

打开两个串口监视器(波特率 9600)

发射端每秒发送一次 “Hello”

接收端成功接收后会串口输出 “接收到: Hello”,并点亮 LED

http://www.lryc.cn/news/586485.html

相关文章:

  • AV1比特流结构
  • Paimon Lookup 哈希文件和Sort文件选择
  • Claude code在Windows上的配置流程
  • 内存dmp文件太大导致计算机登录异常
  • 「日拱一码」025 机器学习——评价指标
  • 基于SEP3203微处理器的嵌入式最小硬件系统设计
  • 19th Day| 530.二叉搜索树的最小绝对差,501.二叉搜索树中的众数, 236.二叉树的最近公共祖先
  • 电子基石:硬件工程师的器件手册 (五) - 三极管:电流放大的基石与开关的利刃
  • 敏捷开发方法全景解析
  • ABSD(基于架构的软件开发)深度解析:架构驱动的工程范式
  • day051-ansible循环、判断与jinja2模板
  • java进阶(一)+学习笔记
  • (一)一阶数字低通滤波器---原理及其推导
  • 前后端分离项目的完整部署(Jenkins自动化部署)
  • 什么是数据库同步软件?为什么要关注数据库同步技术?
  • 阻有形,容无声——STA 签核之RC Corner
  • 【MaterialDesign】谷歌Material(Google Material Icons) 图标英文 对照一览表
  • Kotlin文件
  • AI大模型(七)Langchain核心模块与实战(二)
  • Java SE--抽象类和接口
  • Linux系统编程——目录 IO
  • JavaScript:移动端特效--从触屏事件到本地存储
  • 一文理解缓存的本质:分层架构、原理对比与实战精粹
  • 深入理解设计模式之工厂模式:创建对象的艺术
  • Cypress与多语言后端集成指南
  • 数据结构——散列表
  • 为什么有些PDF无法复制文字?原理分析与解决方案
  • Cursor创建Spring Boot项目
  • 指令微调时,也要考虑提示损失
  • 《Java Web程序设计》实验报告六 JSP+JDBC+MySQL实现登录注册