接收发射模块(一个小小的模块竟然隐藏着125个通讯通道)

Posted

篇首语:读书志在圣贤,为官心存君国。本文由小常识网(cha138.com)小编为大家整理,主要介绍了接收发射模块(一个小小的模块竟然隐藏着125个通讯通道)相关的知识,希望对你有一定的参考价值。

接收发射模块(一个小小的模块竟然隐藏着125个通讯通道)


2.4G是一种无线技术,由于其频段处于2.400GHz~2.525GHz之间,简称2.4G无线技术。基于2.4G无线技术封装的高度集成芯片组我们称之为2.4G无线模块,而2.4g无线收发模块是无数2.4G无线模块中的一种,广泛应用于无线遥控、无线耳机、无人机、无线键盘、无线监控、非接触RF智能卡、小型无线数据终端、安全防火系统、无线遥控系统、生物信号采集、水文气象监控等行业和商品中。2.4G和433M是国内免许可证的ISM(工业,科学,医学)开放频段,不需要从本地管理部门申请授权。

现在很多商用的2.4G无线发射接收模块都已经进行了封装设计(集成了单片机控制和无线编码)跟单片机直接通过异步串行口连接就可以,现在市面上的无线收发模块,其无线工作方式由模块内部的单片机控制,与用户单片机的连接一般就只有电源和收、发等几根线。无线发射模块和接收模块必须配对使用,且工作频率要完全一样,接收模块一定要根据发射局部的编码格式来配解码IC,无线收发模块都是传输数据的一个通道,接收模块接收到发射信号后通过DA TA 脚传给解码IC,让其工作。2.4G无线发射接收模块一般支持一对多,多对一,一对一等各种各种模式。通讯传输距离无遮挡情况下一般在

今天我来推荐一款2.4G无线发射接收模块—nRF24L01。nRF24L01是由NORDIC生产的工作在2.4GHz~2.5GHz的ISM 频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型"SchockBurst"模式控制器、功率放大器、晶体振荡器、调制器和解调器。输出功率频道选择和协议的设置可以通过SPI 接口进行设置。几乎可以连接到各种单片机芯片,并完成无线数据传送工作。

nRF24L01具有以下优点:

1. 灵敏度高

2. 兼容性好

nRF24L01 可以兼容nRF2401A、nRF24L01+、nRF24LE1、nRF24LU1等无线模块。


3. 变态的功耗

极低的电流消耗:当工作在发射模式下发射功率为0dBm 时电流消耗为11.3mA ,接收模式时为12.3mA,掉电模式和待机模式下电流消耗更低。


4. 性价比好

基于nRF24L01的无线串口(USB),每个35元人民币,价格还是比较亲民的。


nRF24L01模块使用方便,只需要下载一个串口调试助手之类的软件就可以相互之间发送消息,以下是nRF24L01主要的设置命令,信道范围:2.400GHz~2.525GHz,约125个通道可用,但是收发模块之间的地址和频率一定配对使用才能成功。

设置串口通信波特率,发送: ASCII 码【AT+BAUD=n】( n 为 1,2,3,4,5,6,7 分别对应

4800,9600,14400,19200,38400,57600,115200 的波特率)


发送命令:AT?是查询当前无线模块的系统参数。


第一号:

设置本机地址命令:AT+RXA=0xAA,0xBB,0xCC,0xDD,0xEE

地址设置成功!!

本机接收地址:0xAA,0xBB,0xCC,0xDD,0xEE地址设置成功!!

设置目标机地址命令:AT+TXA=0x11,0x22,0x33,0x44,0x55

目标地址:0x11,0x22,0x33,0x44,0x55


第二号:

设置本机地址命令:0x11,0x22,0x33,0x44,0x55

地址设置成功!!

本机接收地址:0x11,0x22,0x33,0x44,0x55地址设置成功!!

设置目标机地址命令:AT+TXA=0xAA,0xBB,0xCC,0xDD,0xEE

目标地址:0xAA,0xBB,0xCC,0xDD,0xEE


无线通讯信道设置 ,范围:2.400GHz~2.525GHz(出厂默认 2.400GHz)

AT+FREQ=2.424G


