市面上常見(jiàn)的傳感器模塊,其輸出大體可分為模擬、數(shù)字、特定協(xié)議輸出(例如 RS485、RS232、SPI、CAN、單總線等)。其中,前兩種的讀取最為簡(jiǎn)單通用,而使用特定協(xié)議的傳感器讀取方法要參考傳感器相應(yīng)的文檔。
本教程以四針腳的光線傳感器為例,介紹模擬和數(shù)字輸出的傳感器的讀取方法。只有這款四針腳的光線傳感器,才可以同時(shí)兼具模擬輸出(AO 引腳)和數(shù)字輸出(DO 引腳)。而其他三針腳的傳感器,有的僅支持模擬輸出,有的僅支持?jǐn)?shù)字輸出。
光線傳感器對(duì)環(huán)境光線檢測(cè):
AO 腳輸出模擬信號(hào),信號(hào)量越大表示光線越少。
DO 腳輸出數(shù)字信號(hào),光線超過(guò)一個(gè)閾值時(shí)輸出低電平,反之則輸出高電平。這個(gè)閾值可以通過(guò)轉(zhuǎn)動(dòng)傳感器上的可調(diào)電阻來(lái)設(shè)定。
硬件連接
傳感器模塊的 VCC 腳接樹(shù)莓派 Pico 的 3V3。
傳感器模塊的 GND 腳接樹(shù)莓派 Pico 的 GND。
傳感器模塊的 AO 腳接樹(shù)莓派 Pico 的 GP28。
傳感器模塊的 DO 腳接樹(shù)莓派 Pico 的 GP27。
為了便于理解,我們下面的代碼中,將讀取到的數(shù)值進(jìn)行一個(gè)變化。以便讓光線越強(qiáng)時(shí)顯示出來(lái)的數(shù)值更大(最小值為 0,最大值為 65535),當(dāng)光線達(dá)到閾值時(shí)顯示 1 而不是 0。
import machine import utime sensor_analog = machine.ADC(28) sensor_digital = machine.Pin(27, machine.Pin.IN) while True: print('Analog value: %d, Digital value: %d.' % (65535 - sensor_analog.read_u16(), 1 - sensor_digital.value())) utime.sleep(0.5)
運(yùn)行之后,Shell 中每隔 0.5 秒會(huì)打印出一行從傳感器讀取到并轉(zhuǎn)換之后的數(shù)據(jù)。數(shù)值隨著環(huán)境光線的變化隨之變化。
對(duì)于其他類(lèi)似設(shè)計(jì)的傳感器,例如聲音傳感器、振動(dòng)傳感器、火焰?zhèn)鞲衅?、土?a href="http://www.xsypw.cn/tags/濕度傳感器/" target="_blank">濕度傳感器、水位傳感器、雨水傳感器等,接線和讀取方法以此類(lèi)推即可。
審核編輯:劉清
-
傳感器
+關(guān)注
關(guān)注
2551文章
51125瀏覽量
753767 -
光線傳感器
+關(guān)注
關(guān)注
0文章
24瀏覽量
14706 -
樹(shù)莓派
+關(guān)注
關(guān)注
116文章
1707瀏覽量
105661
原文標(biāo)題:在樹(shù)莓派 Pico 上使用光線傳感器等傳感器模塊
文章出處:【微信號(hào):趣無(wú)盡,微信公眾號(hào):趣無(wú)盡】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論