RM新时代网站-首页

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

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

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

Arduino篇—紅外遙控

冬至子 ? 來(lái)源:X的創(chuàng)客課堂 ? 作者:MRXY ? 2023-11-01 14:19 ? 次閱讀

相關(guān)知識(shí)

紅外遙控是一種無(wú)線(xiàn)、非接觸控制技術(shù),具有抗干擾能力強(qiáng),信息傳輸可靠,功耗低,成本低,易實(shí)現(xiàn)等顯著優(yōu)點(diǎn),被諸多電子設(shè)備特別是家用電器廣泛采用。

組成:紅外遙控器 + 紅外接收器

基本原理:紅外遙控的發(fā)射電路是采用紅外發(fā)光二極管來(lái)發(fā)出經(jīng)過(guò)調(diào)制的紅外光波;紅外接收電路由紅外接收二極管、三極管或硅光電池組成,它們將紅外發(fā)射器發(fā)射的紅外光轉(zhuǎn)換為相應(yīng)的電信號(hào),再送后置放大器。

圖片

發(fā)射部分:通過(guò)功率放大調(diào)制后的編碼信號(hào),再經(jīng)由發(fā)射電路向外發(fā)射調(diào)制后的指令編碼。

接收部分:接收到已調(diào)制的編碼信號(hào)并進(jìn)行放大解調(diào),還原出對(duì)應(yīng)的編碼信號(hào)。

圖片

電路搭建

所需材料

ArduinoUNO * 1
紅外接收模塊 * 1
紅外遙控器 * 1
紅黃藍(lán)綠LED各一
直流電機(jī) * 1
杜邦線(xiàn)若干

接線(xiàn)方式

接收器引腳定義:
"-"接UNO的"GND"
"S"接UNO的信號(hào)端口
中間的引腳接UNO的5V

圖片

程序編寫(xiě)

練習(xí)一:讀取紅外遙控器的鍵值

編程實(shí)現(xiàn)通過(guò)串口讀取紅外遙控器各個(gè)鍵位對(duì)應(yīng)的鍵值。

圖形化方式:

圖片

打開(kāi)串口監(jiān)視器,按下紅外遙控器上的按鍵,可以在監(jiān)視器上讀取到對(duì)應(yīng)的鍵值。正確的鍵值模式為“FF”開(kāi)頭的6位十六進(jìn)制數(shù)字。

圖片

鍵值對(duì)應(yīng)列表:

1.jpg

  • 代碼方式:
    /* 項(xiàng)目名稱(chēng):紅外鍵值讀取
     * 項(xiàng)目時(shí)間:2022.02.23
     * 項(xiàng)目作者:MRX
     */
    #include < IRremote.h >
    
    
    int RECV_PIN = 3;
    
    
    IRrecv irrecv(RECV_PIN);// 設(shè)置紅外接收器的引腳
    
    
    decode_results results;// 定義results變量為紅外結(jié)果存放位置
    
    
    void setup()
    {
      Serial.begin(9600);
      Serial.println("Enabling IRin");
      irrecv.enableIRIn(); // 啟動(dòng)紅外解碼
      Serial.println("Enabled IRin");
    }
    
    
    void loop() {
      if (irrecv.decode(&results)) {// 解碼成功,把數(shù)據(jù)放入results變量中
        Serial.println(results.value, HEX); // 顯示紅外編碼
        irrecv.resume(); // 繼續(xù)等待接收下一組信號(hào)
      }
      delay(100);
    }
    

練習(xí)二:紅外遙控?zé)?/strong>

編程實(shí)現(xiàn)紅外遙控開(kāi)關(guān)不同顏色的燈。

電路連接:

圖片

圖形化方式:

圖片

代碼方式:代碼中的0x表示為16進(jìn)制

/* 項(xiàng)目名稱(chēng):紅外控制LED
 * 項(xiàng)目時(shí)間:2022.02.23
 * 項(xiàng)目作者:MRX
 */
#include < IRremote.h >


int RECV_PIN = 3;
int red_Pin = 9;
int green_Pin = 10;
int yellow_Pin = 11;
int blue_Pin = 12;


