Arduino 紅外線遙控器設定和故障排除逐步指南

Arduino 紅外線遙控器設定和故障排除逐步指南

使用紅外線遙控器,您可以讓 Arduino 專案變得簡單有趣。紅外線技術可以幫助您控製家中的各種設備。您可以建立自己的遙控器,也可以讀取其他遙控器的訊號。透過 Arduino 紅外線遙控系統,您可以探索控制設備的新方法。您也可以建立自己的專用遙控器。 Arduino 紅外線遙控器設定是為您的專案添加無線控制的簡單方法。

應用類型

簡介

控製家用電器

使用紅外線遙控器控製家中的電視和其他東西。

客製化遙控器

使遙控器能夠更輕鬆地控制許多設備。

解碼訊號

再次使用訊號來控制新設備。

建立自訂控件

針對 arduino 紅外線遠端工作中的特殊需求進行控制。

你可以先連接一個基本的紅外線接收器,然後嘗試 Arduino 紅外線遙控器的新方法。

紅外線通訊基礎知識

什麼是紅外線?

紅外線 (IR) 使設備能夠相互發送訊號。 IR 指的是紅外線,這是一種我們肉眼無法看見的光。紅外線通訊利用這種不可見光來發送訊息。遙控器和接收器使用紅外線 LED 和感測器來實現這一點。紅外線主要有兩種工作方式:點對點和漫射。點對點需要遙控器面向接收器。漫射允許設備無需直接連接線路即可通訊。紅外線的工作頻率範圍為 300 GHz 至 400 THz。電視、耳機和家庭安防系統等設備中都存在紅外線的痕跡。

提示:紅外線訊號無法穿透固體物體。請確保遙控器和接收器之間沒有物件阻擋。

  • 紅外線通訊使用紅外光脈衝。

  • 紅外線訊號在沒有任何阻礙的情況下工作效果最佳。

  • 紅外線技術應用於許多家用電子產品。

紅外線遙控器和紅外線接收器

要使用紅外線,您需要一個紅外線遙控器和一個紅外線接收器。遙控器以紅外線脈衝的形式發送資料。接收器接收這些脈衝並進行解碼。對於 Arduino 紅外線項目,通常需要 SunFounder Uno 開發板、USB 線、紅外線接收器模組、遙控器和一條 3 針線。

元件

功能

紅外遙控器

發送紅外線訊號

紅外線接收模組

取得並解碼訊號

Arduino板

處理接收到的數據

紅外線遙控器使用稱為“消費者紅外線”的特殊編碼方法。這些方法發送指令的速度很慢,最高可達 32 位,速度為每秒 4000 位。接收器會檢查紅外光脈衝和間隔的持續時間。 38 kHz 的調變有助於接收器忽略其他光線。

紅外線協議

使用協定來控制紅外線設備。協定是發送和讀取紅外線訊號的規則。 NEC 協定在電子產品中非常常見。其他流行的協議包括 JVC、索尼 SIRC、飛利浦 RC5 和 RC6。這些協定使用 38 kHz 載波發送二進位訊號。

  • NEC 遠端協議

  • RC5遠端協議

  • JVC 協定

  • 索尼 SIRC 協議

  • 飛利浦 RC6 協議

紅外線遙控器上的每個按鈕都會發送各自的代碼。接收器會將程式碼與指令相符。協定和編碼確保每個按鈕執行不同的操作。由於每個程式碼都獨一無二,因此您可以實現精準的控制。

Arduino 紅外線遙控設置

Arduino 紅外線遙控設置
圖片來源: pexels

紅外線接收器引腳排列

在開始之前你需要知道引腳排列 arduino 紅外線遙控設置大多數紅外線接收器有三個引腳。每個引腳都有其特定的用途。您必須將每個引腳連接到Arduino開發板上的正確位置。這有助於您的設定正常工作。

紅外線接收器引腳

Arduino 引腳

-

GND

+(中間針腳)

5V

S

數位引腳 11

負極引腳連接到 GND。正極引腳連接到 5V。訊號引腳連接到數位引腳,通常是 11 號引腳。請務必查看紅外線接收器的資料表。有些接收器使用不同的引腳名稱,但大多數都遵循此模式。

