LED yanıp sönmesi
Genel amaçlı G/Ç (GPIO) pinleri tek tek kontrol edilebilir. Bu, LED'leri, geçişleri ve durum bilgisi olan diğer cihazları denetlemek için kullanışlıdır. Bu konu başlığında, .NET ve Raspberry Pi'nizin GPIO pin'lerini kullanarak LED'i çalıştıracak ve tekrar tekrar yanıp sönecektir.
Önkoşullar
- ARM tabanlı (ARMv7 veya üzeri) tek tahtalı bilgisayar (SBC)
- 5 mm LED
- 330 Ω direnç
- Breadboard
- Atlama telleri
- Raspberry Pi GPIO tartışma panosu (isteğe bağlı/önerilir)
- .NET SDK 7 veya üzeri
Not
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-LED anot (daha uzun, pozitif kurşun)
- LED katot (daha kısa, negatif kurşun) 330 Ω rezistans (iki ucu)
- 330 Ω direnç (diğer ucu) yere
Gerektiğinde aşağıdaki sabitleme diyagramına bakın:
Görüntü, Raspberry Pi Foundation'ın nezaketidir.
İpucu
GPIO üst bilgisine bağlantıları kolaylaştırmak için, bir breadboard ile birlikte gpio tartışma panosu önerilir.
Uygulama 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 2.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; }
Yukarıdaki kodda:
-
Using bildirimi bir
GpioController
örneği oluşturur. bildirimiusing
, nesnenin atılmasını ve donanım kaynaklarının düzgün bir ş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.
ledOn
True ise yazarPinValue.High
(açık). Aksi takdirde yazarPinValue.Low
. - 1000 ms uyuyor.
- değerini
ledOn
değiştirir.
- GPIO pin 18'e bir değer yazar.
-
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+ ShiftBtuşlarına+ 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
chmod +x
yürütülebilir yürütme 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 kodunu alma
Bu öğreticinin kaynağı GitHub'dan edinilebilir.