Sensor Cahaya Digital
Aplikasi inti Windows 10 IoT yang aktif LED berdasarkan pembacaan sensor cahaya digital.
Cerita
Butuh beberapa waktu bagi saya untuk mengetahui bahwa membaca status Sensor Cahaya Digital itu mudah dan itu hanya bergantung pada pembacaan nilai GPIO!
Ide proyek ini sangat sederhana, cukup nyalakan lampu LED saat sensor mendeteksi cahaya dan sebaliknya.
Demo hasil proyek
Jadi mari kita lanjutkan dan periksa diagram pengkabelan di bawah ini dan omong-omong, saya tidak menemukan diagram untuk Sensor Cahaya Digital jadi saya menyimpannya sebagai teks !!!!
Menyiapkan Papan
Diagram Pengkabelan
- Sensor Cahaya Digital:GPIO # 5
Terserah Anda juga untuk mengubah nomor pin, tetapi pastikan nomor tersebut tercermin dengan benar dalam kode UWP.
Bagian yang saya suka, coding!
Proyek ini hanya memiliki halaman yang berisi kode C# dan tidak diperlukan UI saat ini.
Langkah 1:Membuat Aplikasi UWP
- Buka Visual Studio 2017/2015
- Pilih Aplikasi Kosong (Windows Universal)
- Masukkan nama proyek “DigitalLightSensorApp”
Foto ada di sini!
Langkah 2: Buka MainPage.xaml.cs dan let's code
Hapus semua penggunaan dan hanya sertakan yang berikut
menggunakan Windows.UI.Xaml.Controls;
menggunakan Windows.Devices.Gpio;
Deklarasikan variabel anggota pin GPIO sensor dan LED
GpioPin _sensorPin pribadi;
gpioPin _ledPin pribadi;;
Deklarasikan variabel nomor pin GPIO
private int _sensorGpioPinNumber =5;
private int _ledGpioPinNumber =12;
Buat metode inisialisasi
private void Initialize()
{
// Dapatkan Pengontrol Gpio default
var gpioController =GpioController.GetDefault();
//Buka Pin Gpio sensor dan atur mode ke masukan
_sensorPin =gpioController.OpenPin(_sensorGpioPinNumber);
_sensorPin.SetDriveMode(GpioPinDriveMode.Input);
_sensorPin.ValueChanged +=HandleSensorLightDetectionChange;;
// Buka Pin Gpio LED dan atur mode ke output
_ledPin =gpioController.OpenPin(_ledGpioPinNumber);
_ledPin.SetDriveMode(GpioPinDriveMode.Output);
handleLightStatus( );
}
Panggil metode handleLightStaus di acara HandleSensorLightDetectionChange
private void HandleSensorLightDetectionChange(Pengirim GpioPin,
GpioPinValueChangedEventArgs args)
{
handleLightStatus();
}
Buat metode handleLightStatus
private void handleLightStatus()
{
// jika tidak ada sensor cahaya yang mendeteksi cahaya, maka matikan LED
if (_sensorPin.Read() ==GpioPinValue.High)
{
//Matikan LED
_ledPin.Write(GpioPinValue.Low);
}
else
{
//Nyalakan LED
_ledPin.Write(GpioPinValue.High);
}
}
Saya menemukan bahwa nilai “Tinggi” yang dikembalikan dari pin Gpio sensor menunjukkan bahwa tidak ada cahaya yang terdeteksi dan “Rendah” menunjukkan bahwa cahaya terdeteksi.
Kode lengkapnya dapat ditemukan di bawah:
menggunakan Windows.UI.Xaml.Controls;
menggunakan Windows.Devices.Gpio;
namespace DigitalLightSensorApp
{
kelas parsial tertutup publik Halaman Utama :Halaman
{
gpioPin _sensorPin pribadi;
gpioPin _ledPin pribadi;
private int _sensorGpioPinNumber =5;
private int _ledGpioPinNumber =12;
Halaman Utama publik()
{
this.InitializeComponent();
}
private void Initialize()
{
// Dapatkan Pengontrol Gpio default
var gpioController =GpioController.GetDefault();
//Buka Pin Gpio sensor dan atur mode ke input
_sensorPin =gpioController.OpenPin(_sensorGpioPinNumber);
_sensorPin.SetDriveMode(GpioPinDriveMode.Input);
_sensorPin.ValueChanged + =HandleSensorLightDetectionChange;;
// Buka Pin Gpio LED dan atur mode ke output
_ledPin =gpioController.OpenPin(_ledGpioPinNumber);
_ledPin.SetDriveMode(GpioPinDriveMode.Output);
handleLightStatus( );
}
private void HandleSensorLightDetectionChange(Pengirim GpioPin, GpioPinValueChangedEventArgs args)
{
handleLightStatus();
}
private void handleLightStatus()
{
// jika tidak ada sensor cahaya yang mendeteksi cahaya, maka matikan LED
if (_sensorPin.Read() ==GpioPinValue.High)
{
//Turn matikan LED
_ledPin.Write(GpioPinValue.Low);
}
else
{
//Nyalakan LED
_ledPin.Write(GpioPinValue .Tinggi);
}
}
}
}
Baca Selengkapnya Detail:Sensor Cahaya Digital