連接Arduino

你必須將紅外線接收器連接到你的Arduino,才能讓Arduino紅外線遙控器正常運作。使用 跳線,方便安裝確保將接收器連接到正確的引腳。此步驟是確保硬體連接良好的關鍵。

紅外線接收器

Arduino的

出局(左)

銷2

GND(中)

接地(-)

Vcc(右)

5伏特(+)

請依照以下步驟進行設定:

  1. 將紅外線接收器放在麵包板上。

  2. 將 OUT 引腳連接到 arduino 上的數位引腳 2。

  3. 將 GND 引腳連接到電路板上的 GND。

  4. 將 Vcc 引腳連接到 5V 引腳。

提示:啟動設備前,請仔細檢查每根電線。錯誤的連接可能會導致您的 Arduino 紅外線遙控器無法正常工作。

硬件檢查

連接接收器後,您需要檢查設定。確保每根電線都緊固。檢查是否有鬆動的電線或彎曲的針腳。 Arduino 紅外線遙控器的設置需要牢固的硬體連接。如果接收器上的指示燈閃爍,表示設定正常。如果沒有,請再次檢查線路。

您可以使用萬用電表測試接收器的電壓。 5V 引腳應顯示接近 5 伏特的電壓。 GND 引腳應顯示零。按下紅外線遙控器上的按鈕時,訊號引腳應會變更。這意味著您的設定已準備好進行下一步。

Arduino程式設計與讀取程式碼

安裝 IRremote 函式庫

您需要 IRremote 庫來編程紅外線接收器。此程式庫可協助您讀取遙控器的訊號。安裝步驟如下:開啟 Arduino IDE。前往 Sketch,然後依序選擇「包含庫」和「管理庫」。在庫管理器中搜尋“Arduino-IRremote”。點選“安裝”。

如果您看到「未聲明 TCCR2B」或重定位錯誤之類的錯誤,則可能是晶片不符。這些問題通常出現在 Attiny 微控制器上。您可以使用 Arduino IDE 1.0.5 版本修復這些問題。請確保庫檔案位於正確的資料夾中。

安裝庫後,即可開始對紅外線接收器進行程式設計。 IRremote 庫提供了一些範例,可協助您讀取程式碼並控制裝置。

讀取紅外線代碼

您可以使用 IRremote 庫範例從遙控器讀取程式碼。開啟“IRrecvDemo”範例程式碼。將其上傳到您的 Arduino 開發板。將您的紅外線接收器連接到開發板。在 Arduino IDE 中開啟串列埠監視器。

當你按下遙控器上的按鈕時,紅外線接收器會接收到訊號。 Arduino 會解碼訊號並以十六進位格式顯示程式碼。按下每個按鈕即可找到其代碼。記下程式碼,以便日後使用。

提示:若要記錄所有按鈕的代碼,請按下每個按鈕,並在串列埠監視器中記錄代碼。這有助於您找到遙控器的代碼。

您可能想知道遙控器使用的是什麼協定。您可以透過不同的方式進行操作:使用示波器觀察訊號。使用帶有 Arduino 的紅外線接收器解碼協定。嘗試使用脈衝寬度調變或雙相編碼等編碼方法。

IRremote 庫範例通常會顯示帶有程式碼的協定名稱。這有助於您將程式碼與正確的協定配對。

將程式碼映射到操作

找到遙控器的程式碼後,您可以將其對應到Arduino Sketch中的操作。使用IRremote庫範例來控制LED、馬達或其他設備。將程式碼上傳到Arduino。打開串口監視器。將遙控器對準紅外線接收器並按下按鈕。 Arduino會讀取程式碼並執行您設定的操作。

您可以使用紅外線按鍵代碼來控制輸出。例如,用一個按鈕點亮 LED,用另一個按鈕關閉 LED。您也可以使用代碼來控制馬達或繼電器。請在代碼中為每個要使用的代碼設定操作。

  • 捕獲每個按鈕的代碼。

  • 使用 arduino 草圖中的程式碼來控制輸出。

  • 為每個程式碼設定功能以製作自訂遙控器。

  • 嘗試不同的範例來了解如何對多種裝置使用程式碼。

