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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

使用紅外發(fā)射模塊自制空調(diào)遙控器

CHANBAEK ? 來源:嵌入式大本營(yíng) ? 作者:小小飛飛哥 ? 2023-05-23 15:43 ? 次閱讀

我們家里的空調(diào)、電視等,它們的遙控器都是通過紅外信號(hào)來控制的。 其實(shí),我們可以自己用紅外發(fā)射模塊來做一個(gè)遙控器。

關(guān)于紅外的知識(shí),大家可以參考我之前的文章,這里就不再贅述了。

要自己實(shí)現(xiàn)紅外遙控器的功能,思路其實(shí)很簡(jiǎn)單,首先,我們需要知道原來遙控器發(fā)射的信號(hào)是怎么樣的,然后我們只要用紅外發(fā)射模塊發(fā)射一個(gè)一模一樣的信號(hào)就行了。

實(shí)驗(yàn)器材準(zhǔn)備:

紅外接收模塊、紅外發(fā)射模塊、邏輯分析儀。

一、獲取遙控器的波形

我們使用紅外接收模塊,連上邏輯分析儀,然后使用空調(diào)遙控器對(duì)著紅外接收模塊發(fā)射信號(hào),這時(shí)邏輯分析儀就采集到了紅外信號(hào)。 這一部分不需要什么代碼。

這是我用邏輯分析儀采集到格力空調(diào)按下“打開”按鈕時(shí)的波形。

圖片

分析一下波形,可以知道,先是有一段約9ms的低電平,然后是4.5ms的高電平,再是一段0 1構(gòu)成的序列,中間是20.5ms的高電平,再經(jīng)過一段序列結(jié)束。

那些序列就是真正的信號(hào),里面有控制空調(diào)的相關(guān)信息,當(dāng)然,不同的空調(diào)肯定是不一樣的,這是廠家定義的。

二、用單片機(jī)產(chǎn)生紅外信號(hào)

知道了遙控器發(fā)射的波形,我們不需要去理解它是什么含義,只要照著來發(fā)射一段相同的波形,就能實(shí)現(xiàn)功能。

這里就是要稍微注意一下紅外信號(hào)的特點(diǎn),這在我之前的文章里有詳細(xì)講過,這里再說一下:

對(duì)于紅外信號(hào)來說,當(dāng)你發(fā)射一段脈沖時(shí)(脈沖頻率通常是38khz),紅外接收端收到的是低電平,否則,收到的是高電平。

也就是說,你如果希望接收端收到的是低電平,你不是要發(fā)射低電平,而是發(fā)射一段脈沖。 比如上面最開始是9ms的低電平,那么你需要發(fā)射一段持續(xù)9ms的脈沖。

還有就是邏輯0是一段低電平加上一段不長(zhǎng)的高電平,邏輯1是一段低電平加上一段較長(zhǎng)的高電平。 在這里,0是0.62ms低電平+0.56ms高電平,1是0.65ms低電平+1.7ms高電平。

首先我們把上面的序列保存在數(shù)組里面,因?yàn)橹虚g有一段較長(zhǎng)的高電平時(shí)間,所以把它分成兩段來保存。

char open_1[]={1,0,0,1,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,1,0,0};
char open_2[]={1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1};
char close_1[]={1,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,1,0,0};
char close_2[]={1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0};

然后我們把發(fā)送邏輯1或者邏輯0封裝成函數(shù)

