Miganie diodą LED
Wyprowadzenia we/wy ogólnego przeznaczenia (GPIO) można kontrolować indywidualnie. Jest to przydatne do kontrolowania diod LED, przekaźników i innych urządzeń stanowych. W tym temacie użyjesz platformy .NET i wyprowadzeń GPIO urządzenia Raspberry Pi, aby zasilać diodę LED i migać ją wielokrotnie.
Wymagania wstępne
- Komputer jednowłotowy oparty na usłudze ARM (ARMv7 lub nowszy) (SBC)
- 5 mm LED
- Rezystor 330 Ω
- Makiet
- Przewody skoczkowe
- Tablica breakout urządzenia Raspberry Pi GPIO (opcjonalnie/zalecana)
- Zestaw .NET SDK 7 lub nowszy
Uwaga
Ten samouczek został napisany przy założeniu, że urządzenie docelowe to Raspberry Pi. Jednak ten samouczek może być używany dla dowolnego systemu Linux SBC, który obsługuje platformę .NET, taką jak Orange Pi, ODROID i nie tylko.
Upewnij się, że protokół SSH jest włączony na urządzeniu. W przypadku urządzenia Raspberry Pi zapoznaj się z tematem Konfigurowanie serwera SSH w dokumentacji urządzenia Raspberry Pi.
Przygotowywanie sprzętu
Użyj składników sprzętowych, aby skompilować obwód, jak pokazano na poniższym diagramie:
Powyższy obraz przedstawia następujące połączenia:
- GPIO 18 do węzła LED (dłuższy, dodatni prowadzić)
- Katoda LED (krótsza, ujemna prowadzić) do 330 Ω rezystor (albo koniec)
- 330 Ω rezystor (inny koniec) do uziemienia
W razie potrzeby zapoznaj się z następującym diagramem przypinania:
Obraz dzięki uprzejmości Raspberry Pi Foundation.
Porada
Tablica podziału GPIO w połączeniu z tablicą do chleba zaleca się usprawnić połączenia z nagłówkiem GPIO.
Tworzenie aplikacji
Wykonaj następujące kroki w preferowanym środowisku projektowym:
Utwórz nową aplikację konsolową platformy .NET przy użyciu interfejsu wiersza polecenia platformy .NET lub programu Visual Studio. Nadaj mu nazwę BlinkTutorial.
dotnet new console -o BlinkTutorial cd BlinkTutorial
Dodaj pakiet System.Device.Gpio do projektu. Użyj interfejsu wiersza polecenia platformy .NET z katalogu projektu lub programu Visual Studio.
dotnet add package System.Device.Gpio --version 2.2.0-*
Zastąp zawartość pliku Program.cs następującym kodem:
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; }
Powyższy kod ma następujące działanie:
- Deklaracja using tworzy wystąpienie klasy
GpioController
. Deklaracjausing
zapewnia, że obiekt jest usuwany, a zasoby sprzętowe są prawidłowo zwalniane. - Wyprowadzenia GPIO 18 są otwierane dla danych wyjściowych
- Pętla
while
jest uruchamiana na czas nieokreślony. Każda iteracja:- Zapisuje wartość do wyprowadzenia GPIO 18. Jeśli
ledOn
ma wartość true, zapisujePinValue.High
(na). W przeciwnym razie zapisujePinValue.Low
wartość . - Śpi 1000 ms.
- Przełącza wartość .
ledOn
- Zapisuje wartość do wyprowadzenia GPIO 18. Jeśli
- Deklaracja using tworzy wystąpienie klasy
Kompilowanie aplikacji. Jeśli używasz interfejsu wiersza polecenia platformy .NET, uruchom polecenie
dotnet build
. Aby skompilować w programie Visual Studio, naciśnij klawisze Ctrl+Shift+B.Wdróż aplikację w SBC jako samodzielną aplikację. Aby uzyskać instrukcje, zobacz Wdrażanie aplikacji .NET na urządzeniach Raspberry Pi. Pamiętaj, aby nadać wykonywalne uprawnienie do wykonywania przy użyciu polecenia
chmod +x
.Uruchom aplikację na urządzeniu Raspberry Pi, przełączając się do katalogu wdrożenia i uruchamiając plik wykonywalny.
./BlinkTutorial
Dioda LED miga i co sekundę.
Zakończ program, naciskając klawisze Ctrl+C.
Gratulacje! Użyto interfejsu GPIO do migania diody LED.
Uzyskiwanie kodu źródłowego
Źródło tego samouczka jest dostępne w usłudze GitHub.