当前位置: 首页 > 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.dtcms.com/a/276275.html

相关文章:

  • MS Azure Eventhub 发送 AD log 到cribl
  • 学习笔记 Datewhale MCP Server Task2
  • 免费用Claude code薅羊毛
  • 【模板】最长公共子序列 详细解析
  • FastGPT革命:下一代语言模型的极速进化
  • 集训Demo1
  • 史上最全 MySQL 锁详解:从理论到实战,一篇搞定所有锁机制
  • 接口和抽象方法示例
  • C语言基础知识--联合体
  • Mybatis的一级缓存与二级缓存
  • 电网失真下单相锁相环存在的问题
  • STM32第二十一天定时器TIM
  • docker搭建 与镜像加速器
  • LeetCode经典题解:3、无重复字符的最长子串
  • 【Elasticsearch】post_filter
  • 【MATLAB代码】Chan方法解算TOA,用于三维目标的定位,锚点数量可自适应。订阅专栏后可查看完整代码
  • Windows环境下解决Matplotlib中文字体显示问题的详细指南
  • PyTorch神经网络实战:从零构建图像分类模型
  • linux----------------------线程同步与互斥(上)
  • 搭建MySQL读写分离
  • LiteFlow源码
  • Mamba架构的模型 (内容由deepseek辅助汇总)
  • 手把手教你 Aancond 的下载与 YOLOV13 部署(环境的创建及配置下载)以及使用方法,连草履虫都能学会的目标检测实验!
  • net.createServer详解
  • Python后端项目之:我为什么使用pdm+uv
  • 模拟注意力:少量参数放大 Attention 表征能力
  • hiredis: 一个轻量级、高性能的 C 语言 Redis 客户端库
  • 深入解析C#接口实现的两种核心技术:派生继承 vs 显式实现
  • Java 21 虚拟线程
  • 浏览器宏任务的最小延时:揭开setTimeout 4ms的神话