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

钢材原材料东莞网站建设网站优化排名首页

钢材原材料东莞网站建设,网站优化排名首页,青岛胶南做网站的,免费的网站开发软件基于STM32的格力空调红外控制 1.红外线简介 在光谱中波长自760nm至400um的电磁波称为红外线,它是一种不可见光。目前几乎所有的视频和音频设备都可以通过红外遥控的方式进行遥控,比如电视机、空调、影碟机等,都可以见到红外遥控的影子。这种技…

基于STM32的格力空调红外控制

1.红外线简介

  在光谱中波长自760nm至400um的电磁波称为红外线,它是一种不可见光。目前几乎所有的视频和音频设备都可以通过红外遥控的方式进行遥控,比如电视机、空调、影碟机等,都可以见到红外遥控的影子。这种技术应用广泛,相应的应用器件都十分廉价,因此红外遥控是我们日常设备控制的理想方式。

2.格力空调红外协议学习分析

  要实现格力空调红外遥控功能,则首先要了解一下红外协议特性。在红外协议中一般由引导码、数据码、间隔码、重复码等几部分组成。接下来,将通过逻辑分析仪捕获一段格力空调的红外协议数据,实际分析其数据内容。

  • 硬件设备:
  • STM32开发板
  • 红外接收设备
  • 逻辑分析仪
  • 格力空调遥控器

在这里插入图片描述

2.1采集红外信号

  通过上图红外接收设备,捕获红外信号,利用逻辑分析仪分析捕获的数据内容。捕获波形如下:
在这里插入图片描述
  本次主要捕获的是开启空调和关闭空调两个键值数据。接下来则可进行数据分析。

2.波形数据分析

  • 引导码
    在这里插入图片描述
      引导码信号:9ms低电平+4.5ms高电平

  • 数据0
    在这里插入图片描述
      数据0:0.68ms低电平+0.53ms高电平

  • 数据1
    在这里插入图片描述
      数据1:0.68ms低电平+1.6ms高电平

  • 分隔码
    在这里插入图片描述
      分隔码:0.68ms低电平+20ms高电平

  • 间隔码
    在这里插入图片描述
      间隔码:0.68ms低电平+40ms高电平

  • 开空调波形
    在这里插入图片描述

  • 关空调波形
    在这里插入图片描述

3.输入捕获方式采集红外数据

  为了编译后续学习实现空调的开机和关键功能,首先可以通过红外接收头采集实际键值数据,通过定时器输入捕获方式将键值数据进行保存。
  本次红外案例红外接收头接入到开发板的PB9引脚,通过定时器4输入捕获进行数据采集。

  • 定时器输入捕获配置
/***********************定时器4输入捕获配置***********************
**               没有重映像          完全重映像
**TIM4_CH1          PB6                   PD12
**TIM4_CH2          PB7                   PD13
**TIM4_CH3          PB8                   PD14
**TIM4_CH4          PB9                   PD15
**
******************************************************************/void TIM4_Input_Init(u16 psc,u16 arr)//72
{RCC->APB2ENR|=1<<3;//PBGPIOB->CRH&=~(0xF<<1*4);GPIOB->CRH|=0x8<<1*4;/*定时器配置*/RCC->APB1ENR|=1<<2;//TIM4RCC->APB1RSTR|=1<<2;RCC->APB1RSTR&=~(1<<2);TIM4->CNT=0;TIM4->PSC=psc-1;TIM4->ARR=arr;/*配置定时器输入捕获模式*/TIM4->CCMR2|=0x1<<8;//CH4配置为输入,CCR4保存CH4数据TIM4->CCER|=1<<13;//捕获发生在下降沿TIM4->DIER|=1<<4;//开启捕获中断STM32_NVIC_SetPriority(TIM4_IRQn,1,1);//设置优先级TIM4->CCER|=1<<12;//开启CH1输入捕获TIM4->CR1|=1<<0;//开启定时器
}
  • 红外数据采集示例
char buff[100];
u8 buff_data=0;
/**************TIM4中断服务函数***************/
void TIM4_IRQHandler(void)
{u16 time;u8 static recv_stat=0;u8 static i=0;if(TIM4->SR&1<<0){}if(TIM4->SR&1<<4)//捕获中断{TIM4->CNT=0;time=TIM4->CCR4;if(TIM4_CH4)//上升沿触发{TIM4->CCER|=1<<13;//下一次捕获下降沿if(recv_stat==0)//开始接收引导码{if(time>=8000 && time<=10000)recv_stat=1;//成功接收9ms低电平else recv_stat=0;}else if(recv_stat==2){//printf("引导码接收成功\r\n");if(time<550 || time>750) recv_stat=0;//650us间隔时间接收失败}}else //下降沿触发{TIM4->CCER&=~(1<<13);//下一次捕获上升沿if(recv_stat==1){if(time>=3500 && time<=5500)recv_stat=2;//引导码接收成功:9ms低+4.5高else recv_stat=0;}else if(recv_stat==2)//开始接收实际数据{if(time>=400 && time<=650)//数据0:650us低+530us高{buff[i++]=0;}else if(time>=1500 && time<=1700)//数据1:650us低+1.6ms高{buff[i++]=1;}else if(time>=18000 && time<=21000){buff[i++]=2;//间隔}else if(time>=38000 && time<=42000){//printf("i=%d\r\n",i);buff_data=i;recv_stat=0;i=0;infrared_flag=3;}else {i=0;recv_stat=0;infrared_data=0;}}}}TIM4->SR=0;//清除标志
}

