0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

紅外線簡介 美的空調(diào)紅外遙控器協(xié)議R05D說明

嵌入式技術(shù) ? 來源:嵌入式技術(shù) ? 作者:嵌入式技術(shù) ? 2022-05-28 18:42 ? 次閱讀

1.紅外線簡介

光譜中波長自760nm至400um的電磁波稱為紅外線,它是一種不可見光。目前幾乎所有的視頻音頻設備都可以通過紅外遙控的方式進行遙控,比如電視機、空調(diào)、影碟機等,都可以見到紅外遙控的影子。這種技術(shù)應用廣泛,相應的應用器件都十分廉價,因此紅外遙控是我們?nèi)粘TO備控制的理想方式。

2.美的空調(diào)紅外遙控器協(xié)議R05D

美的空調(diào)紅外遙控器采用R05D格式,載波頻率為38KHZ。
數(shù)據(jù)格式:引導碼+48位數(shù)據(jù)+分隔碼+48位數(shù)據(jù)(LAA’BB’CC’ S LAA’BB’CC’)

L為引導碼;
ABC為實際數(shù)據(jù),A’為A的反碼,B’為B的反碼,C’為C的反碼;
S為分隔碼;
第二幀數(shù)據(jù)和第一幀一樣;
L引導碼4.5ms低電平+4.5ms高電平(以解析方分析,編碼方剛好相反,下面不再概述)

在這里插入圖片描述

數(shù)據(jù)A:A為識別碼(A=10110010=0xB2,預留方案時A=10110111=0xB7)

數(shù)據(jù)B

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDQ1MzY5NA==,size_16,color_FFFFFF,t_70#pic_center

數(shù)據(jù)C

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDQ1MzY5NA==,size_16,color_FFFFFF,t_70#pic_center

關(guān)機鍵值
? 關(guān)機為固定編碼鍵值:
??A=1011 0010 --0xB2
??B=0111 1011 --0x7B
??C=1110 0000 --0xE0

數(shù)據(jù)0格式

在這里插入圖片描述

數(shù)據(jù)1格式

在這里插入圖片描述

分隔碼

在這里插入圖片描述

完整時序圖

在這里插入圖片描述

3.軟件設計

??本次采用外部中斷+定時器方式完成紅外數(shù)據(jù)解析。
??1.紅外數(shù)據(jù)解析程序

/*********紅外線初始化************
**
**REMOTE_IN --PB9
**
***********************************/
void HS0038_Init(void)
{
  RCC->APB2ENR|=1<<3;//PB
  GPIOB->CRH&=0xFFFFFF0F;
  GPIOB->CRH|=0x00000080;
  EXTI_Config(GPIO_B,9,EXTI_FTSR);//下將沿觸發(fā)
  STM32_NVIC_SetPriority(EXTI9_5_IRQn,0,0);//設置優(yōu)先級
  TIMx_Init(TIM1,72,65535);//定時器1初始化
}
/*************獲取高電平時間****************/
u16 Infrared_GetTimeH(void)
{
  TIM1->CNT=0;//清空計數(shù)器值
  TIM1->CR1|=1<<0;
  while(REMOTE_IN);//等待引腳拉低
  TIM1->CR1&=~(1<<0);
  return TIM1->CNT;
}
/******************獲取低電平時間**************/
u16 Infrared_GetTimeL(void)
{
  TIM1->CNT=0;//清空計數(shù)器值
  TIM1->CR1|=1<<0;
  while(REMOTE_IN==0);//等待引腳拉高
  TIM1->CR1&=~(1<<0);
  return TIM1->CNT;
}
//美的空調(diào)17~30℃數(shù)據(jù)順序排放
const char r05d_temp[15]={0,1,3,2,6,7,5,4,12,13,9,8,10,11,14};//溫度數(shù)據(jù),17~30
u32 infrared_data=0;//保存解析的32位數(shù)據(jù)
u8 infrared_stat=0;//解析成功標志位
u8 infrared_buff[6]={0};
/*******EXTI5~9中斷服務函數(shù)**********/
void EXTI9_5_IRQHandler(void)
{
  u16 time;
  u8 i=0,j=0;
  EXTI->PR|=1<<9;//清除標志位
  /*1.接收引導碼:4.5ms低電平+4.5ms高電平*/
  time=Infrared_GetTimeL();
  if(time<=3500 || time>=5500)return;
  time=Infrared_GetTimeH();
  if(time<3500 || time>5500)return ;  
  for(i=0;i<6;i++)
  {
    for(j=0;j<8;j++)
    {
      time=Infrared_GetTimeL();//間隔碼:540us低電平
      if(time<350 || time>650)return ;
      time=Infrared_GetTimeH();
      if(time>=1550 &&  time<=1850)
      {
        infrared_buff[i]<<=1;
        infrared_buff[i]|=0x01;
      }
      else if(time>=420 && time<=700)
      {
        infrared_buff[i]<<=1;
      }
     else return ;
    }
  }
  infrared_stat=1;//數(shù)據(jù)解析完成
}

