(SKU:RB-03T001)紅外無線遙控套件
目錄 |
概況
- 紅外線遙控接收傳感器模塊,它采用了 HS 0038 一體化紅外接收頭作為信號(hào)接收元
件,確保了產(chǎn)品具有極高的可靠性與卓越的長(zhǎng)期穩(wěn)定性。HS 0038 是一個(gè)集成度很高的 元器件。紅外接收電路一體化的紅外接收裝置將遙控信號(hào)的接收、放大、檢波、整形 集于一身,并且輸出可以讓單片機(jī)識(shí)別的 TTL 信號(hào),這樣大大簡(jiǎn)化了接收電路的復(fù)雜 程度和電路的設(shè)計(jì)工作,方便使用。在產(chǎn)品中我們采用紅外一體化接收頭 HS0038,外 觀如封面圖片所示。HS0038 黑色環(huán)氧樹脂封裝,不受日光、熒光燈等光源干擾。HS 0038 為直立側(cè)面收光型。它接收紅外信號(hào)頻率為 38 kHz,周期約 26 μs,能同時(shí)對(duì)信號(hào)進(jìn)行 放大、檢波、整形,得到 TTL 電平的編碼信號(hào)。因此該款產(chǎn)品具有品質(zhì)卓越、超快響 應(yīng)、抗干擾能力強(qiáng)、性價(jià)比高等優(yōu)點(diǎn)。
- 應(yīng)用領(lǐng)域:家電產(chǎn)品、人機(jī)互動(dòng)平臺(tái)、教學(xué)儀器儀表、PC遙控器等。
規(guī)格參數(shù)
- 供電電壓:4.5~5.5V
- 輸出信號(hào):TTL;
- 接收信號(hào)距離半徑:不大于7m(根據(jù)遙控器發(fā)射功率而定,此參數(shù)為本套遙控器測(cè)試結(jié)果);
- 模塊尺寸:13.5mm×38.3mm
- 模塊重量:2g
使用方 法
步驟一:接線 S 端口連接到控制器的 I/O 口。+、- 分別接到電源的+5V 和 GND。 步驟二:安裝固定 根據(jù)需要通過直徑 φ3 的連接件(銅柱、螺釘、螺栓等)進(jìn)行固定。
紅外遙 控接收 傳感 器的測(cè)試
我們使用 Arduino 控制器來做個(gè)測(cè)試,要用到硬件設(shè)備如下:
- Arduino 控制器×1
- Arduino LCD1602 字符液晶擴(kuò)展板×1
- 紅外遙控接收傳感器模塊×1
- 蜂鳴器發(fā)聲模塊×1
- 超薄紅外遙控器×1
- 通用 3P 傳感器連接線×2
- USB 數(shù)據(jù)通信線×1
- 如圖所示,使用傳感器連接線將紅外遙控接收傳感器連接到 LCD1602 字符液晶擴(kuò)
展板的模擬口 1 上,如需聲音提示可把本公司的蜂鳴器發(fā)聲模塊連接到模擬口 2 上, 這里要說明下,我們是把模擬接口當(dāng)做數(shù)字接口用,這樣比較方便,參見例子程序中 接口定義。連接好硬件后,再把測(cè)試源程序庫(kù)文件解壓縮到你的 Arduino 安裝目錄下的 hardware\ libraries 里面(如需紅外遙控接收傳感器庫(kù)文件請(qǐng)聯(lián)系我們的技術(shù)客服)。然 后將代碼編譯后下載到 Arduino 里,就可以進(jìn)行鍵值讀取試驗(yàn)了,同時(shí)在軟件里的串口 監(jiān)視窗口上可以看見同步的鍵值顯示(注:軟件串口波特率設(shè)置為 9600)。
- Arduino 實(shí)驗(yàn)代碼如下:
#include <LCD4Bit_mod.h> LCD4Bit_mod lcd = LCD4Bit_mod(2); #define TIMER_RESET TCNT1 = 0 #define SAMP LE_S IZE 68 int BUZZER = 16;// 設(shè)置模擬口 2 為蜂鳴器信號(hào)輸出引腳 int IRpin = 15; //設(shè)置模擬口 1 為信號(hào)接收引腳 unsigned int TimerValue[SAMPLE_SIZE]; char direction[SAMPLE_SIZE]; byte change_count; long t ime1, t ime2; unsigned long data; char a,b,c,d,e; unsigned long irc; char tab[12]={"0123456789"}; void setup() { pinMode(IRpin, INPUT); pinMode(13, OUTPUT); pinMode(BUZZER,OUTPUT);// 設(shè)置與蜂鳴器連接的引腳為輸出模式 lcd.init(); lcd.clear( ); lcd.printIn("www.robotbase.cn"); lcd.cursorTo(2, 0); lcd.printIn("IR_CODE:"); TCCR1B = 0x03; TCCR1A = 0x00; a=0;b=0;c=0;d=0;e=0; Serial.begin(9600); bee(); void loop() { lcd.cursorTo(2, 9); lcd.print(tab[a]); lcd.cursorTo(2, 10); lcd.print(tab[b]); lcd.cursorTo(2, 11); lcd.print(tab[c]); lcd.cursorTo(2, 12); lcd.print(tab[d]); lcd.cursorTo(2, 13); lcd.print(tab[e]); ir_code(); Serial.println(irc); } void bee() { digitalWrite(BUZZER,LOW);//蜂鳴器響 delay(300); digitalWrite(BUZZER,HIGH);//蜂鳴器響 delay(300); } void ir_code() { change_count = 0; while(digitalRead(IRpin) == HIGH) {} // 等待起始位 TIMER_RES ET; TimerValue[change_count] = TCNT1; direct ion[change_count++] = '0'; while (change_count < S AMP LE_SIZE) { if (direction[change_count-1] == '0') { while(digitalRead(IRpin) == LOW) {} // 等待電平上升沿出現(xiàn) TimerValue[change_count] = TCNT1; direct ion[change_count++] = '1'; // 保持信號(hào)狀態(tài) } else { while(d igit alRead(IRpin) == HIGH) {} // 等待電平信號(hào)的下降沿 TimerValue[change_count] = TCNT1; direct ion[change_count++] = '0'; // 保持信號(hào)狀態(tài) } } change_count = 0; data = 0; time1 = (long) TimerValue[change_count] * 4; change_count += 2; while (change_count < SAMPLE_SIZE) { time2 = (long) TimerValue[change_count] * 4; if ((t ime2 - time1) > 8000) { else if ((time2 - t ime1) > 1680) { data = data << 1; // 左移一位 data |= 1; else { data = data << 1; change_count += 2; time1 = time2; irc=data%100000; a=irc/10000; b=irc%10000/1000; c=irc%1000/100; d=irc%100/10; e=irc%10; bee(); }
- 配套遙控器鍵值表:
Arduino 平 臺(tái)下全碼鍵值
51 單片機(jī)平臺(tái)下全碼鍵值