本帖最后由 Stduino 于 2020-8-19 12:16 編輯
說明:紅外遙控是一種無線,非接觸控制技術(shù),具有抗干擾能力強,信息傳輸可靠,可以降低,成本低,易于實現(xiàn)等顯著優(yōu)點,被眾多電子設(shè)備采用。 紅外接收頭的工作原理為:接收內(nèi)置管將紅外發(fā)射管發(fā)射出來的光信號轉(zhuǎn)換為微弱的電 信號,此信號經(jīng)由 IC內(nèi)部放大器進行放大,然后通過自動增益控制,帶通濾波,解調(diào),波形整形后還原為遙控器發(fā)射出的原始編碼,通過接收頭的信號輸出腳輸出到電器上的編碼識別電路。 HS0038 是經(jīng)常常用到的紅外接收電子元件,幾乎可以接收市面所有紅外遙控器的信號,因此我們采用它作為本實驗的接收裝置。 紅外接收發(fā)射需要數(shù)據(jù)遵守一定的規(guī)則,常見的有 NEC 協(xié)議,飛利浦RC5 協(xié)議,索尼SIRC 協(xié)議,ITT ,JVC等。以NEC 協(xié)議為例,我們可以大致了解無線通信協(xié)議的規(guī)則。 首先, NEC 協(xié)議規(guī)定,邏輯1 和邏輯0 有嚴格的時間與電平對應(yīng)關(guān)系,如下圖:邏輯1 :560 μs高電平,1690 μs低電平;邏輯0 :560 μs高電平,560 μs小號低電平。 實際上,一次傳輸?shù)膬?nèi)容包括起始位(引導(dǎo)碼), 8 位地址和8 位命令,其中為了保證數(shù)據(jù)的有效性,有效數(shù)據(jù)是這樣構(gòu)成的:地址+ 地址反碼+ 命令+ 命令反碼。反碼即把0 置為1 ,把1 置為0 ,從而兩次檢驗保證了數(shù)據(jù)的可靠性。因此,一次傳輸內(nèi)容的構(gòu)成如下: 其中起始位為 9ms高電平和4.5ms 低電平。 最后,當(dāng)按鍵長按時,這樣是發(fā)送一個 110ms 的重復(fù)碼: 通過編寫對應(yīng)的程序,還可以利用紅外發(fā)射可以模擬紅外遙控器實現(xiàn)遙控功能,該部分見下分段內(nèi)容。
實驗?zāi)康模?/strong>在本例中,我們將利用紅外接收模塊,接收遙控器發(fā)出的信號,并利用窗口顯示出來。
器材:Stduino UNO / Nano; 杜邦線;紅外接收(HS0038 )模塊
電路連接:
代碼展示: #define IRMP_INPUT_PIN 11 //定義紅外接收I/O引腳
#define IRMP_PROTOCOL_NAMES 1
#include <irmpSelectMain15Protocols.h>//使用15個主要的IR協(xié)議
#include <irmp.c.h>
IRMP_DATA irmp_data[1];//數(shù)據(jù)儲存
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);
}
實驗效果:如串口監(jiān)視器所示,其中 P 表示采用的RC6 協(xié)議,C 表示指令為0x05 ,R 為長按重復(fù)。
Stduino IDE是一款面向32位處理器快速入門學(xué)習(xí)的集成開發(fā)平臺,目前已經(jīng)支持Arduino_Core_STM32框架,集聚快捷、高效、免費、開源、易得于一身,軟件還集成了GDB調(diào)試功能。IDE當(dāng)前支持的功能有:
GDB調(diào)試
封裝庫下載安裝
代碼自動補全提示
中英文模式
UTF-8\GBK編碼格式
代碼快速格式化
SWD\串口程序下載&調(diào)試(已驗證)
DFU程序下載方式(待驗證)
USB HID程序下載方式(待驗證)
maple DFU程序下載方式(待驗證)
maple DFU2程序下載方式(待驗證)
MassStorage程序下載方式(待驗證)
更多功能細節(jié)請點擊圖片上水印顯示的網(wǎng)址進行了解
已經(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
更多功能集成正在進行中~
|