引言
傳感器正如計算機的眼睛。從廣義上講,傳感器就是一種能感知外界信息,并將這些信息按照一定規(guī)律轉(zhuǎn)換成可用的電信號或其他形式的輸出信號的裝置,達到對信息的存儲,傳輸,控制的目的。本文著重分析如何通過單片機分析電信號時序圖實現(xiàn)對傳感器的控制與傳感器采集信息的讀取
一.HC-SR04超聲波測距模塊

VCC引腳:接5V電源
GND引腳:接地線
TRIG:觸發(fā)信號引腳,單片機給超聲波模塊一個信號,超聲波信號就會工作
ECHO引腳:回聲信號 引腳,當超聲波模塊已經(jīng)測距成功后,通過該引腳告訴單片機當前超聲波傳播距離

從時序圖可以分析出,未開始工作時,觸發(fā)信號與輸出回響信號均處于低電平,隨后觸發(fā)信號引腳發(fā)出一段時間為10微秒的高電平后拉低,表示通信開始,隨后模塊內(nèi)部將發(fā)出超聲播脈沖,當回響信號引腳接收到超聲波脈沖后,,將輸出一段時間的高電平,通過檢測高電平時間既可以得出檢測距離三.距離計算
超聲波在空氣中傳播的速度約為三百四十米每秒,超聲波模塊測距誤差約為3mm,于此可得計算公式如下:

該公式表明,該模塊的最短測距時間單位為9微秒,距離單位為3mm
四.代碼

二.DHT11溫濕度傳感器
一.模塊簡介

二.時序圖
1.
DATA引腳用于微處理器與DHT11之間的通訊與同步,采用單總線數(shù)據(jù)格式,一次通信時間4ms左右,數(shù)據(jù)分為整數(shù)部分和小數(shù)部分,具體格式在下面說明。
一次完整的數(shù)據(jù)傳輸為40bit,高位先出。
數(shù)據(jù)格式:
8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+8bit溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)+8bit校驗和
數(shù)據(jù)傳輸正確時校驗和數(shù)據(jù)等于”8bit濕度整數(shù)數(shù)據(jù),8bit濕度小數(shù)數(shù)據(jù),8bit溫度整數(shù)數(shù)據(jù),8bit溫度小數(shù)數(shù)據(jù)”之和的末八位
通信過程
通信開始

數(shù)據(jù)判斷


三.具體代碼

三.紅外
一.紅外線
紅外線是波長介于微波與可見光之間的電磁波,波長在760納米到1毫米之間,是波形比紅光長的非可見光。自然界中一切物體都在不斷輻射紅外線。當然,雖然都是在輻射紅外線,但不同的物體輻射的強度是不一樣的,正是利用了這一點將紅外線運用到實際開發(fā)之中
1.紅外發(fā)射管
紅外發(fā)射管很常用,在我們的遙控器上都可以看到,它類似發(fā)光二極管,但是它發(fā)射出來的是紅外光,是我們?nèi)庋鬯床坏降摹N覀儗W過發(fā)光二極管的亮度會隨著電流的增大而增加,同樣的道理,紅外發(fā)射管發(fā)射紅外線的強度也會隨著電流的增大而增強
2.紅外接收管
紅外接收管內(nèi)部是一個具有紅外光敏感特征的 PN 節(jié),屬于光敏二極管,但是它只對紅外光有反應。無紅外光時,光敏管不導通,有紅外光時,光敏管導通形成光電流,并且在一定范圍內(nèi)電流隨著紅外光的強度的增強而增大
二.紅外遙控技術(shù)
遠程遙控技術(shù)又稱為遙控技術(shù),是指實現(xiàn)對被控目標的遙遠控制,在工業(yè)控制、航空航天、家電領(lǐng)域應用廣泛。
紅外遙控是一種無線、非接觸控制技術(shù),具有抗干擾能力強,信息傳輸可靠,功耗低,成本低,易實現(xiàn)等顯著優(yōu)點,被諸多電子設(shè)備特別是家用電器廣泛采用,并越來越多的應用到計算機和手機系統(tǒng)中。
隨著家用電器、視聽產(chǎn)品的普及,紅外線遙控器已被廣泛使用在各種類型的家電產(chǎn)品上(如遙控開關(guān)、智能開關(guān)等)。其具有體積小、抗干擾能力強、功耗低、功能強、成本低等特點,在工業(yè)設(shè)備中也得到廣泛應用。一般而言,一個通用的紅外遙控系統(tǒng)由發(fā)射和接收兩大部分組成
2.基本原理
通常紅外遙控為了提高抗干擾性能和降低電源消耗,紅外遙控器常用載波的方式傳送二進制編碼,常用的載波頻率為38KHz,這是由發(fā)射端所使用的455KHz晶振來決定的。在發(fā)射端要對晶振進行整數(shù)分頻,分頻系數(shù)一般取12,所以455KHz÷12≈37.9KHz≈38KHz。也有一些遙控系統(tǒng)采用36KHz、40 KHz、56 KHz等,一般由發(fā)射端晶振的振蕩頻率來決定。所以,通常的紅外遙控器是將遙控信號(二進制脈沖碼)調(diào)制在38KHz的載波上,經(jīng)緩沖放大后送至紅外發(fā)光二極管,轉(zhuǎn)化為紅外信號發(fā)射出去的。

