Bagikan melalui


Kedipkan LED

Pin I/O tujuan umum (GPIO) dapat dikontrol satu per satu. Ini berguna untuk mengontrol LED, relai, dan perangkat berbasis status lainnya. Dalam topik ini, Anda akan menggunakan .NET dan pin GPIO Raspberry Pi Anda untuk memberi daya LED dan berkedip berulang kali.

Prasyarat

  • Komputer papan tunggal berbasis ARM (ARMv7 atau lebih besar) (SBC)
  • LED 5 mm
  • Resistor 330 Ω
  • Papan percobaan
  • Kabel penghubung
  • Papan ekstensi GPIO Raspberry Pi (opsional/dianjurkan)
  • .NET SDK 8 atau yang lebih baru

Nota

Tutorial ini ditulis dengan asumsi perangkat target adalah Raspberry Pi. Namun, tutorial ini dapat digunakan untuk SBC berbasis Linux apa pun yang mendukung .NET, seperti Orange Pi, ODROID, dan banyak lagi.

Pastikan SSH diaktifkan di perangkat Anda. Untuk Raspberry Pi, lihat Menyiapkan SSH Server dalam dokumentasi Raspberry Pi.

Menyiapkan perangkat keras

Gunakan komponen perangkat keras untuk membangun sirkuit seperti yang digambarkan dalam diagram berikut:

Diagram Fritzing memperlihatkan sirkuit dengan LED dan resistor

Gambar di atas menggambarkan koneksi berikut:

  • GPIO 18 ke anode LED (prospek positif lebih panjang)
  • Katoda LED (lebih pendek, berujung negatif) ke resistor 330 Ω (salah satu ujungnya)
  • 330 Ω resistor (ujung lainnya) ke tanah

Silakan lihat diagram pinout berikut jika diperlukan.

Diagram yang menampilkan pinout header GPIO pada Raspberry Pi. Gambar milik Raspberry Pi Foundation.
Gambar atas izin Raspberry Pi Foundation.

Petunjuk / Saran

Papan breakout GPIO dalam kombinasi dengan breadboard dianjurkan untuk mempermudah koneksi ke header GPIO.

Membuat aplikasi

Selesaikan langkah-langkah berikut di lingkungan pengembangan pilihan Anda:

  1. Buat Aplikasi Konsol .NET baru menggunakan .NET CLI atau Visual Studio. Beri nama BlinkTutorial.

    dotnet new console -o BlinkTutorial
    cd BlinkTutorial
    
  2. Tambahkan paket System.Device.Gpio ke proyek. Gunakan .NET CLI dari direktori proyek atau Visual Studio.

    dotnet add package System.Device.Gpio --version 3.2.0-*
    
  3. Ganti konten Program.cs dengan kode berikut:

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

    Dalam kode sebelumnya:

    • Menggunakan deklarasi membuat instans GpioController. using Deklarasi memastikan objek dilepaskan dan sumber daya perangkat keras dibebaskan dengan benar.
    • Pin GPIO 18 diaktifkan sebagai keluaran
    • Perulangan while berlangsung tanpa batas waktu. Setiap perulangan:
      1. Menulis nilai ke pin GPIO 18. Jika ledOn benar, ia menulis PinValue.High (aktif). Jika tidak, ia menulis PinValue.Low.
      2. Menunggu selama 1000 ms.
      3. Mengalihkan nilai ledOn.
  4. Buat aplikasi. Jika menggunakan .NET CLI, jalankan dotnet build. Untuk membuat di Visual Studio, tekan Ctrl+Shift+B.

  5. Sebarkan aplikasi ke SBC sebagai aplikasi mandiri. Untuk petunjuknya, lihat Menyebarkan aplikasi .NET ke Raspberry Pi. Pastikan untuk memberikan izin eksekusi menggunakan chmod +x.

  6. Jalankan aplikasi pada Raspberry Pi dengan beralih ke direktori penyebaran dan jalankan executable.

    ./BlinkTutorial
    

    LED berkedip dan menyala setiap detik.

  7. Hentikan program dengan menekan Ctrl+C.

Selamat! Anda telah menggunakan GPIO untuk mengedipkan LED.

Dapatkan kode sumber

Sumber untuk tutorial ini tersedia di GitHub.

Langkah berikutnya