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:

LED ve direnç içeren devreyi gösteren Bir Arızalı diyagram

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:

Raspberry Pi GPIO üst bilgisinin sabitlemesini gösteren diyagram. Görüntü, Raspberry Pi Foundation'ın nezaketidir.
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:

  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 2.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;
    }
    

    Yukarıdaki kodda:

    • Using bildirimi bir GpioControllerörneği oluşturur. bildirimi using , 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:
      1. GPIO pin 18'e bir değer yazar. ledOn True ise yazar PinValue.High (açık). Aksi takdirde yazar PinValue.Low.
      2. 1000 ms uyuyor.
      3. değerini ledOndeğ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+ ShiftBtuş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. kullanarak chmod +xyü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 kodunu alma

Bu öğreticinin kaynağı GitHub'dan edinilebilir.

Sonraki adımlar