在这里插入图片描述

4.开关机学习示例

  • 硬件设备
  • STM32开发板
  • 红外发送头

在这里插入图片描述

4.1 38KHZ载波信号发送

  本次使用的红外发射模块工作频率为38KHZ,发送数据高低电平采用1:1方式。发送高电平需要发送38KHZ的方波脉冲信号(高低电平1:1方式),发送第低低电平则直接将引脚拉低即可。

/*****************发送38KHZ载波*********************
**38KHZ载波:1/38000HZ=26us,按照高低电平1:1发送载波
**形参:u32 time --持续时间
**u8 stat --转态(1表示发送,0表示不发送)
*****************************************************/
void Infrared_Send38KHZ(u32 time,u8 stat)
{u32 i=0;if(stat){for(i=0;i<time/13;i++){RED_IE=!RED_IE;DelayUs(13);}}else//发送低电平{RED_IE=0;DelayUs(time);}
}

4.2 开关键值发送函数示例

//格力空调协议数据发送
void Infrared_GreeSendData(u8*data,int cnt)
{/*1.发送9ms低电平*/Infrared_Send38KHZ(9000,1);/*2.发送4.5ms高电平*/Infrared_Send38KHZ(4500,0);	u32 i;for(i=0;i<cnt;i++){Infrared_Send38KHZ(650,1);//发送间隔时间,650us的低电平if(data[i]=='1')Infrared_Send38KHZ(1600,0);//数据1else if(data[i]=='0')Infrared_Send38KHZ(530,0);//数据0else if(data[i]=='2')Infrared_Send38KHZ(20000,0);//间隔码}Infrared_Send38KHZ(650,1);//发送间隔时间,650us的低电平Infrared_Send38KHZ(40000,0);//间隔码/*1.发送9ms低电平*/Infrared_Send38KHZ(9000,1);/*2.发送4.5ms高电平*/Infrared_Send38KHZ(4500,0);	for(i=0;i<cnt;i++){Infrared_Send38KHZ(650,1);//发送间隔时间,650us的低电平if(data[i]=='1')Infrared_Send38KHZ(1600,0);//数据1else if(data[i]=='0')Infrared_Send38KHZ(530,0);//数据0else if(data[i]=='2')Infrared_Send38KHZ(20000,0);//间隔码}Infrared_Send38KHZ(650,1);//发送间隔时间,650us的低电平
}
http://www.hengruixuexiao.com/news/6353.html

相关文章:

  • 杭州科技学校网站建设合肥seo服务商
  • php mysql购物网站开发互联网营销顾问
  • wordpress 搜索结果高亮网站的优化
  • 网站怎么建设及推广最近最火的关键词
  • 网站设计需要用到什么技术seo线上培训机构
  • 做暖暖网站企业管理培训课程
  • nginx wordpress 403 forbidden免费seo推广计划
  • 建设银行官方网站企业网银站长之家统计
  • 安阳网站制作网页广告调词平台多少钱
  • 网站群建设项目招标公告百度开户流程
  • 网站后台怎么管理凡科建站
  • 动态网站开发用的程序网络营销技巧和营销方法
  • 做斗图网站uv推广平台
  • 做一年的网站维护价格百度公司有哪些部门
  • 黔江网站制作网站一级域名和二级域名
  • 做门户网站最重要的是什么中国新冠一共死去的人数
  • 金融企业类网站模板免费下载招聘网站排名
  • 页面模板怎么设置优就业seo怎么样
  • 建网站和开发app哪个难免费推广方式有哪些
  • 网站做md5脚本惠州seo快速排名
  • 网站后台分模块星巴克营销策划方案
  • 个人网站做商城会怎样百度seo怎么查排名
  • 旅游网站的设计方案怎么做百度搜索引擎的优缺点
  • 门户网站建设公司报价seo网站推广技术
  • 西宁圆井模板我自己做的网站百度号码
  • 随身办app下载搜索引擎优化的办法有哪些
  • 什么网站可以做线上邀请函sem是什么设备
  • 13个实用平面设计网站调研报告万能模板
  • 用dw做购物网站seo工作是什么意思
  • 济南网站建设0531soso网站推广的方法有哪些?