微型433MHz无线接收模块 | 您所在的位置:网站首页 › 无线收发模块流程图解 › 微型433MHz无线接收模块 |
微型433MHz无线接收模块 原装正品 SYN480R 433M ASK/OOK 无线接收模块资料链接:https://pan.baidu.com/s/1p4Pyi0OCkqQL1Iupo0ClbA 提取码:o9i7无线遥控发射接收模块简介(SYN480R F115 433M )01 无线接收模块 一、前言 这款大功率433MHz 无线发射模块前天测试过。 由于手边的接收模块都是 315MHz, 所以还无法对其传输距离进行测试。 现在购买的微型433MHz 接收模块到货了。 它的结构极其简单, ·核心是一个SOP8封装的芯片。 晶振的频率为 6.7458MHz, 芯片的信号为 SYN480R。 ·下面对于这款接收模块进行测试。 在模块上增加一个软件作为接收天线。 其它三个管脚分别是电源、信号输出、地线。 通过面包板给接收模块增加3.3V电压。 示波器显示接收到了脉冲信号。 信号的最窄脉冲宽度为 500微秒, 对应2k 波特率。 发送信号编码芯片为 SC2262。 后面可以通过SC2272, 或者单片机对接收到的编码进行解码。 这样便可以获得发送开关信号了。 根据接收到的波形, 编码是由一群宽窄不同的脉冲组成。 每组脉冲之间有一段时间延迟。 可以根据这个延迟将不同编码脉冲群分开。 分割时间比编码脉冲低电平时间长, 大约15毫秒左右。 编码信号的窄信号, 时间为0.5毫秒。 宽信号为15毫秒。 它们分别对应0,1 编码。
AD\Test\2023\TestSYN840R.PcbDoc 使用STM32F030 单片机对接收信号进行解码。 昨天还是用这款单片机对于红外遥控信号进行解码。 采用 40kHz 信号对波形进行采样并且进行判断。 使用串口对其进行程序更新。 使用一颗1117 三端稳压芯片提供 3.3V 的工作电源。 接收模块通过 PRF输入。 信号进入 PA0 端口。 使用四个LED显示接收到的 16中编码状态。 设计单面电路图。 一分钟后得到测试电路板。 上面有一个跳线, 使用 0 欧姆电阻进行短路。 下面进行焊接测试。 最终测试这款接收模块可以在多远的距离接收到发送信号。
通过 STM32Cobe MX 软件配置单片机资源。 使用串口辅助程序下载和调试。 PA8驱动工作状态LED。 这四个管脚对应的LED控制。 PA0 输入外部接收信号。 下面再配置其他资源。 设置 定时器1 , 使其处于 40kHz 中断状态。 配置 UART1 的参数。 选择内部时钟源, 频率为 48MHz。 最后生成可以使用的工程文件。
通过对接收到的编码进行观察, 可以看到发送模块四个不同的管脚为1, 只是影响最高接收字节。 后面两个字节都是 aa。 由此, 可以推断出, 后面这些字节为地址和校验信息。 前面这八位, 分成四组, 分别对应四个设置管脚的高低电平。 可以根据这个特征来确定接收到的编码是否为合法的编码信息。 现在测试发射端控制端口不同的电瓶配置。 可以看到接收端根据前面分析, 软件实现对应的 LED 等点亮。 验证了前面分析的结果。 到此, 验证了这款微型无线模块接收的特性。 并利用单片机对接收到的 SC2262 编码进行了识别。 这位后面验证功率模块发送能力奠定了基础。 D:\zhuoqing\window\ARM\IAR\STM32\Application\Test\2023\SC2262DecodeF030\Core\Src\main.c ※ 总 结 ※ 本文对于这款基于 SYN480R 微型无线接受模块进行了初步测试。 利用单片机对接收到的信号进行解码。 后面将进行远距离接收测试, 看一下这个模块接受的灵敏度。 ■ 相关文献链接: 原装正品 SYN480R 433M ASK/OOK 无线接收模块 无线遥控发射接收模块简介(SYN480R F115 433M )● 相关图表链接: 图1.2.1 接收到的信号波形图1.4.1 单片机解码电路图1.4.2 单面制版电路PCB 解码相关程序 /* **============================================================================== ** CONTROL.C: -- by Dr. ZhuoQing, 2015-11-29 ** **============================================================================== */ //============================================================================== // //------------------------------------------------------------------------------ extern TIM_HandleTypeDef htim1; void ControlInit(void) { HAL_TIM_Base_Start_IT(&htim1); OUT(LED1); OUT(LED2); OUT(LED3); OUT(LED4); //-------------------------------------------------------------------------- g_ucLastStatus = VAL(INPUT); g_nOffCount = 0; g_nOnCount = 0; g_ucDecodeStatus = DECODE_STATUS_NULL; g_nReceiveCode = 0; g_nReceiveMask = 0x1; g_nReceiveCodeKeep = 0; g_nWaitCount = 0xffff; g_ucUpdateFlag = 0; } //------------------------------------------------------------------------------ void Time1ISR(void) { //-------------------------------------------------------------------------- g_nWaitCount ++; if(g_nWaitCount > 5000) { g_ucDecodeStatus = DECODE_STATUS_NULL; } //-------------------------------------------------------------------------- if(VAL(INPUT)) { // ON(LED); if(g_ucLastStatus == 0) { if(g_ucDecodeStatus == DECODE_STATUS_WAIT) { g_ucDecodeStatus = DECODE_STATUS_BIT; } } g_nOnCount ++; g_nOffCount = 0; g_ucLastStatus = 1; } else { // OFF(LED); if(g_ucLastStatus != 0) { if(g_ucDecodeStatus == DECODE_STATUS_BIT) { if(g_nOnCount > 40) g_nReceiveCode |= g_nReceiveMask; g_nReceiveMask if((nCode & 0xffff) != 0xaaaa) return 0x0; unsigned char ucCode = 0x0; nCode >>= 16; unsigned char ucBit2 = nCode & 0x3; if(ucBit2 == 0x3) ucCode |= 1; else if(ucBit2 != 0x0) return 0; nCode >>= 2; ucBit2 = nCode & 0x3; if(ucBit2 == 0x3) ucCode |= 2; else if(ucBit2 != 0x0) return 0; nCode >>= 2; ucBit2 = nCode & 0x3; if(ucBit2 == 0x3) ucCode |= 4; else if(ucBit2 != 0x0) return 0; nCode >>= 2; ucBit2 = nCode & 0x3; if(ucBit2 == 0x3) ucCode |= 8; else if(ucBit2 != 0x0) return 0; return ucCode; } void SetLEDsCode(unsigned char ucCode) { if(ucCode & 0x1) ON(LED1); else OFF(LED1); if(ucCode & 0x2) ON(LED2); else OFF(LED2); if(ucCode & 0x4) ON(LED3); else OFF(LED3); if(ucCode & 0x8) ON(LED4); else OFF(LED4); } //============================================================================== // END OF THE FILE : CONTROL.C //------------------------------------------------------------------------------ /* **============================================================================== ** CONTROL.H: -- by Dr. ZhuoQing, 2015-11-29 ** ** Description: ** **============================================================================== */ //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ //============================================================================== // //------------------------------------------------------------------------------ void ControlInit(void); void Time1ISR(void); //------------------------------------------------------------------------------ CONTROL_EXT unsigned char g_ucLastStatus, g_ucDecodeStatus, g_ucUpdateFlag; CONTROL_EXT unsigned int g_nOffCount, g_nOnCount; CONTROL_EXT unsigned int g_nReceiveCode, g_nReceiveMask, g_nReceiveCodeKeep; CONTROL_EXT unsigned int g_nWaitCount; unsigned char DecodeCode(unsigned int nCode); void SetLEDsCode(unsigned char ucCode); //============================================================================== // END OF THE FILE : CONTROL.H //------------------------------------------------------------------------------ |
CopyRight 2018-2019 实验室设备网 版权所有 |