日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

张高兴的 .NET Core IoT 入门指南:(二)GPIO 的使用

發(fā)布時(shí)間:2023/12/4 asp.net 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 张高兴的 .NET Core IoT 入门指南:(二)GPIO 的使用 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

什么是 GPIO

GPIO 是 General Purpose Input Output 的縮寫,即“通用輸入輸出”。 Raspberry Pi 有兩行 GPIO 引腳, Raspberry Pi 通過(guò)這兩行引腳進(jìn)行一些硬件上的擴(kuò)展,與傳感器進(jìn)行交互等等。


Raspberry Pi B+/2B/3B/3B+/Zero 引腳圖


簡(jiǎn)單的講,每一個(gè) GPIO 引腳都有兩種模式:輸出模式(OUTPUT)和輸入模式(INPUT)。輸出模式類似于一個(gè)電源,Raspberry Pi 可以控制這個(gè)電源是否向外供電,比如打開(kāi)外部的 LED 小燈,當(dāng)然最有用的還是向外部設(shè)備發(fā)送信號(hào)。輸入模式相當(dāng)于電源的陰極,還是以 LED 小燈為例,只不過(guò)這次 LED 小燈的陽(yáng)極接著外部電源,一個(gè)電路只有產(chǎn)生電壓差時(shí)才會(huì)有電流,因此要想讓小燈亮需要讓電流流入 Raspberry Pi 中。和輸出模式相反,輸入模式是接收外部設(shè)備發(fā)來(lái)的信號(hào)。

GPIO 通常采用標(biāo)準(zhǔn)邏輯電平,即高電平和低電平,用二進(jìn)制 0 和 1 表示。在這兩值中間還有閾值電平,即高電平和低電平之間的界限。 Arduino 會(huì)將 -0.5 ~ 1.5 V 讀取為低電平,3 ~ 5.5 V 讀取為高電平, Raspberry Pi 未查到相關(guān)資料。GPIO 還可用于中斷請(qǐng)求,即設(shè)置 GPIO 為輸入模式,值達(dá)到相應(yīng)的要求時(shí)進(jìn)行中斷。

相關(guān)類(Class)

此處默認(rèn)各位是面向?qū)ο蟮某绦騿T,具有一定的 C# 基礎(chǔ),這里只介紹本人認(rèn)為常用的方法,介紹將以代碼注釋的形式體現(xiàn)。

GPIO 操作主要依賴于兩個(gè)類:?GpioController?、?GpioPin?。這兩個(gè)類位于?System.Devices.Gpio?名稱空間下。

GpioController

GpioPin

人體紅外傳感器實(shí)驗(yàn)

示例地址:https://github.com/ZhangGaoxing/dotnet-core-iot-demo/tree/master/src/PIR

人體紅外傳感器是基于周圍區(qū)域的紅外熱來(lái)檢測(cè)運(yùn)動(dòng)的,也稱被動(dòng)紅外傳感器(Passive Infra-Red, PIR)。

這里使用的是 HC-SR501 。當(dāng)傳感器檢測(cè)到人體時(shí),LED 小燈亮,當(dāng)傳感器未檢測(cè)到人體時(shí),LED 小燈滅。

傳感器圖像


HC-SR501


硬件

名稱數(shù)量
HC-SR501x1
LED 小燈x1
220 Ω 電阻x1
杜邦線若干

電路

HC-SR501

  • VCC - 5V

  • GND - GND

  • OUT - GPIO 17

LED

  • VCC & 220 Ω resistor - GPIO 27

  • GND - GND

代碼

  • 打開(kāi) Visual Studio ,新建一個(gè) .NET Core 控制臺(tái)應(yīng)用程序,項(xiàng)目名稱為“PIR”。

  • 引入?System.Devices.Gpio?NuGet 包。

  • 新建類?HCSR501,替換如下代碼(此處略有精簡(jiǎn),只為必要的代碼,不包含自定義事件,詳細(xì)可查看提供的示例):

  • ?Program.cs?中,將主函數(shù)代碼替換如下:

  • 發(fā)布、拷貝、更改權(quán)限、運(yùn)行

  • 效果圖



    ?如何改進(jìn)?

    剔除主函數(shù)循環(huán),嘗試在自定義事件中進(jìn)行檢測(cè),即 GpioPin 的 ValueChanged 事件。

    原文地址:https://www.cnblogs.com/zhanggaoxing/p/10327917.html

    .NET社區(qū)新聞,深度好文,歡迎訪問(wèn)公眾號(hào)文章匯總 http://www.csharpkit.com


    總結(jié)

    以上是生活随笔為你收集整理的张高兴的 .NET Core IoT 入门指南:(二)GPIO 的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。