您可以嘗試將程式碼對應到新的操作。這可以讓您為專案建立自訂控制項。如果您需要新遙控器的程式碼,請重複此程序並更新您的草圖。使用 Arduino 對紅外線接收器進行編程,可為您提供多種使用無線控制的方式。

使用紅外線遙控器控制輸出

LED 和設備

你可以使用紅外線遙控器來控制你的Arduino設備。你最常控制的是LED燈和家用電器。首先,設定紅外線接收器並將其連接到你的Arduino。遙控器上的每個按鈕都會發送各自的訊號。你的Arduino會讀取這些訊號並控制你想要控制的內容。

  • 發光二極管

  • 電器

  • 很多設備都可以無線控制

您可以同時點亮多個 LED。在程式碼中,選擇每個 LED 對應的引腳。使用開關盒將每個按鈕與特定的 LED 或裝置配對。按下按鈕時,Arduino 會開啟或關閉輸出。

提示:您可以使用遙控器來控制燈光、風扇或其他無線設備。

下面是控制多個 LED 的簡單程式碼範例:

#include <IRremote.h>
int IR_Recv = 3;
int ledPins[] = {5, 6, 9, 10};
void setup() {
  for (int i = 0; i < 4; i++) {
    pinMode(ledPins[i], OUTPUT);
  }
  IrReceiver.begin(IR_Recv, ENABLE_LED_FEEDBACK);
}
void loop() {
  if (IrReceiver.decode()) {
    switch (IrReceiver.decodedIRData.command) {
      case 0x10: digitalWrite(ledPins[0], HIGH); break;
      case 0x11: digitalWrite(ledPins[1], HIGH); break;
      case 0x12: digitalWrite(ledPins[2], HIGH); break;
      case 0x13: digitalWrite(ledPins[3], HIGH); break;
    }
    IrReceiver.resume();
  }
}

您可以根據專案需求變更 PIN 碼和代碼。此方法適用於任何遙控器。

針對不同遙控器進行客製化

您可能需要使用不同類型的紅外線遙控器。您需要稍微修改一下您的Arduino程式碼。首先,找出您的遙控器所使用的紅外線協定。記下每個按鈕的命令。查看每個任務的訊號並做好記錄。每次修改一個,並記錄下結果。

  1. 找出遙控器的 ir 協定。

  2. 寫下每個按鈕的命令。

  3. 檢查並記錄每個信號和工作。

  4. 每次改變一件事並記錄發生的情況。

使用紅外線遙控器,您可以將 Arduino 專案變更為支援多種遙控器。這樣您就可以控制很多東西。您可以透過使用新命令和協定更新程式碼來使用任何遙控器。

紅外線接收器故障排除和代碼

紅外線接收器故障排除和代碼
圖片來源: pexels

硬件問題

您的紅外線接收器設定可能會出現問題。硬體問題通常會導致您的 Arduino 專案無法正常運作。您可以使用手機相機檢查紅外線 LED。攝影機可以看到人眼無法看到的光線。如果您沒有看到任何光線,請嘗試反轉 LED 的方向。有時,LED 的方向可能會錯誤。將電視遙控器對準接收器,觀察狀態 LED。如果 LED 閃爍,表示接收器已收到訊號。如果在遮斷光束時狀態 LED 仍然亮著,請遮擋紅外線訊號,看看接收器是否有反應。

電線鬆動或針腳彎曲都可能造成問題。確保探測器正確連接到Arduino。使用萬用電表檢查接收器針腳的電壓。 GND針腳的讀數應為零。 5V針腳的讀數應接近5伏特。按下遙控器上的按鈕時,訊號針腳的讀數應該會改變。如果沒有變化,請再次檢查線路。

