遙控器的應用在一般家電是常見的,如電視遙控器、冷氣開關等都是利用紅外線遙控的方式控制家電的開關或調整。如果使用Arduino該如何做呢?就需要使用紅外線接收的晶體,作為接收訊號用,如果要控制啟動12V的風扇,就需要外接12V電源,並使用繼電器來控制,如果把兩項功能結合,就可以透過紅外線遙控風扇開關,這項功能在一般的電扇中很常見,我們就來看看如何使用Arduino進行控制。
[基礎知識]
繼電器(Relay),也稱電驛,是一種電子控制器件,它具有控制系統(又稱輸入迴路)和被控制系統(又稱輸出迴路),通常應用於自動控制電路中,它實際上是用較小的電流去控制較大電流的一種「自動開關」。故在電路中起著自動調節、安全保護、轉換電路等作用。[資料來源:維基百科][材料]
- 麵包板 x 1
- Arduino 主板 x 1
- 直流 12V 風扇 x 1
- 紅外線接收晶體 x 1
- 一路或二路繼電器模組 x 1
- 連接線 x N條
[線路連接與電路圖]
•將繼電器模組的接地GND連接Arduino主版的GND,5V接繼電器的VSS, n1接 Pin 2接腳,電扇的紅色線(正極)接12V的正極,負極接到繼電器的常閉一個接點,再將共極接到12V的負極。
•紅外線接收器有三隻接腳,我用的接收器因型號不明,我用實驗的方式測試出接腳的位置,兩隻腳接分別接5V及接地,第三隻接腳則接pin 4。
[程式]
/* 紅外線遙控+繼電器控制 12V風扇 */ #include <IRremote.h> // 引用 IRRemote 函式庫 const int irReceiverPin = 4; // 紅外線接收器 OUTPUT 訊號接在 pin 2 int motor = 2; IRrecv irrecv(irReceiverPin); // 定義 IRrecv 物件來接收紅外線訊號 decode_results results; // 解碼結果將放在 decode_results 結構的 result 變數裏 void setup() { Serial.begin(9600); // 開啟 Serial port, 通訊速率為 9600 bps irrecv.enableIRIn(); // 啟動紅外線解碼 pinMode(motor, OUTPUT); } void loop() { if (irrecv.decode(&results)){ // 解碼成功,收到一組紅外線訊號 Serial.print("Protocol: "); // 印到 Serial port // 判斷紅外線協定種類 switch(results.decode_type) { case NEC: Serial.print("NEC"); break; case SONY: Serial.print("SONY"); break; case RC5: Serial.print("RC5"); break; case RC6: Serial.print("RC6"); break; default: Serial.print("Unknown encoding"); } Serial.print(" irCode: "); Serial.print(results.value); // 紅外線編碼 if (results.value == 16724175) { //遙控器上的 0 digitalWrite(motor, LOW); } if (results.value == 16738455) { //遙控器上的 1 digitalWrite(motor, HIGH); } Serial.print(", bits: "); Serial.println(results.bits); // 紅外線編碼位元數 delay(500); irrecv.resume(); // 繼續收下一組紅外線訊號 } }
不錯 支持,再來些特別點的動手玩吧!
回覆刪除那如果我要用超音波感測器,程式和線路有差異嗎?
回覆刪除那如果我要用超音波感測器,程式和線路有差異嗎?
回覆刪除您好,最近在試著做這個實驗,在驗證的時候有錯誤
回覆刪除exit status 1
板子Arduino/Genuino Uno編譯錯誤
想問大概是什麼問題呢?
問一下,第一張圖左上角是什麼
回覆刪除12V電源的符號,要接12V的正負極。
刪除紅外線編碼上打入英文就不能執行,請問是發生什麼樣的問題
回覆刪除results.value定義為數字,有文字就會出現屬性不合的錯誤。
刪除請問程式碼有少嗎
回覆刪除應該沒有, 請問是哪裡覺得有問題嗎?
刪除紅外線感應不到 是接線哪裡有問題嗎 有清楚的接線圖嗎
回覆刪除可以先檢查一下遙控器按下送出的代碼對不對, 使用Serial.print看看紅外線代碼跟程式對不對。這照片已經是七、八年前拍的,有點不清楚,改天再來實作一次這個電路。
刪除張貼留言