標(biāo)題: [更好用的單片機(jī)]Stduino學(xué)習(xí)(三十一)紅外接收模塊 [打印本頁(yè)]

作者: Stduino    時(shí)間: 2020-8-19 12:15
標(biāo)題: [更好用的單片機(jī)]Stduino學(xué)習(xí)(三十一)紅外接收模塊
本帖最后由 Stduino 于 2020-8-19 12:16 編輯

說(shuō)明:
紅外遙控是一種無(wú)線,非接觸控制技術(shù),具有抗干擾能力強(qiáng),信息傳輸可靠,可以降低,成本低,易于實(shí)現(xiàn)等顯著優(yōu)點(diǎn),被眾多電子設(shè)備采用。
紅外接收頭的工作原理為:接收內(nèi)置管將紅外發(fā)射管發(fā)射出來(lái)的光信號(hào)轉(zhuǎn)換為微弱的電 信號(hào),此信號(hào)經(jīng)由 IC內(nèi)部放大器進(jìn)行放大,然后通過(guò)自動(dòng)增益控制,帶通濾波,解調(diào),波形整形后還原為遙控器發(fā)射出的原始編碼,通過(guò)接收頭的信號(hào)輸出腳輸出到電器上的編碼識(shí)別電路。

HS0038 是經(jīng)常常用到的紅外接收電子元件,幾乎可以接收市面所有紅外遙控器的信號(hào),因此我們采用它作為本實(shí)驗(yàn)的接收裝置。
紅外接收發(fā)射需要數(shù)據(jù)遵守一定的規(guī)則,常見的有 NEC 協(xié)議,飛利浦RC5 協(xié)議,索尼SIRC 協(xié)議,ITT JVC等。以NEC 協(xié)議為例,我們可以大致了解無(wú)線通信協(xié)議的規(guī)則。
首先, NEC 協(xié)議規(guī)定,邏輯1 和邏輯0 有嚴(yán)格的時(shí)間與電平對(duì)應(yīng)關(guān)系,如下圖:邏輯1 560 μs高電平,1690 μs低電平;邏輯0 560 μs高電平,560 μs小號(hào)低電平。

實(shí)際上,一次傳輸?shù)膬?nèi)容包括起始位(引導(dǎo)碼), 8 位地址和8 位命令,其中為了保證數(shù)據(jù)的有效性,有效數(shù)據(jù)是這樣構(gòu)成的:地址+ 地址反碼+ 命令+ 命令反碼。反碼即把0 置為1 ,把1 置為0 ,從而兩次檢驗(yàn)保證了數(shù)據(jù)的可靠性。因此,一次傳輸內(nèi)容的構(gòu)成如下:

其中起始位為 9ms高電平4.5ms 低電平。
最后,當(dāng)按鍵長(zhǎng)按時(shí),這樣是發(fā)送一個(gè) 110ms 的重復(fù)碼:

通過(guò)編寫對(duì)應(yīng)的程序,還可以利用紅外發(fā)射可以模擬紅外遙控器實(shí)現(xiàn)遙控功能,該部分見下分段內(nèi)容。

實(shí)驗(yàn)?zāi)康模?/strong>
在本例中,我們將利用紅外接收模塊,接收遙控器發(fā)出的信號(hào),并利用窗口顯示出來(lái)。

器材:
Stduino UNO / Nano; 杜邦線;紅外接收(HS0038 )模塊

電路連接:


代碼展示:
#define IRMP_INPUT_PIN 11  //定義紅外接收I/O引腳
#define IRMP_PROTOCOL_NAMES 1
#include <irmpSelectMain15Protocols.h>//使用15個(gè)主要的IR協(xié)議
#include <irmp.c.h>
IRMP_DATA irmp_data[1];//數(shù)據(jù)儲(chǔ)存
void setup()
{
    Serial.begin(115200);
    irmp_init();//初始化紅外通信
    irmp_irsnd_LEDFeedback(true); //開始接收紅外通信
    irmp_print_active_protocols(&Serial);//打印支持的IR協(xié)議
}

void loop() {
    if (irmp_get_data(&irmp_data[0]))
    {
        irmp_result_print(&irmp_data[0]); //輸出接收到的信息
    }
    delay(100);
}

實(shí)驗(yàn)效果:
如串口監(jiān)視器所示,其中 P 表示采用的RC6 協(xié)議,C 表示指令為0x05 ,R 為長(zhǎng)按重復(fù)。



Stduino IDE是一款面向32位處理器快速入門學(xué)習(xí)的集成開發(fā)平臺(tái),目前已經(jīng)支持Arduino_Core_STM32框架,集聚快捷、高效、免費(fèi)、開源、易得于一身,軟件還集成了GDB調(diào)試功能。IDE當(dāng)前支持的功能有:

    GDB調(diào)試
    封裝庫(kù)下載安裝
    代碼自動(dòng)補(bǔ)全提示
    中英文模式
    UTF-8\GBK編碼格式
    代碼快速格式化
    SWD\串口程序下載&調(diào)試(已驗(yàn)證)
    DFU程序下載方式(待驗(yàn)證)
    USB HID程序下載方式(待驗(yàn)證)
    maple DFU程序下載方式(待驗(yàn)證)
    maple DFU2程序下載方式(待驗(yàn)證)
    MassStorage程序下載方式(待驗(yàn)證)

更多功能細(xì)節(jié)請(qǐng)點(diǎn)擊圖片上水印顯示的網(wǎng)址進(jìn)行了解

已經(jīng)支持的芯片&板型列表:

    Stduino UNO&Nano
    Nucleo 144 boards
    Nucleo 64 boards
    Nucleo 32 boards
    Discovery boards
    Eval boards
    STM32MP1 series coprocessor boards
    Generic STM32F0 boards
    Generic STM32F1 boards
    Generic STM32F3 boards
    Generic STM32F4 boards
    Generic STM32H7 boards
    Generic STM32L0 boards
    3D printer boards
    LoRa boards
    Electronic Speed Controller boards
    Generic flight controllers
    Garatronics boards
    Midatronics boards

更多功能集成正在進(jìn)行中~






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1