37款傳感器與執行器的提法,在網絡上廣泛流傳,其實Arduino能夠兼容的傳感器模塊肯定是不止這37種的。鑒於本人手頭積累了一些傳感器和執行器模塊,依照實踐出真知(一定要動手做)的理念,以學習和交流為目的,這里准備逐一動手嘗試系列實驗,不管成功(程序走通)與否,都會記錄下來---小小的進步或是搞不掂的問題,希望能夠拋磚引玉。
【Arduino】168種傳感器模塊系列實驗(資料代碼+圖形編程+仿真編程)
實驗七十一:HX1838紅外無線遙控套件紅外擴展模塊(遙控器+接收板)
紅外線
又稱紅外光波,在電磁波譜中,光波的波長范圍為0.01um~1000um。根據波長的不同可分為可見光和不可見光,波長為0.38um~0.76um的光波可為可見光,依次為紅、橙、黃、綠、青、藍、紫七種顏色。光波為0.01um~0.38um的光波為紫外光(線),波長為0.76um~1000um的光波為紅外光(線)。紅外光按波長范圍分為近紅外、中紅外、遠紅外、極紅外4類。紅外線遙控是利用近紅外光傳送遙控指令的,波長為0.76um~1.5um。用近紅外作為遙控光源,是因為目前紅外發射器件(紅外發光管)與紅外接收器件(光敏二極管、三極管及光電池)的發光與受光峰值波長一般為0.8um~0.94um,在近紅外光波段內,二者的光譜正好重合,能夠很好地匹配,可以獲得較高的傳輸效率及較高的可靠性。
紅外遙控
紅外線遙控是目前使用最廣泛的一種通信和遙控手段。 由於紅外線遙控裝置具有體積小、 功耗低、 功能強、 成本低等特點, 因而, 繼彩電、 錄像機之后, 在錄音機、 音響設備、 空凋機以及玩具等其它小型電器裝置上也紛紛采用紅外線遙控。 工業設備中, 在高壓、 輻射、 有毒氣體、 粉塵等環境下, 采用紅外線遙控不僅完全可靠而且能有效地隔離電氣干擾。紅外遙控的發射電路是采用紅外發光二極管來發出經過調制的紅外光波;紅外接收電路由紅外接收二極管、三極管或硅光電池組成,它們將紅外發射器發射的紅外光轉換為相應的電信號,再送后置放大器。



●小型設計
●內置專用IC
●寬角度及長距離接收
●抗干撓能力強
●能抵擋環境干撓光線
●低電壓工作
應用
■視聽器材(音箱,電視,錄影機,碟機)
■家庭電器(冷氣機,電風扇,電燈)
■其它紅外線遙控產品


在發射端,輸入信號經放大后送入紅外發射管發射,在接收端,接收管收到紅外信號后,由放大器放大處理后還原成信號,這就是紅外的簡單發射接收原理。

紅外遙控系統的主要部分為調制、發射和接收。紅外遙控是以調制的方式發射數據,就是把數據和一定頻率的載波進行“與”操作,這樣既可以提高發射效率又可以降低電源功耗。調制載波頻率一般在30khz到60khz之間,大多數使用的是38kHz,占空比1/3的方波,如圖2所示,這是由發射端所使用的455kHz晶振決定的。在發射端要對晶振進行整數分頻,分頻系數一般取12,所以455kHz÷12≈37.9kHz≈38kHz。38KH載波發射(完整的發射)如下圖。


1.CR2025環保紐扣電池,容量160mah
2.發射距離:8m以上(具體和周圍環境、接收端的靈敏度等因素有關)
3.有效角度:60度
4.面貼材料:0.125mmPET,有效壽命2萬次。
5.品質穩定,性價比高
6.靜態電流3-5uA,動態電流3-5mA。


/* 【Arduino】168種傳感器模塊系列實驗(資料代碼+圖形編程+仿真編程) 實驗七十一:HX1838紅外無線遙控套件紅外擴展模塊(遙控器+接收板) */ #include <IRremote.h> int PIN_RECV = 7; IRrecv irrecv(PIN_RECV); decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); } void loop() { if (irrecv.decode(&results)) { Serial.println(results.value); irrecv.resume(); } }
/* 【Arduino】168種傳感器模塊系列實驗(資料代碼+圖形編程+仿真編程) 實驗七十一:HX1838紅外無線遙控套件紅外擴展模塊(遙控器+接收板) 程序之二,1和2鍵控制板載13腳LED燈的亮暗 */ #include <IRremote.h> int RECV_PIN = 7; int LED_PIN = 13; IRrecv irrecv(RECV_PIN); decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); // Start the receiver pinMode(LED_PIN, OUTPUT); digitalWrite(LED_PIN, HIGH); } void loop() { if (irrecv.decode(&results)) { Serial.println(results.value, HEX); if (results.value == 0xFFA25D) //開燈的值 { digitalWrite(LED_PIN, LOW); } else if (results.value == 0xFF629D) //關燈的值 { digitalWrite(LED_PIN, HIGH); } irrecv.resume(); // Receive the next value } delay(100); }
/* 【Arduino】168種傳感器模塊系列實驗(資料代碼+圖形編程+仿真編程) 實驗七十一:HX1838紅外無線遙控套件紅外擴展模塊(遙控器+接收板) 程序之三,查詢紅外數字與HEX編碼值 */ #include <IRremote.h> int PIN_RECV = 7; IRrecv irrecv(PIN_RECV); decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); } void loop() { if (irrecv.decode(&results)) { Serial.print("數字編碼= "); Serial.println(results.value); irrecv.resume(); Serial.print("HEX編碼= "); Serial.println(results.value, HEX); Serial.print("編碼位數= "); Serial.println(results.bits); } delay(600); }
實驗場景圖
實驗開源圖形編程(Mind+、編玩邊學)
實驗開源仿真編程(linkboy3.7)