Mengedipkan LED
Pin I/O tujuan umum (GPIO) dapat dikontrol satu per satu. Ini berguna untuk mengontrol LED, relai, dan perangkat stateful lainnya. Dalam topik ini, Anda akan menggunakan .NET dan pin GPIO Raspberry Pi Anda untuk menyalakan LED dan berkedip berulang kali.
Prasyarat
- Komputer papan tunggal (SBC) berbasis ARM (ARMv7 atau lebih besar)
- LED 5 mm
- Resistor 330 Ω
- Papan roti
- Kabel jumper
- Papan breakout Raspberry Pi GPIO (opsional/disarankan)
- .NET SDK 7 atau yang lebih baru
Catatan
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 Server SSH dalam dokumentasi Raspberry Pi.
Menyiapkan perangkat keras
Gunakan komponen perangkat keras untuk membangun sirkuit seperti yang digambarkan dalam diagram berikut:
Gambar di atas menggambarkan koneksi berikut:
- GPIO 18 ke anode LED (lebih panjang, prospek positif)
- Katoda LED (lebih pendek, timbal negatif) hingga 330 Ω resistor (salah satu ujungnya)
- 330 Ω resistor (ujung lainnya) ke tanah
Lihat diagram pinout berikut sesuai kebutuhan:
Gambar oleh Raspberry Pi Foundation.
Tip
Papan breakout GPIO bersama dengan breadboard disarankan untuk menyederhanakan koneksi ke header GPIO.
Membuat aplikasi
Selesaikan langkah-langkah berikut di lingkungan pengembangan pilihan Anda:
Buat Aplikasi Konsol .NET baru menggunakan .NET CLI atau Visual Studio. Beri nama BlinkTutorial.
dotnet new console -o BlinkTutorial cd BlinkTutorial
Tambahkan paket System.Device.Gpio ke proyek. Gunakan .NET CLI dari direktori proyek atau Visual Studio.
dotnet add package System.Device.Gpio --version 2.2.0-*
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:
-
Deklarasi menggunakan membuat instans
GpioController
.using
Deklarasi memastikan objek dibuang dan sumber daya perangkat keras dirilis dengan benar. - Pin GPIO 18 dibuka untuk output
- Perulangan
while
berjalan tanpa batas waktu. Setiap perulangan:- Menulis nilai ke pin GPIO 18. Jika
ledOn
benar, ia menulisPinValue.High
(aktif). Jika tidak, ia menulisPinValue.Low
. - Tidur 1000 ms.
- Alihkan nilai
ledOn
.
- Menulis nilai ke pin GPIO 18. Jika
-
Deklarasi menggunakan membuat instans
Buat aplikasi. Jika menggunakan .NET CLI, jalankan
dotnet build
. Untuk membuat di Visual Studio, tekan Ctrl+Shift+B.Sebarkan aplikasi ke SBC sebagai aplikasi mandiri. Untuk petunjuknya, lihat Menyebarkan aplikasi .NET ke Raspberry Pi. Pastikan untuk memberikan izin eksekusi yang dapat dieksekusi menggunakan
chmod +x
.Jalankan aplikasi pada Raspberry Pi dengan beralih ke direktori penyebaran dan menjalankan executable.
./BlinkTutorial
LED berkedip dan menyala setiap detik.
Hentikan program dengan menekan Ctrl+C.
Selamat! Anda telah menggunakan GPIO untuk mengedipkan LED.
Dapatkan kode sumber
Sumber untuk tutorial ini tersedia di GitHub.