2.主函數(shù)

int main()
{
  u8 i=0;
  u8 wind;
  u8 mode;
  u8 temp;
  Beep_Init();
  Led_Init();
  Key_Init();
  u8 data[6];
  Usartx_Init(USART1,115200,72);
  HS0038_Init();
  while(1)
  {
      if(infrared_stat==1)
      {
        BEEP=1;
        Delay_Ms(50);
        BEEP=0;
        for(i=0;i<6;i++)
        {
          if(data[i]!=infrared_buff[i])break;
        }
        if(i!=6)
        {
          for(i=0;i<6;i++)
          {
            data[i]=infrared_buff[i];
          }
          //printf("data:%#xrn",infrared_data);
          if(data[2]==0x7B && data[4]==0xE0)
          {
               printf("關(guān)機rn");
          }
          else if(data[2]==0x6b && data[4]==0xE0)
          {
            printf("左右掃風rn");
          }
          else if(data[0]==0xb5 && data[2]==0xf5)//其它
          {
            
          }
          else
          {
            wind=(data[2]>>5)&0x7;//風速
            mode=(data[4]>>2)&0x3;//模式
            temp=(data[4]>>4)&0xf;//溫度
            //printf("風速:%drn",wind);
            //printf("模式:%drn",mode);
            //printf("溫度:%#xrn",temp);
            if(wind==WIND_1)printf("自動,");
            else if(wind==WIND_2)printf("低風,");
            else if(wind==WIND_3)printf("中風,");
            else if(wind==WIND_4)printf("高風,");
            else if(wind==WIND_5)printf("固定風,");
            
            if(mode==MODE_1)printf("自動,");
            else if(mode==MODE_2)printf("制冷,");
            else if(mode==MODE_3 && temp==T_31)printf("送風,");
            else if(mode==MODE_3)printf("抽濕,");
            else if(MODE_4)printf("制熱,");
            for(i=0;i<15;i++)
            {
              if(temp==r05d_temp[i])printf("溫度:%drn",17+i);
            } 
          }
        }
        infrared_stat=0;
      }
  }
}
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDQ1MzY5NA==,size_16,color_FFFFFF,t_70#pic_center在這里插入圖片描述


審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 空調(diào)
    +關(guān)注

    關(guān)注

    11

    文章

    1228

    瀏覽量

    58586
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10900

    瀏覽量

    355982
  • 美的
    +關(guān)注

    關(guān)注

    13

    文章

    468

    瀏覽量

    37614
  • 紅外遙控器
    +關(guān)注

    關(guān)注

    3

    文章

    133

    瀏覽量

    21673