无线通信传输速率 ,可选速率:250Kbps,1Mbps,2Mbps (出厂默认 2Mbps)

传输速率设置命令: 发送 ASCII 码【AT+RATE=n】( n 为 1,2,3 分别对应250Kbps ,1Mbps,2Mbps 的传输速率)


程序例子:



以下是软件源代码:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;


namespace WindowsForms

public partial class MainForm : Form

private delegate void ReadDataFromSerial();

private string Serialdata;


private long Receivenum = 0;

private long Sendnum = 0;


public MainForm()

InitializeComponent();

try

string[] Portlist = System.IO.Ports.SerialPort.GetPortNames();

for (int i = 0; i < Portlist.Length; i++)

cmbPortName.Items.Add(Portlist[i]);

cmbBaudrate.SelectedIndex = 0;

cmbPortName.SelectedIndex = 0;

txtNumberReceive.Text = Receivenum.ToString();

txtNumberSend.Text = Sendnum.ToString();

catch

MessageBox.Show("初始化检查失败,请检查串口的连接使用情况!\\n程序将自动退出!","串口初始化",MessageBoxButtons.OK,MessageBoxIcon.Warning);

this.Close();

Application.Exit();


private void btnOpen_Click(object sender, EventArgs e)

if (btnOpen.Text == "打 开 串 口")

if (serialPort1.IsOpen == true)

serialPort1.Close();

serialPort1.BaudRate = Convert.ToInt32(cmbBaudrate.Text);

serialPort1.PortName = cmbPortName.Text;

serialPort1.Open();


btnOpen.Text = "关 闭 串 口";

//btnOpen.BackColor = Color.Green;

btnOpen.ForeColor = Color.Red;

else

if (serialPort1.IsOpen == true)

serialPort1.Close();

btnOpen.Text = "打 开 串 口";

//btnOpen.BackColor = Color.LightGray;

btnOpen.ForeColor = Color.Black;


private void MainForm_Load(object sender, EventArgs e)

// serialPort1.Encoding = System.Text.Encoding.GetEncoding("UTF-8");

serialPort1.Encoding = System.Text.Encoding.GetEncoding("GB2312");


private void MainForm_FormClosing(object sender, FormClosingEventArgs e)

if (serialPort1.IsOpen == true)

serialPort1.Close();


private void btnSendData_Click(object sender, EventArgs e)

//串口以16进制发送数据

if(chkHexTransmitte.Checked==true)

string str = txtDataSend.Text.Replace(" ","");

int len = str.Length / 2;

byte[] ret = new byte[len];

for(int i=0;i<len;i++)

ret[i]=(byte)(Convert.ToInt32(str.Substring(i*2,2),16));

serialPort1.Write(ret,0,ret.Length);

//串口以字符串发送数据

else

serialPort1.Write(txtDataSend.Text);

Sendnum += txtDataSend.Text.Length;

txtNumberSend.Text = Sendnum.ToString();


void DataShowMthod1()//以字符串形式读取数据

//收据接收显示加上回车

if(chkNewLine.Checked==true)

if (txtDataReceive.Text != "")

txtDataReceive.Text += "\\r\\n";


this.txtDataReceive.Text +=Serialdata;

//数据接收直接显示

else

this.txtDataReceive.Text += Serialdata;

Receivenum += Serialdata.Length;

txtNumberReceive.Text = Receivenum.ToString();

void DataShowMethod2()//以16进制形式读取数据

if (chkNewLine.Checked==true)

if (txtDataReceive.Text != "")

txtDataReceive.Text += "\\r\\n";


string str="";

byte[] bt = System.Text.Encoding.Default.GetBytes(Serialdata);

for (int i = 0; i < bt.Length; i++)

str += bt[i].ToString("X2");

this.txtDataReceive.Text += str;

else

string str = "";

byte[] bt = System.Text.Encoding.Default.GetBytes(Serialdata);

for (int i = 0; i < bt.Length; i++)

str += bt[i].ToString("X2");

this.txtDataReceive.Text += str;

Receivenum += Serialdata.Length;

txtNumberReceive.Text = Receivenum.ToString();

//串口接收到数据

private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)

//接收到的是16进制数据

