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

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

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

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

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

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

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

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

實驗器材準備:

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

一、獲取遙控器的波形

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

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

圖片

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

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

二、用單片機產(chǎn)生紅外信號

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

這里就是要稍微注意一下紅外信號的特點,這在我之前的文章里有詳細講過,這里再說一下:

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

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

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

首先我們把上面的序列保存在數(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);           //理論計算與實際有偏差,需要進行一定的修正
    flag=1;         //表示需要發(fā)送低電平,體現(xiàn)為一段脈沖
    count=0;
    while(count

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

//發(fā)送普通的電平,電平1或者電平0,第二個參數(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)的信號發(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));    //理論計算與實際有偏差,需要進行一定的修正
  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ù)中進行調(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)先級分組 分2組
  LED_Init();
  KEY_Init();
  TIM4_Init(13,72-1);  //定時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)過實際測試,確實可以控制我們的空調(diào)。

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

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

    關(guān)注

    6036

    文章

    44557

    瀏覽量

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

    關(guān)注

    7

    文章

    2705

    瀏覽量

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

    關(guān)注

    11

    文章

    1228

    瀏覽量

    58583
  • 信號
    +關(guān)注

    關(guān)注

    11

    文章

    2791

    瀏覽量

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

    關(guān)注

    18

    文章

    837

    瀏覽量

    66108
收藏 人收藏

    評論

    相關(guān)推薦

    紅外遙控器DIY自制

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

    自制紅外遙控器

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

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

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

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

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

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

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

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

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

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

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

    自制電腦紅外遙控器

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

    紅外遙控器模塊+紅外測試代碼

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

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

    為了解決空調(diào)遙控器不兼容問題,設(shè)計了一款基于Atmega16單片機的智能空調(diào)遙控器。該遙控器采用測量脈沖寬度的方法學(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è)計,實現(xiàn)紅外遙控器的復(fù)制與紅外信號的發(fā)送

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

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

    STM32解析美的空調(diào)紅外遙控器1.紅外線簡介??在光譜中波長自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è)計與實現(xiàn)

    本文設(shè)計的是一款基于單片機的紅外智能空調(diào)遙控器,這種遙控器能采用測量脈沖寬度的方法學(xué)習(xí)紅外信號,同時使用游程編碼算法對數(shù)據(jù)進行壓縮后存儲,并
    發(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è)計與實現(xiàn)

    Remote紅外遙控器

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

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

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