LED-villogás
Az általános célú I/O (GPIO) tűk egyenként szabályozhatók. Ez hasznos a LED-ek, a továbbítók és más állapotalapú eszközök vezérléséhez. Ebben a témakörben a .NET-et és a Raspberry Pi GPIO-csapjait fogja használni a LED-ek bekapcsolásához és ismételt villogásához.
Előfeltételek
- ARM-alapú (ARMv7 vagy újabb) egylapos számítógép (SBC)
- 5 mm-es LED
- 330 Ω ellenállás
- Kenyérvágódeszka
- Jumper drótok
- Raspberry Pi GPIO-melléklap (nem kötelező/ajánlott)
- .NET SDK 7 vagy újabb
Megjegyzés
Ez az oktatóanyag meg van írva, feltéve, hogy a céleszköz Raspberry Pi. Ez az oktatóanyag azonban minden olyan Linux-alapú SBC-hez használható, amely támogatja a .NET-et, például az Orange Pi-t, az ODROID-ot és egyebeket.
Győződjön meg arról, hogy az SSH engedélyezve van az eszközön. Raspberry Pi esetén tekintse meg az SSH-kiszolgáló beállítását a Raspberry Pi dokumentációjában.
A hardver előkészítése
A hardverösszetevők használatával hozza létre a kapcsolatcsoportot az alábbi ábrán látható módon:
A fenti képen a következő kapcsolatok láthatók:
- GPIO 18 to LED anode (hosszabb, pozitív ólom)
- LED katód (rövidebb, negatív ólom) 330 Ω ellenállás (mindkét végén)
- 330 Ω ellenállás (másik vége) a talajhoz
Szükség szerint tekintse meg a következő kitűződiagramot:
Kép jóvoltból Raspberry Pi Foundation.
Tipp
A GPIO-mellékfal és a rajztábla együttes használata ajánlott a GPIO fejléchez való csatlakozás egyszerűsítéséhez.
Az alkalmazás létrehozása
Hajtsa végre a következő lépéseket az előnyben részesített fejlesztési környezetben:
Hozzon létre egy új .NET-konzolalkalmazást a .NET CLI vagy a Visual Studio használatával. Adja neki a BlinkTutorial nevet.
dotnet new console -o BlinkTutorial cd BlinkTutorial
Adja hozzá a System.Device.Gpio csomagot a projekthez. Használja a .NET CLI-t a projektkönyvtárból vagy a Visual Studióból.
dotnet add package System.Device.Gpio --version 2.2.0-*
Cserélje le a Program.cs fájl tartalmát a következő kódra:
using System; using System.Device.Gpio; using System.Threading; Console.WriteLine("Blinking LED. Press Ctrl+C to end."); int pin = 18; using var controller = new GpioController(); controller.OpenPin(pin, PinMode.Output); bool ledOn = true; while (true) { controller.Write(pin, ((ledOn) ? PinValue.High : PinValue.Low)); Thread.Sleep(1000); ledOn = !ledOn; }
A fenti kód a következőket végzi el:
- A használó deklaráció létrehozza a példányt.
GpioController
Ausing
deklaráció biztosítja, hogy az objektum el legyen távolítva, és a hardvererőforrások megfelelően legyenek felszabadítva. - A GPIO pin 18 meg van nyitva a kimenethez
- A
while
hurok határozatlan ideig fut. Minden iteráció:- Értéket ír a GPIO 18-hoz. Ha
ledOn
igaz, akkor a (on) szöveget írjaPinValue.High
. Ellenkező esetben a következőtPinValue.Low
írja: . - Alvó 1000 ms.
- A értékét váltja
ledOn
ki.
- Értéket ír a GPIO 18-hoz. Ha
- A használó deklaráció létrehozza a példányt.
Az alkalmazás létrehozása. Ha a .NET CLI-t használja, futtassa a parancsot
dotnet build
. A Visual Studióban való buildeléshez nyomja le a CtrlShift+Bbillentyűkombinációt+.Helyezze üzembe az alkalmazást az SBC-ben önálló alkalmazásként. Útmutatásért lásd: .NET-alkalmazások üzembe helyezése a Raspberry Pi-ben. Győződjön meg arról, hogy a végrehajtható végrehajtási engedélyt a használatával
chmod +x
adja meg.Futtassa az alkalmazást a Raspberry Pi-n az üzembehelyezési könyvtárra való váltással és a végrehajtható fájl futtatásával.
./BlinkTutorial
A LED minden másodpercben ki- és bekapcsol.
Állítsa le a programot a CtrlC billentyű lenyomásával+.
Gratulálunk! A GPIO-t használta a LED villogásához.
A forráskód lekérése
Az oktatóanyag forrása a GitHubon érhető el.