基於STM32定時器的紅外遙控數據接收設計原理

2020-11-22 電子發燒友

基於STM32定時器的紅外遙控數據接收設計原理

工程師3 發表於 2018-04-30 17:52:00

一、原理

1、紅外發射協議

紅外發射協議已經在之前的文章中寫過,在此就不贅述。

2、定時器計數和輸入捕獲

定時器就是按照一個特定的頻率對計數值進行加一或減一操作,當數值溢出時則產生一個標誌或中斷。

定時器的輸入捕獲就是可以測量輸入信號的脈衝寬度。

本次就是通過普通計數和輸入捕獲的結合來實現的。

3、實現方法

利用定時器記錄輸入信號高脈衝的時間,通過該時間來判斷數據是否是同步頭信息、數據 1 或者數據 0。

二、實現

1、配置 定時器2 輸入捕獲通道

示例代碼中使用 PA1 管腳,配置為上拉輸入模式,復用功能為定時器2的通道2。

定時器採用普通定時器,定時器2,該定時器具有輸入捕獲功能。

配置定時器的兩種工作模式,一個是普通計數器TIM_TimeBaseInit,一個是輸入捕獲模式TIM_ICInit。

配置定時器2的中斷源,有兩個中斷源,一個是更新中斷TIM_IT_Update,一個是輸入捕獲中斷TIM_IT_CC2。

配置代碼如下:

2、添加定時器2的中斷服務函數

使用了兩種定時器中斷源,分別為計數溢出中斷和輸入捕獲中斷。但是這兩種方式觸發中斷的中斷服務函數是同一個,即void TIM2_IRQHandler(void)。

定時器使用的是 TIM2 通用定時器,模式為向上計數。在該模式中,計數器從 0 計數到自動加載值 (TIMx_ARR計數器的內容) ,然後重新從 0 開始計數並且產生一個計數器溢出事件。定時器計數溢出的周期為10ms,該中斷的產生說明在10ms內都沒有輸入捕獲來清空計數值,也就是輸入信號沒有發生變化,說明 10ms 沒有收到紅外信號了,因此可判斷為接收完成。

輸入捕獲是為了測量高電平的持續時間,因此採用上升沿觸發中斷,對計數值清零,切換下一次為下降沿觸發;在下降沿觸發中斷時,記下計數值,切換下一次為上升沿觸發。因此在下降沿記下的時間即為高電平的時序時間。記錄高電平持續時間的原因,是因為紅外信號在表示邏輯0、邏輯1時低電平的持續時間的相同的,而高電平的持續時間不同的。

示例代碼如下:

3、紅外按鍵掃描函數

該函數放在主循環中,輪訓判斷按鍵是否接收完成。如果接收完成則開始分析鍵值。

該函數返回一個16位的數值,其中低八位表示鍵值,高八位表示按下的次數,依次來分析長按鍵和短按鍵。這一點主要是通過紅外協議中重複碼的規定來實現的。

紅外協議中規定,若按下一個鍵後沒有放開,則會以 108ms 為一個周期發送重複碼。重複碼錶現為2.25ms的高電平。

示例代碼如下:

4、主函數

在 main 函數中,對 IO 口和 定時器進行初始化。

主循環中,通過判斷接收完成標誌位,對接收完成的按鍵控制碼進行列印。

SystemKeyHandle()函數處理每一個按鍵的操作邏輯。

示例代碼如下:

三、演示

