Aracılığıyla paylaş


LED'i yanıp söndür

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 konu başlığında .NET ve Raspberry Pi'nizin GPIO pinlerini kullanarak bir LED'i çalıştıracak ve tekrar tekrar yanıp sönecektir.

Ö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 10 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 destekleyen tüm 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:

Bir LED ve direnç içeren devreyi gösteren bir Fritzing diyagramı

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:

Raspberry Pi GPIO başlığı pin yerleşimini gösteren diyagram. Görüntü, Raspberry Pi Foundation'ın izniyle.
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:

  1. .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
    
  2. System.Device.Gpio paketini projeye ekleyin. Proje dizininden .NET CLI veya Visual Studio kullanın.

    dotnet package add System.Device.Gpio --version 4.0.1
    
  3. 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 düzgün ş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:
      1. GPIO pin 18'e bir değer yazar. Eğer ledOn doğruysa, PinValue.High (açık) yazar. Aksi takdirde yazar PinValue.Low.
      2. 1000 ms uyuyor.
      3. ledOn değerini değiştirir.
  4. Uygulamayı oluşturun. .NET CLI kullanıyorsanız dotnet build çalıştırın. Visual Studio oluşturmak için Ctrl+Shift+B tuşlarına basın.

  5. Uygulamayı SBC'ye bağımsız bir uygulama olarak dağıtın. Yönergeler için bkz. Raspberry Pi'ye .NET uygulamaları dağıtma. chmod +x kullanarak yürütülebilir yürütme izni verdiğinizden emin olun.

  6. 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.

  7. 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 üzerinde mevcuttur.

Sonraki adımlar