新聞中心

        EEPW首頁 > 物聯(lián)網(wǎng)與傳感器 > 設計應用 > 基于Raspberry Pi Pico的GPIO引腳使用運動傳感器

        基于Raspberry Pi Pico的GPIO引腳使用運動傳感器

        作者: 時間:2021-04-28 來源:電路城 收藏

        通過設置運動來學習輸入和輸出的基礎知識。

        本文引用地址:http://www.104case.com/article/202104/424991.htm

        Pi Pico具有許多GPIO引腳,我們只需在代碼中配置這些引腳即可將其用作輸入或輸出。在本指南中,我們將學習如何使用輸入(在這種情況下為)和以LED形式的輸出進行工作。在本指南的最后,我們將在16行MicroPython中提供一個簡單的運動檢測器。

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

        建立

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

        將傳感器添加到項目中需要:

        ? 半尺寸面包板

        ? LED燈

        ? 330歐姆電阻

        ? PIR傳感器

        ? 3 x母對公跳線

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

        基于Raspberry Pi Pico的GPIO引腳使用運動傳感器

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

        基于Raspberry Pi Pico的GPIO引腳使用運動傳感器

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

        基于Raspberry Pi Pico的GPIO引腳使用運動傳感器

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

        基于Raspberry Pi Pico的GPIO引腳使用運動傳感器

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

        基于Raspberry Pi Pico的GPIO引腳使用運動傳感器

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

        基于Raspberry Pi Pico的GPIO引腳使用運動傳感器

        6.將PIR的GND引腳連接到面包板的GND導軌。

        基于Raspberry Pi Pico的GPIO引腳使用運動傳感器

        7.建立電路后,使用微型USB導線將Raspberry Pi Pico連接到計算機。打開Thonny應用程序。

        基于Raspberry Pi Pico的GPIO引腳使用運動傳感器

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

        基于Raspberry Pi Pico的GPIO引腳使用運動傳感器

        1.從計算機庫中導入Pin類,然后導入utime。這些庫使我們能夠分別與GPIO通信并控制我們的項目進度。

        from machine import Pin

        import utime

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

        led = Pin(28, Pin.OUT)

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

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

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

        led.low()

        utime.sleep(3)

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

        while True:

        print(pir.value())

        6.創(chuàng)建一個條件測試,檢查存儲在pir.value中的值。如果值為0,則檢測到運動,然后將消息打印到Python Shell。然后打開LED(高電平)并暫停五秒鐘,同時保持LED點亮。

        if pir.value() == 0:

        print(“LED On”)

        led.high()

        utime.sleep(5)

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

        else:

        print(“Waiting for movement”)

        led.low()

        utime.sleep(0.2)

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

        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.要運行代碼,請單擊綠色播放/箭頭按鈕,然后Python Shell將更新為“等待移動”和“ LED亮”。PIR傳感器非常靈敏,起初您可能會看到一些誤觸發(fā),但傳感器會穩(wěn)定下來。

        基于Raspberry Pi Pico的GPIO引腳使用運動傳感器




        關鍵詞: Raspberry 傳感器

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 温泉县| 永吉县| 中江县| 江达县| 福建省| 泌阳县| 陇川县| 垣曲县| 兴化市| 宜州市| 文山县| 凌海市| 台州市| 巴彦淖尔市| 林周县| 甘洛县| 青川县| 宁远县| 肇州县| 平山县| 印江| 赤壁市| 池州市| 保亭| 贡觉县| 浮梁县| 龙江县| 若羌县| 高安市| 贵德县| 旌德县| 宜宾市| 巨野县| 林周县| 晋中市| 江源县| 唐河县| 隆安县| 延安市| 靖州| 门头沟区|