Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Genel amaçlı G/Ç (GPIO) pinleri ayrı ayrı kontrol edilebilir. Bu, LED'leri, geçişleri ve durum bilgisi olan diğer cihazları denetlemek için kullanışlıdır. Bu konuda, .NET ve Raspberry Pi'nizin GPIO pinlerini kullanarak bir LED'i çalıştıracak ve onu tekrar tekrar yanıp sönmesini sağlayacaksınız.
Önkoşullar
- ARM tabanlı (ARMv7 veya üzeri) tek kartlı bilgisayar (SBC)
- 5 mm çapında LED
- 330 Ω direnç
- Devre tahtası
- Jumper telleri
- Raspberry Pi GPIO tartışma panosu (isteğe bağlı/önerilen)
- .NET SDK 8 veya üzeri
Uyarı
Bu öğretici, hedef cihazın Raspberry Pi olduğu varsayılarak yazılmıştır. Ancak bu öğretici Orange Pi, ODROID ve daha fazlası gibi .NET'i destekleyen linux tabanlı SBC'ler için kullanılabilir.
Cihazınızda SSH'nin etkinleştirildiğinden emin olun. Raspberry Pi için Raspberry Pi belgelerinde SSH Sunucusu Ayarlama bölümüne bakın.
Donanımı hazırlama
Aşağıdaki diyagramda gösterildiği gibi bağlantı hattını oluşturmak için donanım bileşenlerini kullanın:
Yukarıdaki görüntüde aşağıdaki bağlantılar yer almaktadır:
- GPIO 18 ile LED anot (daha uzun, pozitif uç)
- LED katotu (daha kısa, negatif uç) - 330 Ω direnç (herhangi bir uç)
- 330 Ω direnç (diğer ucu) yere
Gerektiğinde aşağıdaki pinout şemasına bakın:
Görüntü, Raspberry Pi Foundation'ın izniyle.
Tavsiye
GPIO üst bilgisine bağlantıları kolaylaştırmak için bir breadboard ile birlikte bir GPIO kapsam kartı önerilir.
Uygulamayı oluşturma
Tercih ettiğiniz geliştirme ortamında aşağıdaki adımları tamamlayın:
.NET CLI veya Visual Studio kullanarak yeni bir .NET Konsol Uygulaması oluşturun. BlinkTutorial olarak adlandırın.
dotnet new console -o BlinkTutorial cd BlinkTutorial
System.Device.Gpio paketini projeye ekleyin. Proje dizininden veya Visual Studio'dan.NET CLI kullanın.
dotnet add package System.Device.Gpio --version 3.2.0-*
Program.cs dosyasının içeriğini aşağıdaki kodla değiştirin:
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; }
Önceki kodda:
-
Using bildirimi, bir
GpioController
örneği oluşturur.using
bildirimi, nesnenin atılmasını ve donanım kaynaklarının doğru şekilde serbest bırakılmasını sağlar. - GPIO pin 18 çıkış için açıldı
- Döngü
while
süresiz olarak çalışır. Her yineleme:- GPIO pin 18'e bir değer yazar. Eğer
ledOn
doğruysaPinValue.High
(açık) yazar. Aksi takdirde şunu yazarPinValue.Low
. - 1000 ms uyuyor.
-
ledOn
değerini değiştirir.
- GPIO pin 18'e bir değer yazar. Eğer
-
Using bildirimi, bir
Uygulamayı oluşturun. .NET CLI kullanıyorsanız komutunu çalıştırın
dotnet build
. Visual Studio'da derlemek için Ctrl+ ShiftB+ basın.Uygulamayı SBC'ye bağımsız bir uygulama olarak dağıtın. Yönergeler için bkz. Raspberry Pi'ye .NET uygulamaları dağıtma. kullanarak yürütülebilir dosyaya
chmod +x
izni verdiğinizden emin olun.Raspberry Pi'de uygulamayı çalıştırmak için dağıtım dizinine geçin ve yürütülebilir dosyayı çalıştırın.
./BlinkTutorial
LED her saniye yanıp söner.
Ctrl+C tuşlarına basarak programı sonlandırın.
Tebrikler! LED'i yanıp sönmek için GPIO kullandınız.
Kaynak kodu alma
Bu öğreticinin kaynağı GitHub'da kullanılabilir.