數字傳感器
?
數字
傳感器是指將傳統的
模擬式傳感器經過加裝或改造A/D轉換模塊,使之輸出
信號為數字量(或數字編碼)的傳感器,主要包括:
放大器、A/D
轉換器、
微處理器(
CPU)、存儲器、通訊
接口、溫度測試電路等,在微處理器和傳感器變得越來越便宜的今天,全自動或半自動(通過人工指令進行高層次操作,自動處理低層次操作)系統可以包含更多智能性功能,能從其環境中獲得并處理更多不同的
參數。
?
特點
?
1、先進的A/D轉換技術和
智能濾波
算法,在滿量程的情況下仍可保證輸出碼的穩定。
?
2、可行的數據存儲技術,保證模塊參數不會丟失。
?
?
4、傳感器的性能采用數字化誤差補償技術和高度集成化
電子元件,用軟件實現傳感器的線性、零點、溫漂、蠕變等性能參數的綜合補償,消除了人為因素對補償的影響,大大提高了傳感器綜合精度和可靠性。
?
5、傳感器的輸出一致性誤差可以達到0.02%以內甚至更高,傳感器的特性參數可完全相同,因而具有良好的互換性。
?
6、采用A/D轉換電路、數字化信號傳輸和數字濾波技術,傳感器的抗干擾能力增加,信號傳輸距離遠,提高了傳感器的穩定性。
?
7、數字傳感器能自動采集數據并可預處理、存儲和記憶,具有唯一標記,便于故障診斷。
?
8、傳感器采用標準的數字通訊接口,可直接連入計算機,也可與標準
工業控制總線連接,方便靈活。
?
9, 數字傳感器是將
AD,EP
ROM,DIE(指還未封裝的傳感器
芯片,屬于裸片,大小介于cell和chip之間),封裝在一塊用
PCB,金屬塊或陶瓷板上的集成。通過各種溫度,壓力點的校準,計算出DIE的線性,再利用AD去補償的方法加工而成的。
?
應用及前景
?
在微處理器和傳感器變得越來越便宜的今天,全自動或半自動(通過人工指令進行高層次操作,自動處理低層次操作)系統可以包含更多智能性功能,能從其環境中獲得并處理更多不同的參數。尤其是
MEMS(微型機電系統)技術,它使數字傳感器的體積非常微小并且能耗與成本也很低。以納米碳管或其它納米材料制成的納米傳感器同樣具有巨大的潛力 [1] 。
?
即使在萌芽階段,人們仍然認為在不久的將來數字傳感器對電子市場具有重要的推動作用。制作數字傳感器的接口以及支持用于數字傳感器
網絡的形式多樣的通訊協議都是對技術工藝的巨大挑戰。傳感器的非均質特性和其操作條件的多樣化也對技術工藝提出了巨大的挑戰。
?
現在系統設計所包含的傳感器和
處理器越來越多。隨著傳感器和處理器價格的不斷降低,取代
機械控制結構的閾值也在不斷變化。在系統中選擇正確的傳感器組合和處理算法可以顯著地降低原材料及能耗的費用并提高系統的總體性能。目前,不斷提高操作的簡化程度和延長能源的使用壽命變得越來越重要,尤其是如今越來越多的傳感器網絡動輒就配置1000或更多的傳感器節點。
GY-30數字光強傳感器通過I2C通信協議接入Arduino過程中的一些問題和解決方案:
網上流行著兩個版本:
我用版本一的代碼,發現并不對,串口打印一直顯示光照強度為 0 ,很奇怪,也研究了很久,去 Wire 這個庫文件看了函數實現,后來發現
Wire.requestFrom(ADDR, 2); // 2byte every time
這一行代碼出現了問題。
這個 requestFrom
網上對它的描述都是:
Wire.requestFrom()
描述:
主設備請求從設備一個字節,這個字節可以被主設備用 read()或available()接受。
Wire.requrstFrom(addtess,quantity)
Wire.requrstFrom(addtess,quantity,stop)
參數 :
addtess : 7位的器件地址
quantity : 請求得到的數量 stop :布爾形,‘1’
則在請求結束后發送一個停止命令,并釋放總線?!?’則繼續發送請求保持連接。
返回:
字節形 ,從從機接受到的字節數目。
然而并沒有提,要用 requestFrom 前后必須要加:
Wire.beginTransmission(ADDR);
Wire.endTransmission();
這兩句,分別為開始一次傳輸數據,和結束一次傳輸。
也就是將 requestFrom 這行代碼改為以下,即可完成從設備向主設備發送數據
在這里也就是 gy30(從設備) 向 arduino 板(主設備)傳輸光強度的采集量
Wire.beginTransmission(ADDR);
Wire.requestFrom(ADDR, 2);
Wire.endTransmission();