二進制脈沖碼的形式有多種,其中最為常用的是PWM碼(脈沖寬度調(diào)制碼)和PPM碼(脈沖位置調(diào)制碼,脈沖串之間的時間間隔來實現(xiàn)信號調(diào)制)。如果要開發(fā)紅外接收設(shè)備,一定要知道紅外遙控器的編碼方式和載波頻率,我們才可以選取一體化紅外接收頭和制定解碼方案
紅外遙控的發(fā)射電路是采用紅外發(fā)光二極管來發(fā)出經(jīng)過調(diào)制的紅外光波;紅外接收電路由紅外接收二極管、三極管或硅光電池組成,它們將紅外發(fā)射器發(fā)射的紅外光轉(zhuǎn)換為相應的電信號,再送后置放大器。
發(fā)射端
一般由指令鍵(或操作桿)、指令編碼系統(tǒng)、調(diào)制電路、驅(qū)動電路、發(fā)射電路等幾部分組成。當按下指令鍵或推動操作桿時,指令編碼電路產(chǎn)生所需的指令編碼信號,指令編碼信號對載波進行調(diào)制,再由驅(qū)動電路進行功率放大后由發(fā)射電路向外發(fā)射經(jīng)調(diào)制定的指令編碼信號。
接收端
一般由接收電路、放大電路、調(diào)制電路、指令譯碼電路、驅(qū)動電路、執(zhí)行電路(機構(gòu))等幾部分組成。接收電路將發(fā)射器發(fā)出的已調(diào)制的編碼指令信號接收下來,并進行放大后送解調(diào)電路,解調(diào)電路將已調(diào)制的指令編碼信號解調(diào)出來,即還原為編碼信號。指令譯碼器將編碼指令信號進行譯碼,最后由驅(qū)動電路來驅(qū)動執(zhí)行電路實現(xiàn)各種指令的操作控制。
3、編碼格式
現(xiàn)有的紅外遙控包括兩種方式:PWM(脈沖寬度調(diào)制)和PPM(脈沖位置調(diào)制)。
兩種形式編碼的代表分別為NEC 和PHILIPS 的RC-5、RC-6 以及將來的RC-7。
PWM(脈沖寬度調(diào)制):以發(fā)射紅外載波的占空比代表“0”和“1”。為了節(jié)省能量,一般情況下,發(fā)射紅外載波的時間固定,通過改變不發(fā)射載波的時間來改變占空比。例如常用的電視遙控器,使用NEC upd6121,其“0”為載波發(fā)射0.56ms,不發(fā)射0.56ms;其“1”為載波發(fā)射0.56ms,不發(fā)射1.68ms;此外,為了解碼的方便,還有引導碼,upd6121 的引導碼為載波發(fā)射9ms,不發(fā)射4.5ms。upd6121 總共的編碼長度為108ms。
但并不是所有的編碼器都是如此,比如TOSHIBA 的TC9012,其引導碼為載波發(fā)射4.5ms,不發(fā)射4.5ms,其“0”為載波發(fā)射0.52ms,不發(fā)射0.52ms,其“1”為載波發(fā)射0.52ms,不發(fā)射1.04ms。
PPM(脈沖位置調(diào)制):以發(fā)射載波的位置表示“0”和“1”。從發(fā)射載波到不發(fā)射載波為“0”,從不發(fā)射載波到發(fā)射載波為“1”。其發(fā)射載波和不發(fā)射載波的時間相同,都為0.68ms,也就是每位的時間是固定的。
通過以上對編碼的分析,可以得出以某種固定格式的“0”和“1”去學習紅外,是很有可能不成功的。即市面上所宣傳的可以學習64 位、128 位必然是不可靠的。
另外,由于空調(diào)的狀態(tài)遠多于電視、音像,并且沒有一個標準,所以各廠家都按自己的格式去做一個,造成差異更大。比如:美的的遙控器采用PWM 編碼,碼長120ms 左右;新科的遙控器也采用PWM 編碼,碼長500ms 左右。如此大的差異,如果按“位”的概念來講,應該是多少位呢?64?128?顯然都不可能包含如此長短不一的編碼。
對于電視、音響等,一般使用專用的遙控芯片,比nec,philips,toshiba,sanyo,mitsubish,pana sonic 的芯片,其編碼格式固定,一個鍵只有一個編碼,學習比較容易。
而空調(diào)不一樣,各家空調(diào)廠商都是按自己的要求用cpu 做遙控芯片,編碼形式就有很多種。比如可能沒有引導碼(電視音響類都有)、校驗方式取累加和(電視音響類一般取反碼)等。因為空調(diào)的狀態(tài)多,必須一次發(fā)送完畢,有制冷、溫度、風速、自動、定時、加濕、制熱等,所以編碼很長,并且同一個按鍵,在不同狀態(tài)下發(fā)送的編碼不一樣,造成學習上的困難。
紅外遙控器的編碼格式通常有兩種格式:NEC 和RC5。
4、NEC協(xié)議
1.NEC 格式的特征:
● 使用38 kHz 載波頻率
● 引導碼間隔是9 ms + 4.5 ms
● 使用16 位客戶代碼
● 使用8 位數(shù)據(jù)代碼和8 位取反的數(shù)據(jù)代碼
2.NEC時序圖

*碼+反碼=225文章來源:http://www.zghlxwxcb.cn/news/detail-422336.html
三.NEC協(xié)議具體代碼
由于紅外數(shù)據(jù)的隨機產(chǎn)生,一般需要把紅外接收函數(shù)放在外部中斷函數(shù)中,外部中斷設(shè)置為下降沿觸發(fā),表示開始接收到紅外線數(shù)據(jù)文章來源地址http://www.zghlxwxcb.cn/news/detail-422336.html

到了這里,關(guān)于STM32學習筆記———幾種簡單傳感器的數(shù)據(jù)讀取的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!