提示:請在陰涼處測試您的系統。陽光直射或強光可能會幹擾紅外線接收器。在室內或低光源環境下測試效果更佳。

  • 使用手機相機檢查其 LED。

  • 如果 LED 不亮,請將其反轉。

  • 將電視遙控器對準接收器並觀察閃光。

  • 確保探測器電線連接到 arduino。

  • 阻止他們的信號並檢查狀態 LED。

  • 測試接收器引腳處的電壓。

軟體和訊號問題

軟體問題可能會導致紅外線接收器無法運作。您可以選擇 IRremote 或 IRLib 函式庫來傳送和讀取紅外線訊號。請嘗試這些庫中的所有範例程式碼。測試範例程式碼有助於您發現接收器或遙控器的問題。有時,接收器無法解碼來自某些遙控器的訊號。請檢查您的庫是否支援遙控器的協定。

環境光或其他紅外線光源可能會幹擾您的接收器。硬體濾光片有助於減少不必要的光線。請將接收器放置在遠離強光的地方。在暗室中測試您的系統,看看接收器是否運作得更好。如果問題仍然存在,請檢查附近是否有其他紅外線光源。

  • 嘗試不同的庫,如 IRremote 或 IRLib。

  • 測試所有範例草圖以尋找軟體問題。

  • 檢查您的接收器是否解碼來自遙控器的訊號。

  • 使用硬體過濾器來阻擋不需要的光線。

  • 將接收器遠離強光。

  • 在暗室中測試以獲得更好的性能。

  • 尋找可能造成乾擾的其他紅外線源。

注意:解碼多種類型的紅外線遙控器訊號有助於您找到相容性問題。請務必記錄每個按鈕的程式碼,並將其與 Arduino 程式中的正確操作進行比對。

您已經學會如何使用紅外線遙控器的Arduino。以下步驟可以幫助您:

  1. 安裝 IRremote 函式庫。將紅外線感測器連接到正確的引腳。

  2. 使用範例程式碼從遙控器取得訊號。在顯示器上觀察輸出。

  3. 將遙控器上的每個按鈕與項目中的控制操作進行比對。

  4. 嘗試不同的遙控器,以便更好地控制並解決問題。

如果您需要協助,請查看以下社區資源:

討論標題

簡介

尋求幫助

詢問有關紅外線遙控問題的問題。

如何解釋監視器中的紅外線代碼的原始資料?

了解如何讀取和使用紅外線代碼資料。

sendSamsungLG() 不適用於我的 LG HX906

尋找設備相容性問題的答案。

ESP32 問題,通道 0 已用於顯示

取得 ESP32 和 IR 遠端問題的提示。

bootloop

看看其他人是否有相同的紅外線遙控器問題。

故障排除是學習的一部分。嘗試新的控制方式,並測試不同的遙控器。

常見問題

您如何知道紅外線接收器是否運作?

您可以將遙控器對準紅外線接收器,觀察 LED 指示燈是否有閃爍。如果按下按鈕時看到閃爍,表示接收器已收到訊號。您也可以使用手機相機查看紅外線燈。

為什麼你的 arduino 無法讀取任何紅外線程式碼?

你可能有一個 接線問題或庫問題檢查所有連接並確保使用正確的引腳。安裝 IRremote 函式庫。嘗試範例程式碼來測試你的設定。確保你的 Arduino 開發板已通電。

您可以將任何遙控器與 arduino 紅外線接收器一起使用嗎?

大多數紅外線接收器可與多種遙控器搭配使用。您需要找到每個按鈕的代碼。有些遙控器使用特殊協定。使用 IRremote 庫測試您的遙控器。記下程式碼,並將其與草圖中的操作進行配對。

如果紅外線訊號沒有到達接收器,該怎麼辦?

將物件移離遙控器和接收器之間的路徑。紅外線訊號需要清晰的線路。請嘗試在陽光較少的房間內使用設備。檢查接收器是否正對著遙控器。

如何使用 arduino 紅外線遙控器控制多個設備?

您可以在草圖中將不同的程式碼對應到不同的輸出。為每個按鈕程式碼使用 switch case。將更多設備連接到您的 Arduino 並為每個設備設定操作。測試每個按鈕以確保其正常工作。

發表評論

您的電子郵件地址將不會被發表。 必填欄位已標記 *