//發(fā)送紅外格式的1或者0。1:0.65ms高電平+1.67ms低電平   0:0.56ms低電平+0.55ms高電平
void sendData(int n)
{
  if(n==0)
  {
    endcount=t(650-100);           //理論計(jì)算與實(shí)際有偏差,需要進(jìn)行一定的修正
    flag=1;         //表示需要發(fā)送低電平,體現(xiàn)為一段脈沖
    count=0;
    while(count

把發(fā)送一段長(zhǎng)時(shí)間的高電平或者低電平封裝成函數(shù)

//發(fā)送普通的電平,電平1或者電平0,第二個(gè)參數(shù)是由上面的宏定義得到
void sendUsrLevel(int level,int t)
{
  endcount=t;
  count=0;
  if(level==0)
  {
    flag=1;
  }
  else{
    flag=0;
  }
  while(count

最后調(diào)用上面的函數(shù)把控制空調(diào)的信號(hào)發(fā)射出去

//控制空調(diào)的開或者關(guān),0:關(guān)閉空調(diào),1:開啟空調(diào)
void ControlAirConditioner(int cmd)
{
  char len=0;
  sendUsrLevel(0,t(9000-600));    //理論計(jì)算與實(shí)際有偏差,需要進(jìn)行一定的修正
  sendUsrLevel(1,t(4500-350));
  if(cmd==0)   //關(guān)閉空調(diào)
  {
    len=sizeof(open_1)/sizeof(open_1[0]);
    for(int i=0;i

在main函數(shù)中進(jìn)行調(diào)用,通過按鍵來控制空調(diào)的開或者關(guān)

int main()
{
  u8 i,ret=0;
  count = 0;
  flag = 0;
  OP = 0;
  IR_OUT = 1;
  SysTick_Init(72);
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  //中斷優(yōu)先級(jí)分組 分2組
  LED_Init();
  KEY_Init();
  TIM4_Init(13,72-1);  //定時(shí)13us



  while(1)
  {
    i++;
    if(i%20==0)
    {
      led1=!led1;
    }
//    delay_ms(1000);  

    ret=KEY_Scan(0);
    if(ret==KEY_LEFT)
    {
      ControlAirConditioner(1);      //開空調(diào)
//      sendUsrLevel(0,t(9000));
//      sendUsrLevel(1,t(4500));
    }
    if(ret==KEY_RIGHT)
    {
      ControlAirConditioner(0);       //關(guān)空調(diào)
    }
  }
}

經(jīng)過實(shí)際測(cè)試,確實(shí)可以控制我們的空調(diào)。

總的來說,思路比較簡(jiǎn)單,就是捕獲遙控器的信號(hào),這個(gè)作為標(biāo)準(zhǔn)信號(hào),然后使用紅外發(fā)射模塊發(fā)射一個(gè)和他一樣的信號(hào),另外就是這個(gè)需要使用邏輯分析儀去好好分析你實(shí)際產(chǎn)生的波形和標(biāo)準(zhǔn)波形的偏差,理論計(jì)算與實(shí)際難免有誤差。

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

    關(guān)注

    6022

    文章

    44375

    瀏覽量

    628275
  • 模塊
    +關(guān)注

    關(guān)注

    7

    文章

    2611

    瀏覽量

    47005
  • 空調(diào)
    +關(guān)注

    關(guān)注

    11

    文章

    1205

    瀏覽量

    58383
  • 信號(hào)
    +關(guān)注

    關(guān)注

    11

    文章

    2739

    瀏覽量

    76166
  • 遙控器
    +關(guān)注

    關(guān)注

    18

    文章

    824

    瀏覽量

    65363
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    紅外遙控器DIY自制

    自制一個(gè)電腦遙控接收,是非常容易的。我們制作的電腦遙控器必須使用紅外方式的紅外
    發(fā)表于 12-22 15:46 ?2.4w次閱讀

    自制紅外遙控器

    想用51單片機(jī)自制一個(gè)紅外遙控器,望各位學(xué)長(zhǎng)不吝賜教!
    發(fā)表于 10-29 13:22

    格力空調(diào)y502k遙控器怎么寫代碼

    求大神指點(diǎn)格力空調(diào)y502k遙控器發(fā)射程序編寫。我們想自己通過紅外發(fā)射通過52單片機(jī)編程控制空調(diào)
    發(fā)表于 08-17 19:50

    智能遙控器 紅外發(fā)射接收系統(tǒng)

    完成了項(xiàng)目,本智能紅外遙控器可以對(duì)16個(gè)鍵的紅外信號(hào)學(xué)習(xí)和發(fā)射,同時(shí)還做了第二功能鍵,對(duì)兩個(gè)不同遙控器的鍵可以學(xué)習(xí)后同時(shí)發(fā)出,比如電視機(jī)和機(jī)
    發(fā)表于 04-25 22:36

    手機(jī)紅外空調(diào)遙控器DIY制作

    里,能不能用手機(jī)作為遙控器來開空調(diào)呢?答案當(dāng)然是肯定的,有些智能手機(jī)本身就會(huì)標(biāo)配有紅外發(fā)射器,那么只需要下載相應(yīng)的空調(diào)
    發(fā)表于 07-10 00:31

    如何自制一款功能固定的紅外遙控器

    如題現(xiàn)有自帶紅外遙控器的家庭影院音響一套,想應(yīng)用在酒店場(chǎng)景中,即插卡上電以后,音響自動(dòng)打開并播放。由于音響本身上電以后保持待機(jī)狀態(tài),必須要通過遙控開關(guān)或者主機(jī)開關(guān)按鈕才能是開機(jī)狀態(tài)。因此想自制
    發(fā)表于 01-10 15:51

    如何用普通遙控器遙控電腦

    ,一般的電視機(jī)遙控器即可,售價(jià)在十幾元。注意,不要使用空調(diào)遙控器,盡管它也是紅外發(fā)射的,但是每次按鍵后,它都會(huì)把
    發(fā)表于 04-27 07:40

    自制電腦紅外遙控器

      一句話,就是用電視遙控器控制電腦!   遙控器可以用隨便一個(gè)電視、VCD、DVD遙控器(空調(diào)遙控器不能用)   制作簡(jiǎn)單,最少只要6
    發(fā)表于 09-23 17:32 ?268次下載

    紅外遙控器模塊+紅外測(cè)試代碼

    紅外遙控器模塊+紅外測(cè)試代碼,不錯(cuò)的資料。
    發(fā)表于 11-10 11:04 ?43次下載

    智能學(xué)習(xí)型紅外空調(diào)遙控器分析

    為了解決空調(diào)遙控器不兼容問題,設(shè)計(jì)了一款基于Atmega16單片機(jī)的智能空調(diào)遙控器。該遙控器采用測(cè)量脈沖寬度的方法學(xué)習(xí)
    發(fā)表于 10-16 11:11 ?17次下載
    智能學(xué)習(xí)型<b class='flag-5'>紅外</b><b class='flag-5'>空調(diào)</b><b class='flag-5'>遙控器</b>分析

    基于STM32的紅外遙控器設(shè)計(jì),實(shí)現(xiàn)紅外遙控器的復(fù)制與紅外信號(hào)的發(fā)送

    模塊具體怎么實(shí)現(xiàn)的。1.目的:復(fù)制遙控器紅外波形然后發(fā)射出去控制紅外家電設(shè)備。2.怎么復(fù)制:A.我是通過STM32的定時(shí)
    發(fā)表于 11-25 09:06 ?23次下載
    基于STM32的<b class='flag-5'>紅外</b><b class='flag-5'>遙控器</b>設(shè)計(jì),實(shí)現(xiàn)<b class='flag-5'>紅外</b><b class='flag-5'>遙控器</b>的復(fù)制與<b class='flag-5'>紅外</b>信號(hào)的發(fā)送

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

    STM32解析美的空調(diào)紅外遙控器1.紅外線簡(jiǎn)介??在光譜中波長(zhǎng)自760nm至400um的電磁波稱為紅外線,它是一種不可見光。目前幾乎所有的視
    發(fā)表于 12-17 17:50 ?42次下載
    STM32解析美的<b class='flag-5'>空調(diào)</b><b class='flag-5'>紅外</b><b class='flag-5'>遙控器</b>

    智能學(xué)習(xí)型紅外空調(diào)遙控器的設(shè)計(jì)與實(shí)現(xiàn)

    本文設(shè)計(jì)的是一款基于單片機(jī)的紅外智能空調(diào)遙控器,這種遙控器能采用測(cè)量脈沖寬度的方法學(xué)習(xí)紅外信號(hào),同時(shí)使用游程編碼算法對(duì)數(shù)據(jù)進(jìn)行壓縮后存儲(chǔ),并
    發(fā)表于 02-11 14:11 ?28次下載
    智能學(xué)習(xí)型<b class='flag-5'>紅外</b><b class='flag-5'>空調(diào)</b><b class='flag-5'>遙控器</b>的設(shè)計(jì)與實(shí)現(xiàn)

    Remote紅外遙控器

    -Remote紅外遙控開源硬件,快速方便控制你的空調(diào)~ 概述 小安派-Remote具有2.4寸液晶顯示模塊、電池電量檢測(cè)模塊、離線語(yǔ)音
    的頭像 發(fā)表于 08-28 16:21 ?790次閱讀

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

    如何提高紅外發(fā)射管在遙控器上的發(fā)射距離? 遙控器成為了我們?nèi)粘I钪胁豢苫蛉钡囊徊糠?,我們通過遙控器
    的頭像 發(fā)表于 01-31 14:47 ?2353次閱讀