如下圖為串口列印出接收的紅外按鍵值信息:

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • 智能紅外遙控開關工作原理和電路設計
    1 工作原理 智能紅外遙控開關主要由紅外接收、放大整形、微控制器、開關控制以及降壓電源等模塊組成,其原理框圖如圖1所示。 2.2 解碼電路設計 智能紅外遙控開關的硬體核心部分是微控制器和紅外接收部分,其原理圖如圖3所示。
  • 基於STM32的紅外遙控和解碼遙控程序解析
    網上書上都有,下面進入正題  一、紅外遙控協議的的講解  紅外遙控的編碼目前廣泛使用的是:NEC Protocol的PWM(脈衝寬度調製)和Philips RC-5 Protocol的PPM(脈衝位置調製)  本文將以NEC協議實現紅外遙控。
  • 智能型紅外遙控器的設計
    引言本文引用地址:http://www.eepw.com.cn/article/82284.htm  空調已進入千家萬戶,空調遙控器作為空調的用戶界面,其設計的原理已成熟。為此,提出了一種基於溫度控制的編碼狀態轉換算法,為基於單片機的智能型紅外空調遙控器的設計提供了可能。  1 紅外遙控碼型分析   1.1 紅外遙控碼型研究分析  目前,各電器生產廠家對遙控脈衝編碼及碼流還沒有形成統一的標準。
  • 「硬見小百科」一文詳解紅外遙控模塊工作原理
    本文首先介紹了紅外遙控模塊的基本原理,其次詳解闡述了紅外遙控模塊工作原理,最後介紹了紅外遙控的重要環節及應用。 紅外遙控的基本原理 紅外遙控的發射電路是採用紅外發光二極體來發出經過調製的紅外光波;紅外接收電路由紅外接收二極體、三極體或矽光電池組成,它們將紅外發射器發射的紅外光轉換為相應的電信號,再送後置放大器。
  • 一文詳解紅外遙控模塊工作原理
    本文首先介紹了紅外遙控模塊的基本原理,其次詳解闡述了紅外遙控模塊工作原理,最後介紹了紅外遙控的重要環節及應用。 紅外遙控的基本原理   紅外遙控的發射電路是採用紅外發光二極體來發出經過調製的紅外光波;紅外接收電路由紅外接收二極體、三極體或矽光電池組成,它們將紅外發射器發射的紅外光轉換為相應的電信號,再送後置放大器。
  • 紅外接收頭原理,超詳細講解
    我們知道紅外遙控一般分為兩部分,分別是發射部分以及接收部分,而紅外接收頭屬於接收部分,發射部分的主要元件為紅外發光二極體;而接受部分它的組成最重要的部分是光敏二極體。紅外接收頭廣泛應用於音響、電視、錄影機、機頂盒、電暖器、電風扇、遙控車等場合。
  • 病房呼叫系統的軟體設計_單片機病房呼叫系統的設計 - CSDN
    不會stm32,那你還不好意思來應聘硬體工程師? stm32的學習資料多是零零散散的,電路城先將stm32資料做了一個整合,也將於STM32單片機的精彩設計實例做了一個匯總,適合新手迅速上手,也適合高手做創作。
  • 基於LPC2104的智能燈光控制器原理及設計
    2 設計目標 設計一個智能化燈光控制器,安裝在家中的各個房間,提供無線遙控、輕觸式燈光控制、場景組合、預設存儲等豐富功能。 該智能化燈光控制系統分為接收外來控制信號和執行控制操作兩部分,為了接收控制信號,系統需具備無線接收功能和按鍵輸入面板,為了對燈具執行控制,需要設計220V調光控制電路。 LPC2104具有豐富的外圍接口資源,並有很高的可靠性和運算速度,非常適於該系統的設計,智能燈光控制器原理如圖1所示。
  • 基於單片機的智能學習型紅外空調遙控器
    本文設計了一款針對空調設備的智能學習型紅外遙控器,採用記錄脈衝寬度的方法,成功實現了對多種紅外空調遙控信號的學習與再現,真正實現了"萬能"。本文在闡述了系統的總體結構及硬體設計的基礎上,詳細研究了系統學習,發送及通信功能的軟體設計與實現。
  • 紅外接收頭原理,超詳細講解,趕緊收藏了
    我們知道紅外遙控一般分為兩部分,分別是發射部分以及接收部分,而紅外接收頭屬於接收部分,發射部分的主要元件為紅外發光二極體;而接受部分它的組成最重要的部分是光敏二極體。紅外接收頭廣泛應用於音響、電視、錄影機、機頂盒、電暖器、電風扇、遙控車等場合。
  • 智慧家庭紅外遙控電路設計攻略 —電路圖天天讀(99)
    常見的紅外發射二極體有黑色,透明色,它與普通發光二極體的最大區別在於所發出的光為不可見光,而普通發光二極體發出的是各種顏色的可見光,通常,紅外發光二極體分為兩種結構形式:一種是遙控發射型紅外發光二極體(即最常用的手持遙控器所用的紅外發射二極體);一種是近距離發射型紅外發光二極體,這種二極體把紅外光的發射與接收共集為一體。由於本設計實現的是家居遙控,因此採用第一種即可。
  • 紅外線遙控電風扇設計思路
    紅外遙控電路現在已成為一種設計電路的時尚,現簡單地介紹了紅外線遙控發射、接收系統的原理,給出用 89C2051作為遙控接收系統解碼器的一種巧妙實現方法,以及完整的51彙編程序代碼。包括發射、接收的原理圖及其編程的主程序、發送程序、接收程序、定時中斷程序的流程過程,從而完成此設計的要點,參考流程方框圖的構思過程,可以編寫應用軟體。
  • 紅外遙控器原理
    2.紅外遙控器原理--功能  紅外遙控器裝置包括紅外線發射(即遙控器)和紅外線接收兩部分。當指令鍵被按下時,指令信號產生電路便產生所需要的控制信號,控制指令信號經調製電路調製後,最終由驅動電路驅動紅外線發射器,發出紅外線遙控指令信號。  接收器由紅外線接收器件、前置放大電路、解調電路、指令信號檢出電路、記憶及驅動電路、執行電路組成。
  • 詳細解讀紅外遙控解碼
    紅外遙控就是以紅外線為傳輸介質的遙控。 紅外遙控器是怎麼工作的?其實它內部就是有一個單片機,單片機的I/O口控制一個紅外LED燈(當然一般會加外部放大電路以增大傳輸距離),在內部編碼後發送出去,然後電視或者空調之類的可以用紅外遙控控制的電器在接收到紅外信號後就會進行解碼,並根據制定好的協議執行特定動作,比如電視可能換臺、調節音量等。
  • 紅外通信原理詳解
    一、紅外通信原理 紅外遙控有發送和接收兩個組成部分。發送端採用單片機將待發送的二進位信號編碼調製為一系列的脈衝串信號,通過紅外發射管發射紅外信號。紅外接收完成對紅外信號的接收、放大、檢波、整形,並解調出遙控編碼脈衝。
  • 詳解遙控電路設計分析—電路圖天天讀(270)
    電子愛好者制 作遙控電路,可以選用專用集成電路板來製作,但掌握一些常用遙控電路的原理,對提高自身技術很有幫助。 單通道、單用戶遙控電路是遙控電路中最簡單的一種, 電路通常用於光、聲控制。  三、超聲波遙控發射/接收電路  如圖3所示,超聲波發射由555定時器組成多諧振蕩器,其中 RP、R1、C1為定時元件,由振蕩周期計算公式(設 W1=15.3kΩ)。
  • 13個基於STM32的經典項目設計實例,全套資料~
    今天總結了幾篇電路城上關於STM32 的製作,不能說每篇都是經典,但都是在其他地方找不到的,很有學習參考意義的設計實例。尤其對於新手,是一個學習stm32單片機的“活生生”的範例。
  • 基於物聯網的空氣淨化器設計
    此外主控單元還會將處理後的數據按照物聯網平臺的通信協議發送到物聯網平臺的伺服器中,方便用戶通過手機客戶端實時查看室內傳感器的數據,了解當前室內的空氣品質。不僅如此,用戶還可以通過紅外遙控器對空氣淨化器進行直接控制或者通過Wi-Fi遠程的方式對空氣淨化器和系統聯動的設備進行控制,真正實現任意時間任意地點都能對家中室內的空氣品質進行監測和改善。
  • 可控矽在紅外遙控開關中的應用及工作原理
    本人利用它的這個特性製作了下面這款簡單的紅外遙控開關電路,如圖1所示。本文引用地址:http://www.eepw.com.cn/article/163366.htm一、工作原理  220V交流電壓經電容C1降壓,VD1、VD2、C2整流濾波,VD3穩壓後輸出12V直流電壓給本電路供電用。12V直流電壓再經R2、VD4、C3進一步穩壓濾波後供紅外接收頭HRM作電源用。
  • 實用紅外遙控開關製作
    由於一體化紅外線接收頭種類繁多,質量和性能也不同。為此,本人選用市場上擁有量較多的三森和畫佳紅外接收頭為主要元件,介紹幾種由本人試製過的遙控距離為15米左右、使用家中彩電遙控器控制的電源開關電路。本文引用地址:http://www.eepw.com.cn/article/160261.htm1、電路廈工作原理圖1是由三森紅外接收頭和雙D觸發器SN74LS74為主要元件製作的紅外遙控開關燈電路。圖中將D觸發器的6腳直接接到2腳D輸入端構成T 觸發器。紅外接收頭靜態時信號端輸出高電平。