if (chkHexReceive.Checked)

ReadDataFromSerial Rdfs_hex = new ReadDataFromSerial(DataShowMethod2);

Serialdata = serialPort1.ReadExisting();

Invoke(Rdfs_hex);

//接收到的是字符串

else

ReadDataFromSerial Rdfs_str = new ReadDataFromSerial(DataShowMthod1);

Serialdata = serialPort1.ReadExisting();

Invoke(Rdfs_str);



//复位对发送和接收字节的统计数据

private void btnNumberReset_Click(object sender, EventArgs e)

Sendnum = 0;

txtNumberSend.Text = Sendnum.ToString();

Receivenum = 0;

txtNumberReceive.Text = Receivenum.ToString();

//清除发送的数据

private void btnClearTransmitte_Click(object sender, EventArgs e)

txtDataReceive.Text = "";

//清除接收到的数据

private void btnReceiveClear_Click(object sender, EventArgs e)

txtDataReceive.Text = "";


相关参考

放大器双工器模块(半双工无线数据透传网络模块 发射功率50~500mW 扩频延长通讯距离)

...体积小,贴片型,宽电压运行,发射功率50mW~500mW可选,接收灵敏度高,采用扩频技术,通讯距离远,抗干扰能力强等优点华世智能自主无线信号放大器网络功能,可实现多级覆盖,可延长通信距离,使得数据传输信息更加安全...

无线远程发射器接收器(用24G模块NRF24L01做一个无线遥控开关,远程控制很方便)

...想要实现的功能是,遥控端输出一个高电平或者低电平,接收端也能同时输出一个高电平或者低电平,这样就能隔空控制很多东西,也不用拉线布线。手头正好有2.4G模块,型号是NRF24L01,那我们就用它来实现。这个模块也不算贵...

思科交换机如何看光模块(光模块发射光功率检测的四种方法)

...容性,硬件测试主要是参数测试,其中包含发射光功率、接收灵敏度、工作温度、偏置电流等等。一、光模块发射光功率的重要性发射光功率(OutputPower)指光模块发送端光源的平均输出光功率,也叫输出光功率。单位:W或mW或d...

无杂波超外差接收模块(模拟对讲机)

...线低通滤波器,抑制谐波成分,然后通过天线发射出去。接收部分 接收部分为二次变频超外差方式,从天线输入的信号经过收发转换电路和带通滤波器后进行射频放大,在经过带通滤波器,进

无线发射模块怎么接线(用24G模块NRF24L01做一个无线遥控开关,远程控制很方便)

...想要实现的功能是,遥控端输出一个高电平或者低电平,接收端也能同时输出一个高电平或者低电平,这样就能隔空控制很多东西,也不用拉线布线。手头正好有2.4G模块,型号是NRF24L01,那我们就用它来实现。这个模块也不算贵...

智能家居遥控接收模块(飞睿智能雷达感应模块,人体存在感控应用,智能化感应开关联动)

...证最佳传感器性能的同时将尺寸做到20*20mm。通过发射和接收高频电磁波,通过多普勒原理检测发射与

无线射频收发模块(【行业深度】5G天线研究:终端天线变化铸就价值,新基建再造空间)

...终端侧,而无论在基站还是在终端,天线都是信号发射与接收的关卡,天线性能的好坏,直接影响通信的质量。1、终端天线概况手机终端的通信模块主要分为天线、射频前端模块、射频收发模块、基带信号处理。射频前端介于...

抗干扰接收模块(怎么解决蓝牙模块的干扰问题?)

...体数值化,所以一般也不会写入规格书。同一发射功率和接收灵敏度的条件下,那么抗干扰能力更强的蓝牙模块可以传输的距离会更远。相同频段或者恶劣环境也能对它产生很不好的干扰,在能不改变环境的情况,我们能操作什...

模块天线(金航标kinghelm为您浅析无线收发模块三种天线的区别)

...nghelm小编为您说道说道:在无线通讯系统中,用来传送与接收电磁波能量的重要必备组

收发模块(金航标kinghelm为您浅析无线收发模块三种天线的区别)

...nghelm小编为您说道说道:在无线通讯系统中,用来传送与接收电磁波能量的重要必备组