收藏 人收藏

    評論

    相關(guān)推薦

    想用stm32發(fā)射紅外線控制寢室空調(diào),但是不知道奧克斯空調(diào)遙控器 YKR-H/112 發(fā)出的紅外線編碼格式,有大神可以知道嗎?

    初學者,想用stm32發(fā)射紅外線控制寢室空調(diào),但是不知道奧克斯空調(diào)遙控器 YKR-H/112遙控器發(fā)出的
    發(fā)表于 01-03 21:32

    紅外線遙控器原理及編程 精選資料分享

    紅外線遙控器內(nèi)部有發(fā)射不同對應紅外線信號的芯片,而其接收端則是一個光感二極管,該二極管可根據(jù)遙控器發(fā)射的紅外線信號進行相應的電壓改變,但是是
    發(fā)表于 07-21 09:22

    如何用R05D紅外接收管對遙控器紅外接收進行波形分析呢

    R05D紅外協(xié)議的原理是什么?如何用R05D紅外接收管對遙控器紅外接收進行波形分析呢?
    發(fā)表于 02-15 07:18

    紅外遙控器協(xié)議R05D具有哪些特性參數(shù)?

    紅外遙控器協(xié)議R05D具有哪些特性參數(shù)?
    發(fā)表于 02-15 06:26

    紅外線遙控器解碼程序

    紅外線遙控器解碼程序 紅外線遙控是目前使用最廣泛的一種通信和遙控手段。由于紅外線
    發(fā)表于 02-02 10:52 ?3152次閱讀
    <b class='flag-5'>紅外線</b><b class='flag-5'>遙控器</b>解碼程序

    PC紅外線遙控器

    PC紅外線遙控器大家可以試一試哈,歡迎下載!
    發(fā)表于 12-10 16:16 ?7次下載

    PC紅外線遙控器

    PC紅外線遙控器,很好設計資料,快來學習吧。
    發(fā)表于 05-09 17:07 ?0次下載

    紅外線遙控器電路原理圖

    紅外線遙控器電路原理圖
    發(fā)表于 02-08 02:02 ?129次下載

    自制電腦紅外線遙控器的詳細資料說明

    本文檔的主要內(nèi)容詳細介紹的是自制電腦紅外線遙控器的詳細資料說明
    發(fā)表于 11-28 08:00 ?11次下載
    自制電腦<b class='flag-5'>紅外線</b><b class='flag-5'>遙控器</b>的詳細資料<b class='flag-5'>說明</b>

    紅外線的基本特性有哪些

    紅外線技術(shù)是在近幾十年發(fā)展起來的一門學科。紅外線是一種十分豐富的波語{目前已在工業(yè)、農(nóng)業(yè)、國防、日常生活、醫(yī)療衛(wèi)生等多方面得到了廣泛應用,例如紅刊熱、紅外線治療儀、紅外線通信、金融保安
    的頭像 發(fā)表于 02-13 17:40 ?4w次閱讀

    【STM32】R05D電控紅外協(xié)議美的空調(diào)遙控器

    2.R05D時序?qū)崿F(xiàn)3.調(diào)用函數(shù)并驗證一、設計思路通常紅外遙控采用NEC傳輸協(xié)議,而美的空調(diào)采用
    發(fā)表于 12-17 17:46 ?22次下載
    【STM32】<b class='flag-5'>R05D</b>電控<b class='flag-5'>紅外協(xié)議</b>的<b class='flag-5'>美的</b><b class='flag-5'>空調(diào)</b><b class='flag-5'>遙控器</b>

    STM32解析美的空調(diào)紅外遙控器

    空調(diào)、影碟機等,都可以見到紅外遙控的影子。這種技術(shù)應用廣泛,相應的應用器件都十分廉價,因此紅外遙控是我們?nèi)粘TO備控制的理想方式。2.
    發(fā)表于 12-17 17:50 ?42次下載
    STM32解析<b class='flag-5'>美的</b><b class='flag-5'>空調(diào)</b><b class='flag-5'>紅外</b><b class='flag-5'>遙控器</b>

    使用紅外線遙控器可以隨時打開電視

    電子發(fā)燒友網(wǎng)站提供《使用紅外線遙控器可以隨時打開電視.zip》資料免費下載
    發(fā)表于 12-23 17:49 ?1次下載
    使用<b class='flag-5'>紅外線</b><b class='flag-5'>遙控器</b>可以隨時打開電視

    紅外線遙控器使用方法

    紅外線遙控器是一種常見的電子設備,廣泛應用于家庭、商業(yè)和工業(yè)領域。它可以通過紅外線信號與相應的設備進行通信,實現(xiàn)控制和操作。本文將詳細介紹紅外線遙控
    的頭像 發(fā)表于 12-20 11:31 ?5123次閱讀

    如何提高紅外線發(fā)射管在遙控器上的發(fā)射距離

    如何提高紅外線發(fā)射管在遙控器上的發(fā)射距離? 遙控器成為了我們?nèi)粘I钪胁豢苫蛉钡囊徊糠?,我們通過遙控器可以控制電視、空調(diào)、音響等大量設備。而
    的頭像 發(fā)表于 01-31 14:47 ?3315次閱讀