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 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:

Bir LED ve direnç içeren bir devreyi gösteren 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ığının pin yapısını gösteren bir diyagram. Görüntü, Raspberry Pi Foundation'un izniyle sağlanmıştır.
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 veya Visual Studio'dan.NET CLI kullanın.

    dotnet add package System.Device.Gpio --version 3.2.0-*
    
  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 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:
      1. GPIO pin 18'e bir değer yazar. Eğer ledOn doğruysa PinValue.High (açık) yazar. Aksi takdirde şunu yazar PinValue.Low.
      2. 1000 ms uyuyor.
      3. ledOn değerini değiştirir.
  4. 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.

  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. kullanarak yürütülebilir dosyaya chmod +x 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'da kullanılabilir.

Sonraki adımlar