IRrecv irrecv(RECV_PIN);// 設(shè)置紅外接收器的引腳


decode_results results;// 定義results變量為紅外結(jié)果存放位置


void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // 啟動(dòng)紅外解碼
  for(int i = 9;i <= 12;i++){
    pinMode(i,OUTPUT);
  }
}


void loop() {
  if (irrecv.decode(&results)) {// 解碼成功,把數(shù)據(jù)放入results變量中
    Serial.println(results.value, HEX); // 顯示紅外編碼
    switch(results.value){
      case 0xFF6897:
      digitalWrite(9,HIGH);
      break;
     case 0xFF30CF:
      digitalWrite(10,HIGH);
      break;
     case 0xFF18E7:
      digitalWrite(11,HIGH);
      break;
     case 0xFF7A85:
      digitalWrite(12,HIGH);
      break;
     case 0xFF10EF:
      digitalWrite(9,LOW);
      digitalWrite(10,LOW);
      digitalWrite(11,LOW);
      digitalWrite(12,LOW);
      break;
    }
    irrecv.resume(); // 繼續(xù)等待接收下一組信號(hào)
  }
}

switch...case...:

switch的用法是判斷case后面的表達(dá)式和switch后面的表達(dá)式是否相匹配,一旦case匹配,就會(huì)順序執(zhí)行后面的程序代碼,而不管后面的case是否匹配,直到遇見(jiàn)break。

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

    關(guān)注

    45

    文章

    3638

    瀏覽量

    134426
  • 接收器
    +關(guān)注

    關(guān)注

    14

    文章

    2468

    瀏覽量

    71871
  • 發(fā)光二極管
    +關(guān)注

    關(guān)注

    13

    文章

    1198

    瀏覽量

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

    關(guān)注

    3

    文章

    133

    瀏覽量

    21665
  • 硅光電池
    +關(guān)注

    關(guān)注

    0

    文章

    23

    瀏覽量

    5010
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    arduino單片機(jī)的紅外遙控解碼發(fā)送庫(kù)文件

    紅外遙控庫(kù)除了解碼之外還能發(fā)送,用C++封裝的庫(kù)函數(shù),是arduino編程的利器
    發(fā)表于 08-29 18:59

    【OK210試用體驗(yàn)】功能(6)Linux字符驅(qū)動(dòng)之紅外遙控驅(qū)動(dòng)(待續(xù))

    試用體驗(yàn)】功能(4):Linux字符驅(qū)動(dòng)之DS18B20【OK210試用體驗(yàn)】功能(5):Linux字符驅(qū)動(dòng)之PWM蜂鳴器 今天是功能的第六:Linux字符驅(qū)動(dòng)之
    發(fā)表于 08-16 18:56

    紅外遙控設(shè)計(jì)的兩文檔

    紅外遙控器的,也想請(qǐng)大家關(guān)注一下。這兩文檔是我設(shè)計(jì)前期先閱讀的文檔,一仔細(xì)看了,一備用的,分享給大家。
    發(fā)表于 01-10 15:07

    【Landzo C1試用體驗(yàn)】五:紅外遙控控制運(yùn)動(dòng)

    本帖最后由 數(shù)碼小葉 于 2016-7-1 12:20 編輯 這次的Arduino套件雖然沒(méi)有配備藍(lán)牙模塊,不過(guò)還是包含了紅外遙控和315M遙控兩個(gè)。這一
    發(fā)表于 07-01 12:08

    Arduino開(kāi)發(fā)實(shí)戰(zhàn)指南 AVR

    模塊的應(yīng)用第三應(yīng)用第8章打造自己的遙控履帶車(chē)第9章仿生機(jī)器人附錄A  Arduino引腳與AVR單片機(jī)管腳對(duì)應(yīng)關(guān)系附錄B  Arduino
    發(fā)表于 08-03 16:14

    【DFR0100 Arduino入門(mén)套件】 Lesson15--紅外接收

    該教程實(shí)驗(yàn)平臺(tái):Arduino入門(mén)套件上一教程:Arduino教程 Lesson 14--自制風(fēng)扇這節(jié)我們會(huì)接觸一個(gè)新的元件——紅外接收管。所謂
    發(fā)表于 09-15 10:51

    基于stm32實(shí)現(xiàn)紅外自發(fā)自收紅外遙控

    基于stm32實(shí)現(xiàn)紅外自發(fā)自收紅外遙控簡(jiǎn)介紅外發(fā)射stm32模擬紅外發(fā)射思路及效果紅外接收stm
    發(fā)表于 12-08 06:16

    51單片機(jī)綜合學(xué)習(xí)系統(tǒng)_紅外線(xiàn)遙控

    51單片機(jī)綜合學(xué)習(xí)系統(tǒng)_紅外線(xiàn)遙控51單片機(jī)綜合學(xué)習(xí)系統(tǒng)_紅外線(xiàn)遙控。
    發(fā)表于 04-18 11:28 ?43次下載

    Arduino的實(shí)驗(yàn)例程之紅外遙控實(shí)驗(yàn)

    本文檔的主要內(nèi)容詳細(xì)介紹的是Arduino的實(shí)驗(yàn)例程之紅外遙控實(shí)驗(yàn)。
    發(fā)表于 02-25 16:36 ?49次下載
    <b class='flag-5'>Arduino</b>的實(shí)驗(yàn)例程之<b class='flag-5'>紅外</b><b class='flag-5'>遙控</b>實(shí)驗(yàn)

    使用Arduino解碼任何遙控器的紅外遙控信號(hào)

    電子發(fā)燒友網(wǎng)站提供《使用Arduino解碼任何遙控器的紅外遙控信號(hào).zip》資料免費(fèi)下載
    發(fā)表于 10-27 11:51 ?4次下載
    使用<b class='flag-5'>Arduino</b>解碼任何<b class='flag-5'>遙控</b>器的<b class='flag-5'>紅外</b><b class='flag-5'>遙控</b>信號(hào)

    Arduino項(xiàng)目輕松添加紅外遙控器和紅外接收器

    電子發(fā)燒友網(wǎng)站提供《Arduino項(xiàng)目輕松添加紅外遙控器和紅外接收器.zip》資料免費(fèi)下載
    發(fā)表于 11-03 11:26 ?0次下載
    <b class='flag-5'>Arduino</b>項(xiàng)目輕松添加<b class='flag-5'>紅外</b><b class='flag-5'>遙控</b>器和<b class='flag-5'>紅外</b>接收器

    使用Arduino Nano R3進(jìn)行紅外遙控的數(shù)字時(shí)鐘

    電子發(fā)燒友網(wǎng)站提供《使用Arduino Nano R3進(jìn)行紅外遙控的數(shù)字時(shí)鐘.zip》資料免費(fèi)下載
    發(fā)表于 11-03 11:30 ?1次下載
    使用<b class='flag-5'>Arduino</b> Nano R3進(jìn)行<b class='flag-5'>紅外</b><b class='flag-5'>遙控</b>的數(shù)字時(shí)鐘

    紅外遙控發(fā)串口資料下載

    紅外遙控發(fā)串口 arduino
    發(fā)表于 12-06 16:36 ?2次下載

    Arduino紅外遙控器制作直流風(fēng)扇速度控制器

    電子發(fā)燒友網(wǎng)站提供《用Arduino紅外遙控器制作直流風(fēng)扇速度控制器.zip》資料免費(fèi)下載
    發(fā)表于 02-02 14:19 ?4次下載
    用<b class='flag-5'>Arduino</b>和<b class='flag-5'>紅外</b><b class='flag-5'>遙控</b>器制作直流風(fēng)扇速度控制器

    Arduino紅外遙控

    電子發(fā)燒友網(wǎng)站提供《帶Arduino紅外遙控器.zip》資料免費(fèi)下載
    發(fā)表于 07-06 10:51 ?0次下載
    帶<b class='flag-5'>Arduino</b>的<b class='flag-5'>紅外</b><b class='flag-5'>遙控</b>器
    RM新时代网站-首页