色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁(yè) > 物聯(lián)網(wǎng)與傳感器 > 設(shè)計(jì)應(yīng)用 > 基于Raspberry Pi Pico的GPIO引腳使用運(yùn)動(dòng)傳感器

          基于Raspberry Pi Pico的GPIO引腳使用運(yùn)動(dòng)傳感器

          作者: 時(shí)間:2021-04-28 來(lái)源:電路城 收藏

          通過(guò)設(shè)置運(yùn)動(dòng)來(lái)學(xué)習(xí)輸入和輸出的基礎(chǔ)知識(shí)。

          本文引用地址:http://cafeforensic.com/article/202104/424991.htm

          Pi Pico具有許多GPIO引腳,我們只需在代碼中配置這些引腳即可將其用作輸入或輸出。在本指南中,我們將學(xué)習(xí)如何使用輸入(在這種情況下為)和以L(fǎng)ED形式的輸出進(jìn)行工作。在本指南的最后,我們將在16行MicroPython中提供一個(gè)簡(jiǎn)單的運(yùn)動(dòng)檢測(cè)器。

          在本指南中,我們將學(xué)習(xí)如何使用 Pi Pico的GPIO引腳作為數(shù)字輸入和輸出,這些輸入和輸出使用高電平和低電平作為一種簡(jiǎn)單的控制方法。

          建立

          該項(xiàng)目的電路增加了一個(gè)額外的組件,即一種被動(dòng)紅外(PIR),該傳感器通常用于家庭安全系統(tǒng)中以檢測(cè)運(yùn)動(dòng)。在此項(xiàng)目中,它將執(zhí)行相同的功能,并且當(dāng)傳感器報(bào)告運(yùn)動(dòng)時(shí),我們的代碼將觸發(fā)一個(gè)LED亮起。

          將傳感器添加到項(xiàng)目中需要:

          ? 半尺寸面包板

          ? LED燈

          ? 330歐姆電阻

          ? PIR傳感器

          ? 3 x母對(duì)公跳線(xiàn)

          1.將 Pi Pico插入面包板,使其位于中央通道上方。確保Micro USB端口位于面包板的一端。

          基于Raspberry Pi Pico的GPIO引腳使用運(yùn)動(dòng)傳感器

          2.將一個(gè)330 Ohm的電阻器插入面包板,其一腳應(yīng)與GND串聯(lián),該腳為PIN38。另一腳應(yīng)插入面包板的-導(dǎo)軌。這為我們提供了GND導(dǎo)軌,其中該導(dǎo)軌中的所有引腳都連接到GND。

          基于Raspberry Pi Pico的GPIO引腳使用運(yùn)動(dòng)傳感器

          3. 插入一個(gè)LED,將長(zhǎng)腳(陽(yáng)極)插入面包板的針腳34,并將短腳插入GND導(dǎo)軌。現(xiàn)在已建立電路。

          基于Raspberry Pi Pico的GPIO引腳使用運(yùn)動(dòng)傳感器

          PIR傳感器具有三個(gè)引腳。VCC,OUT和GND。VCC引腳用于從Raspberry Pi Pico提供3.3V電源。

          基于Raspberry Pi Pico的GPIO引腳使用運(yùn)動(dòng)傳感器

          4.使用跳線(xiàn)將VCC從PIR連接到電阻旁邊的3.3V引腳(引腳37)。

          基于Raspberry Pi Pico的GPIO引腳使用運(yùn)動(dòng)傳感器

          5.使用另一根跳線(xiàn)將PIR的OUT引腳連接到Pico的引腳21。

          基于Raspberry Pi Pico的GPIO引腳使用運(yùn)動(dòng)傳感器

          6.將PIR的GND引腳連接到面包板的GND導(dǎo)軌。

          基于Raspberry Pi Pico的GPIO引腳使用運(yùn)動(dòng)傳感器

          7.建立電路后,使用微型USB導(dǎo)線(xiàn)將Raspberry Pi Pico連接到計(jì)算機(jī)。打開(kāi)Thonny應(yīng)用程序。

          基于Raspberry Pi Pico的GPIO引腳使用運(yùn)動(dòng)傳感器

          現(xiàn)在,我們開(kāi)始對(duì)項(xiàng)目進(jìn)行編碼,并在“入門(mén)”項(xiàng)目中使用的代碼的基礎(chǔ)上,包括輸入,PIR傳感器和條件測(cè)試,以檢查傳感器是否已觸發(fā)。

          基于Raspberry Pi Pico的GPIO引腳使用運(yùn)動(dòng)傳感器

          1.從計(jì)算機(jī)庫(kù)中導(dǎo)入Pin類(lèi),然后導(dǎo)入utime。這些庫(kù)使我們能夠分別與GPIO通信并控制我們的項(xiàng)目進(jìn)度。

          from machine import Pin

          import utime

          2.創(chuàng)建一個(gè)對(duì)象“ led”,該對(duì)象用于在物理GPIO引腳和我們的代碼之間創(chuàng)建鏈接。在這種情況下,它將設(shè)置GPIO 28(映射到板上的物理引腳34)作為輸出引腳,其中電流將從Raspberry Pi Pico GPIO流入LED。然后,我們使用該對(duì)象指示GPIO引腳拉低。換句話(huà)說(shuō),這將確保在項(xiàng)目開(kāi)始時(shí)GPIO引腳被關(guān)閉。

          led = Pin(28, Pin.OUT)

          3.創(chuàng)建另一個(gè)對(duì)象“ pir”。此對(duì)象用于在我們的代碼和GPIO引腳之間創(chuàng)建連接,該GPIO引腳用于從PIR進(jìn)行OUT連接。默認(rèn)情況下,PIR傳感器OUT被拉高,并且當(dāng)檢測(cè)到移動(dòng)時(shí),PIR將OUT引腳拉低。為確保傳感器正常工作,我們將引腳設(shè)置為輸入,然后將GPIO引腳拉高。

          pir = Pin(16, Pin.IN, Pin.PULL_UP)

          4.確保在項(xiàng)目開(kāi)始時(shí)LED熄滅,然后等待三秒鐘再繼續(xù)操作。這兩行確保我們不會(huì)從LED看到“錯(cuò)誤觸發(fā)”,并給傳感器留出一些時(shí)間來(lái)穩(wěn)定使用。

          led.low()

          utime.sleep(3)

          5.在while True循環(huán)(無(wú)盡循環(huán))中,使用打印功能來(lái)打印用于PIR傳感器的GPIO引腳的當(dāng)前值。如果沒(méi)有移動(dòng),則返回1,如果沒(méi)有,則返回0。

          while True:

          print(pir.value())

          6.創(chuàng)建一個(gè)條件測(cè)試,檢查存儲(chǔ)在pir.value中的值。如果值為0,則檢測(cè)到運(yùn)動(dòng),然后將消息打印到Python Shell。然后打開(kāi)LED(高電平)并暫停五秒鐘,同時(shí)保持LED點(diǎn)亮。

          if pir.value() == 0:

          print(“LED On”)

          led.high()

          utime.sleep(5)

          7.沒(méi)有檢測(cè)到運(yùn)動(dòng)時(shí),將激活條件測(cè)試的最后一部分。使用Else條件將消息打印到Python Shell,然后添加一行以關(guān)閉LED(低電平),然后暫停0.2秒。然后重復(fù)循環(huán),并再次運(yùn)行條件測(cè)試。

          else:

          print(“Waiting for movement”)

          led.low()

          utime.sleep(0.2)

          8.單擊保存,然后選擇將代碼保存到MicroPython設(shè)備(Raspberry Pi Pico)。將文件命名為PIR.py,然后單擊“確定”進(jìn)行保存。您的代碼應(yīng)如下所示。

          from machine import Pin

          import utime

          led = Pin(28, Pin.OUT)

          pir = Pin(16, Pin.IN, Pin.PULL_UP)

          led.low()

          utime.sleep(3)

          while True:

          print(pir.value())

          if pir.value() == 0:

          print(“LED On”)

          led.high()

          utime.sleep(5)

          else:

          print(“Waiting for movement”)

          led.low()

          utime.sleep(0.2)

          9.要運(yùn)行代碼,請(qǐng)單擊綠色播放/箭頭按鈕,然后Python Shell將更新為“等待移動(dòng)”和“ LED亮”。PIR傳感器非常靈敏,起初您可能會(huì)看到一些誤觸發(fā),但傳感器會(huì)穩(wěn)定下來(lái)。

          基于Raspberry Pi Pico的GPIO引腳使用運(yùn)動(dòng)傳感器




          關(guān)鍵詞: Raspberry 傳感器

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