
使用紅外線遙控器,您可以讓 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 紅外線遙控設置大多數紅外線接收器有三個引腳。每個引腳都有其特定的用途。您必須將每個引腳連接到Arduino開發板上的正確位置。這有助於您的設定正常工作。
紅外線接收器引腳 | Arduino 引腳 |
|---|---|
- | GND |
+(中間針腳) | 5V |
S | 數位引腳 11 |
負極引腳連接到 GND。正極引腳連接到 5V。訊號引腳連接到數位引腳,通常是 11 號引腳。請務必查看紅外線接收器的資料表。有些接收器使用不同的引腳名稱,但大多數都遵循此模式。
連接Arduino
你必須將紅外線接收器連接到你的Arduino,才能讓Arduino紅外線遙控器正常運作。使用 跳線,方便安裝確保將接收器連接到正確的引腳。此步驟是確保硬體連接良好的關鍵。
紅外線接收器 | Arduino的 |
|---|---|
出局(左) | 銷2 |
GND(中) | 接地(-) |
Vcc(右) | 5伏特(+) |
請依照以下步驟進行設定:
將紅外線接收器放在麵包板上。
將 OUT 引腳連接到 arduino 上的數位引腳 2。
將 GND 引腳連接到電路板上的 GND。
將 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程式碼。首先,找出您的遙控器所使用的紅外線協定。記下每個按鈕的命令。查看每個任務的訊號並做好記錄。每次修改一個,並記錄下結果。
找出遙控器的 ir 協定。
寫下每個按鈕的命令。
檢查並記錄每個信號和工作。
每次改變一件事並記錄發生的情況。
使用紅外線遙控器,您可以將 Arduino 專案變更為支援多種遙控器。這樣您就可以控制很多東西。您可以透過使用新命令和協定更新程式碼來使用任何遙控器。
紅外線接收器故障排除和代碼

硬件問題
您的紅外線接收器設定可能會出現問題。硬體問題通常會導致您的 Arduino 專案無法正常運作。您可以使用手機相機檢查紅外線 LED。攝影機可以看到人眼無法看到的光線。如果您沒有看到任何光線,請嘗試反轉 LED 的方向。有時,LED 的方向可能會錯誤。將電視遙控器對準接收器,觀察狀態 LED。如果 LED 閃爍,表示接收器已收到訊號。如果在遮斷光束時狀態 LED 仍然亮著,請遮擋紅外線訊號,看看接收器是否有反應。
電線鬆動或針腳彎曲都可能造成問題。確保探測器正確連接到Arduino。使用萬用電表檢查接收器針腳的電壓。 GND針腳的讀數應為零。 5V針腳的讀數應接近5伏特。按下遙控器上的按鈕時,訊號針腳的讀數應該會改變。如果沒有變化,請再次檢查線路。
提示:請在陰涼處測試您的系統。陽光直射或強光可能會幹擾紅外線接收器。在室內或低光源環境下測試效果更佳。
使用手機相機檢查其 LED。
如果 LED 不亮,請將其反轉。
將電視遙控器對準接收器並觀察閃光。
確保探測器電線連接到 arduino。
阻止他們的信號並檢查狀態 LED。
測試接收器引腳處的電壓。
軟體和訊號問題
軟體問題可能會導致紅外線接收器無法運作。您可以選擇 IRremote 或 IRLib 函式庫來傳送和讀取紅外線訊號。請嘗試這些庫中的所有範例程式碼。測試範例程式碼有助於您發現接收器或遙控器的問題。有時,接收器無法解碼來自某些遙控器的訊號。請檢查您的庫是否支援遙控器的協定。
環境光或其他紅外線光源可能會幹擾您的接收器。硬體濾光片有助於減少不必要的光線。請將接收器放置在遠離強光的地方。在暗室中測試您的系統,看看接收器是否運作得更好。如果問題仍然存在,請檢查附近是否有其他紅外線光源。
嘗試不同的庫,如 IRremote 或 IRLib。
測試所有範例草圖以尋找軟體問題。
檢查您的接收器是否解碼來自遙控器的訊號。
使用硬體過濾器來阻擋不需要的光線。
將接收器遠離強光。
在暗室中測試以獲得更好的性能。
尋找可能造成乾擾的其他紅外線源。
注意:解碼多種類型的紅外線遙控器訊號有助於您找到相容性問題。請務必記錄每個按鈕的程式碼,並將其與 Arduino 程式中的正確操作進行比對。
您已經學會如何使用紅外線遙控器的Arduino。以下步驟可以幫助您:
安裝 IRremote 函式庫。將紅外線感測器連接到正確的引腳。
使用範例程式碼從遙控器取得訊號。在顯示器上觀察輸出。
將遙控器上的每個按鈕與項目中的控制操作進行比對。
嘗試不同的遙控器,以便更好地控制並解決問題。
如果您需要協助,請查看以下社區資源:
討論標題 | 簡介 |
|---|---|
尋求幫助 | 詢問有關紅外線遙控問題的問題。 |
如何解釋監視器中的紅外線代碼的原始資料? | 了解如何讀取和使用紅外線代碼資料。 |
sendSamsungLG() 不適用於我的 LG HX906 | 尋找設備相容性問題的答案。 |
ESP32 問題,通道 0 已用於顯示 | 取得 ESP32 和 IR 遠端問題的提示。 |
bootloop | 看看其他人是否有相同的紅外線遙控器問題。 |
故障排除是學習的一部分。嘗試新的控制方式,並測試不同的遙控器。
常見問題
您如何知道紅外線接收器是否運作?
您可以將遙控器對準紅外線接收器,觀察 LED 指示燈是否有閃爍。如果按下按鈕時看到閃爍,表示接收器已收到訊號。您也可以使用手機相機查看紅外線燈。
為什麼你的 arduino 無法讀取任何紅外線程式碼?
你可能有一個 接線問題或庫問題檢查所有連接並確保使用正確的引腳。安裝 IRremote 函式庫。嘗試範例程式碼來測試你的設定。確保你的 Arduino 開發板已通電。
您可以將任何遙控器與 arduino 紅外線接收器一起使用嗎?
大多數紅外線接收器可與多種遙控器搭配使用。您需要找到每個按鈕的代碼。有些遙控器使用特殊協定。使用 IRremote 庫測試您的遙控器。記下程式碼,並將其與草圖中的操作進行配對。
如果紅外線訊號沒有到達接收器,該怎麼辦?
將物件移離遙控器和接收器之間的路徑。紅外線訊號需要清晰的線路。請嘗試在陽光較少的房間內使用設備。檢查接收器是否正對著遙控器。
如何使用 arduino 紅外線遙控器控制多個設備?
您可以在草圖中將不同的程式碼對應到不同的輸出。為每個按鈕程式碼使用 switch case。將更多設備連接到您的 Arduino 並為每個設備設定操作。測試每個按鈕以確保其正常工作。




