433M无限遥控发射与接收

您所在的位置:网站首页 430m遥控器对码 433M无限遥控发射与接收

433M无限遥控发射与接收

2024-07-10 06:58| 来源: 网络整理| 查看: 265

最近给家里更换了WIFI控制的卷帘门,原先为单片机与手机通讯,控制遥控器,但最近遥控器坏了,所以查了下卷帘门遥控器的通讯方式,从淘宝买了发射与接收模块,自己把遥控器也集成了。如图:

左图接收,右图发射

每个模块上三个口,GND,VCC,DATA信号线,最后一个孔是装天线的,可以无视。

GND VCC不必多说,3.3V供电的。

DATA信号线就是通讯的基础,如果发射模块下,DATA信号为高电平,那么接收模块上的DATA信号也是高电平,反之低电平也是一样。

当然这是需要433震荡的,所以如果不能“高低高低”的发送震荡似的电平信号,DATA引脚自己就会震荡,示波器单独去测量信号就会变得没有意义。

介绍完硬件,然后是433M的通讯协议:

两者通讯方式是震荡,既然如此,如何表达MCU上的0与1呢?

很简单,在震荡中去取出DATA引脚上的低电平信号时间。如果低电平信号持续时间在0~500us之间,则认为时数据1,如果低电平持续时间在750~1500之间,则认为数据0。

当然,具体时间与数据0和1对应可以自行定义,或者根据自己家的遥控器,卷帘门等设备进行对应。

最后是通讯协议:

为了滤除无意义的震荡信号,所以卷帘门遥控器的通讯协议如下:

1,开始同步信号:发送9ms~14ms之间的低电平信号,认为通讯开始。

2,然后发送24bit的数据信号,如:0x55AAFF即可。

具体遥控器发送的数据是什么意义,我们不管,只要复制下来即可。

下面直接看接收遥控器信号的程式:

1.先定义一个引脚检测DATA信号,这里我用的是PB8,接入接收模块的DATA信号脚上。

#define RF_Dat            ((GPIOB->IDR & GPIO_IDR_8)>>8)

引脚配置如下:高速,下拉。

RCC->AHBENR |= RCC_AHBENR_GPIOBEN;

GPIOB->MODER = (GPIOB->MODER & ~GPIO_MODER_MODER8);

GPIOB->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR8;

GPIOB->PUPDR |= (GPIOB->PUPDR & ~GPIO_PUPDR_PUPDR8) | GPIO_PUPDR_PUPDR8_1;

2.再定义一个定时器,不停的低电平引脚检测时间,以50us为例:

则数据0与1的低电平信号时间如下:

#define _start_us_min    180//同步信号的低电平持续时间,最低值9ms #define _start_us_max    280//同步信号的低电平持续时间,最高值14ms #define _num0_us_min    15//数据0,低电平信号持续时间,最低值750us #define _num0_us_max    30//数据0,低电平信号持续时间,最高值1500us #define _num1_us_min    0//数据1,低电平信号持续时间,最低值0us #define _num1_us_max    10//数据1,低电平信号持续时间,最高值500us

定时器配置如下:

RCC->APB1ENR |= 0X00000002;//TIM3

TIM3->ARR = 400;//72M/400/(8+1)=0.01M=50us

TIM3->PSC = 8;

TIM3->CR1 &= 0XFF87;

TIM3->DIER |= 0X0001;//UIE

TIM3->CR1 |= 0X0001;

NVIC->ISER[TIM3_IRQn/32]|=1SR&=~(1OSPEEDR |= GPIO_OSPEEDER_OSPEEDR7;     GPIOA->PUPDR |= (GPIOA->PUPDR & ~GPIO_PUPDR_PUPDR7) | GPIO_PUPDR_PUPDR7_0;     GPIOA->BSRR |= 0X1ARR = 400;//72M/400/(8+1)=0.01M=50us     TIM2->PSC = 8;     TIM2->CR1 &= 0XFF87;     TIM2->DIER |= 0X0001;//UIE     TIM2->CR1 |= 0X0001;     NVIC->ISER[TIM2_IRQn/32]|=1SR&=~(1



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3