skip to main | skip to sidebar

顯示具有 IRRemote Library 標籤的文章。 顯示所有文章
顯示具有 IRRemote Library 標籤的文章。 顯示所有文章

2012年8月19日 星期日

2.1 發射紅外線訊號 part 2

前一篇中,我們提到,在使用 IRRemote Library 時,紅外線發射功能限定使用 pin 3,所以你只能把紅外線發射器接到 pin 3,不能接到其它腳位,像這樣:

image_thumb2

但是萬一你 pin3 有其它用途,真的不能挪來接紅外線發射器,那要怎麼辦才好呢?還好,其實 IRRemote Library 有提供一個選項可以讓你選擇其它腳位,方法是修改 IRRemote Library 的 IRremoteInt.h 這一段:

這段程式碼主要是設定 Timer,Timer 的設定會決定紅外線發射器所用的腳位。

以 UNO, Duemilanove, Diecimila 等板子為例,預設是 Timer2,發射器要接 pin 3,假如你不想用 pin 3 當作紅外線發射的腳位,你有一個選擇,可以換成 Timer1,這樣就可以改用 pin 9 來接紅外線發射器:

// Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, etc
#else
  #define IR_USE_TIMER1   // tx = pin 9
  // #define IR_USE_TIMER2     // tx = pin 3
#endif

修改 IRremoteInt.h 之後,接線也要同步修改:

  • 把紅外線發射器 (IR LED) 接到 pin 9,長腳 (陽極) 串接一顆 100 ohm 電阻接到 pin 9,短腳 (陰極) 接到 GND
  • 按鈕的一支腳接到 +5V,另一支腳接到 pin 4 同時接一個 10K 電阻連到 GND

2012年08月19日_11h38_22

程式碼的部份不需要修改,不過必須重新編譯,並且上傳到 Arduino 板子上就可以了:

2011年12月24日 星期六

如何讓 IRRemote 相容於 Arduino 1.0 ?

有很多人反應 IRRemote Library 在 Arduino 1.0 上不能跑,這是因為 Arduino 1.0 core library 把 header file 檔名改掉了,解決方法是把 IRRemoteInt.h 這行:

改成這樣子:

改完之後,不管是 Arduino 1.0 或 Arduino-0023 甚至更早期的版本應該都可以 work。

2011年4月1日 星期五

紅外線物體偵測 (3)

IRremote 函式庫也可以做紅外線物體偵測,方法是用 IRremote 讓紅外線發射器 (IR LED) 產生 38 kHz 的脈波,然後用一般 38 kHz 的紅外線接收器來偵測訊號。

註: 在「紅外線物體偵測(1)」(反射型)和「紅外線物體偵測(2)」(遮光型)這兩篇的範例程式中,紅外線發射器(IR LED) 38 kHz 的脈波是利用 tone() 函式產生的。

線路的接法還是一樣,如下圖,把紅外線發射器串接一顆 100 歐姆的電阻接到 pin 3,然後把紅外線接收器接到 pin 2:

image

2.3 用光敏電阻切換電視頻道

實驗目的

練習用光敏電阻切換電視頻道。在這個實驗裏,你將練習用 IRRemote 函式庫發射紅外線訊號,然後搭配兩顆光敏電阻來切換電視頻道,當發現左邊比較亮時,就控制電視切到上一個頻道,當發現右邊比較亮時,就控制電視切到下一個頻道。

前提

在做這個實驗前,我假設:

  1. 你已經看過「IRRemote 紅外線遙控教學」這系列的教學,而且
  2. 已經把 IRRemote 函式庫安裝起來了
材料
  • 麵包板 x 1
  • Arduino 主板 x 1
  • 發射波長為 940nm 紅外線發射器 x 1
  • 100 歐姆電阻 x 1
  • 光敏電阻(photocell) x 2
  • 10k ohm 電阻 x 2
  • 單心線 x N

2.2 自製電視紅外線遙控器(使用 Keypad)

實驗目的

練習製作一個電視紅外線遙控器。在這個實驗裏,你將練習用 IRRemote 函式庫發射紅外線訊號,然後搭配一個 Keypad 做出一個電視遙控器。預計製作的紅外線遙控器,其外觀如下:

DSC00165
▲ Keypad 數字 0 ~ 9 是作選頻道用,而 * 鍵是降低音量,# 鍵是提高音量

2011年3月31日 星期四

2.1 發射紅外線訊號

實驗目的

練習用 IRRemote 函式庫發射紅外線訊號。在這個實驗裏,你將學習用 IRsend 物件發射紅外線訊號。

前提

在做這個實驗前,我假設:

  1. 你已經看過「IRRemote 紅外線遙控教學」一文,而且
  2. 也已經把 IRRemote 函式庫安裝起來了
材料
  • 麵包板 x 1
  • Arduino 主板 x 1
  • 發射波長為 940nm 的紅外線發射器 x 1
  • 按鈕 (pushbutton) x 1
  • 10k 歐姆電阻 x 1
  • 100 歐姆電阻 x 1
  • 單心線 x N

1.5 兩個取得遙控器紅外線資料的方法

image_thumb14
▲ Arduino 與電視遙控器

要怎麼取得遙控器的紅外線資料呢?有兩個方法,第一個是利用「1.2 顯示紅外線協定種類」的範例程式(Example1.2.pde),這支程式會把紅外線解碼結果顯示在 Serial Monitor 上:

1.4 自製 LCD 介面的紅外線解碼器(IR Decoder)

實驗目的

練習製作一個 LCD 介面的紅外線解碼器(Infrared Decoder)。

在這個實驗裏,你將練習用 IRRemote 函式庫接收紅外線訊號,然後搭配一個文字型 LCD(Liquid Crystal Display)當作紅外線解碼器的顯示介面。預計製作的紅外線解碼器,其外觀如下:

DSC00161
▲ LCD 上會顯示解碼得到的紅外線協定(如 NEC)、編碼(如 4FB48B7)以及資料長度(如 32 位元)

2011年3月30日 星期三

1.3 增加紅外線訊號指示燈

實驗目的

練習用 IRRemote 函式庫接收紅外線訊號。在這個實驗裏,你將增加一顆 LED 當作紅外線訊號指示燈,並且讓指示燈在收到紅外線訊號的時候自動閃爍。

前提

在做這個實驗前,我假設:

  1. 你已經看過「IRRemote 紅外線遙控教學」一文,而且
  2. 也已經把 IRRemote 函式庫安裝起來了
材料

1.2 顯示紅外線協定種類

實驗目的

練習用 IRRemote 函式庫接收紅外線訊號。在這個實驗裏,你將利用 decode_results 結構來判斷並顯示遙控器的紅外線協定種類,如 NEC, Sony SIRC, Philips RC5 和 Philips RC6 等紅外線協定(Infrared Protocol)。

前提

在做這個實驗前,我假設:

  1. 你已經看過「IRRemote 紅外線遙控教學」一文,而且
  2. 也已經把 IRRemote 函式庫安裝起來了
材料

1.1 接收紅外線訊號

實驗目的

練習用 IRRemote 函式庫接收紅外線訊號。在這個實驗裏,你將學習用 IRrecv 物件接收紅外線訊號。

前提

在做這個實驗前,我假設:

  1. 你已經看過「IRRemote 紅外線遙控教學」一文,而且
  2. 也已經把 IRRemote 函式庫安裝起來了
材料

IRRemote 紅外線遙控教學

IRRemote 函式庫簡介

你想用 Arduino 做紅外線遙控嗎? 你想用 Arduino 控制你的電視、音響、冷氣機、DVD、MP3 Player、玩具遙控車或其它設備嗎? 用 Ken Shirriff 寫的 IRRemote 這個函式庫,會讓你的 Arduino 既可發射又可以接收紅外線訊號,它支援許多種紅外線協定,包括 NEC, Sony SIRC, Philips RC5, Philips RC6 和原始資料 (raw) 等紅外線協定。

這一系列的教學,將教你使用 IRRemote 函式庫來接收與發射紅外線訊號。 image
▲ 用 Arduino 與 IRRemote 函式庫的紅外線遙控電路。(圖片來源: Ken Shirriff’s blog)

訂閱: 文章 (Atom)
 

AltStyle によって変換されたページ (->オリジナル) /