Цифровой датчик освещенности
Базовое приложение Windows 10 IoT, которое включается светодиод, основанный на показаниях цифрового датчика освещенности.
История
Мне потребовалось некоторое время, чтобы понять, что считывание статуса цифрового датчика освещенности несложно и просто зависит от чтения значения GPIO!
Идея проекта очень проста:просто включить светодиод, когда датчик обнаруживает свет, и наоборот.
Демонстрация результата проекта
Итак, давайте продвинемся вперед и проверим схему подключения ниже, и, кстати, я не нашел схемы цифрового датчика освещенности, поэтому сохранил ее в виде текста !!!!
Настройка доски
Схема подключения
- Цифровой датчик освещенности:GPIO № 5
- Красный светодиод:GPIO № 12
Вы также должны изменить номера контактов, но убедитесь, что они правильно отражены в коде UWP.
Часть, которая мне нравится, кодирование!
В этом проекте есть только страница, содержащая код C #, и на этот раз пользовательский интерфейс не требуется.
Шаг 1. Создание приложения UWP
- Откройте Visual Studio 2017/2015
- Выберите пустое приложение (универсальная версия Windows).
- Введите название проекта «DigitalLightSensorApp».
Здесь фото!
Шаг 2: Откройте MainPage.xaml.cs и давайте код
Удалите все использование и включите только следующее
используя Windows.UI.Xaml.Controls;
используя Windows.Devices.Gpio;
Объявите переменные-члены датчика и светодиодного вывода GPIO
частный GpioPin _sensorPin;
частный GpioPin _ledPin;;
Объявите переменные номера контактов GPIO
частный int _sensorGpioPinNumber =5;
частный int _ledGpioPinNumber =12;
Создайте метод инициализации
private void Initialize ()
{
// Получить контроллер Gpio по умолчанию
var gpioController =GpioController.GetDefault ();
// Открыть датчик Gpio Pin и установить режим input
_sensorPin =gpioController.OpenPin (_sensorGpioPinNumber);
_sensorPin.SetDriveMode (GpioPinDriveMode.Input);
_sensorPin.ValueChanged + =HandleSensorLightDetectionC;
// Откройте светодиод Gpio Pin и установите режим вывода
_ledPin =gpioController.OpenPin (_ledGpioPinNumber);
_ledPin.SetDriveMode (GpioPinDriveMode.Output);
handleLightStatus ( );
}
Вызов метода handleLightStaus в событии HandleSensorLightDetectionChange
private void HandleSensorLightDetectionChange (отправитель GpioPin,
аргументы GpioPinValueChangedEventArgs)
{
handleLightStatus ();
}
Создайте метод handleLightStatus
private void handleLightStatus ()
{
// если световой датчик не обнаружил свет, то выключите светодиод
if (_sensorPin.Read () ==GpioPinValue.High)
{
// Выключаем светодиод
_ledPin.Write (GpioPinValue.Low);
}
else
{
// Включаем светодиод
_ledPin.Write(GpioPinValue.High);
}
}
Я обнаружил, что значение «High», возвращаемое датчиком Gpio Pin, указывает на отсутствие обнаруженного света, а «Low» указывает на обнаружение света.
Полный код можно найти ниже:
using Windows.UI.Xaml.Controls;
using Windows.Devices.Gpio;
пространство имен DigitalLightSensorApp
{
общедоступный закрытый частичный класс MainPage:Page
{
частный GpioPin _sensorPin;
частный GpioPin _ledPin;
частный int _sensorGpioPinNumber =5;
частный int _ledGpioPinNumber =12;
общедоступный MainPage ()
{
this.InitializeComponent ();
}
private void Initialize ()
{
// Получить контроллер Gpio по умолчанию
var gpioController =GpioController.GetDefault ();
// Открываем датчик Gpio Pin и устанавливаем режим ввода
_sensorPin =gpioController.OpenPin (_sensorGpioPinNumber);
_sensorPin.SetDriveMode (GpioPinDriveMode.Input);
_sensorPin.ValueC =HandleSensorLightDetectionChange;;
// Откройте светодиод Gpio Pin и установите режим вывода
_ledPin =gpioController.OpenPin (_ledGpioPinNumber);
_ledPin.SetDriveMode (GpioPinDriveMode.Output);
handleLightStatus ( );
}
private void HandleSensorLightDetectionChange (отправитель GpioPin, аргументы GpioPinValueChangedEventArgs)
{
handleLightStatus ();
}
private void handleLightStatus ()
{
// если световой датчик не обнаружил свет, то выключаем светодиод
if (_sensorPin.Read () ==GpioPinValue.High)
{
// Включаем выключить светодиод
_ledPin.Write (GpioPinValue.Low);
}
else
{
// Включить светодиод
_ledPin.Write (GpioPinValue .High);
}
}
}
}
Подробнее:цифровой датчик освещенности
Производственный процесс
- Основы цифровых магнитных датчиков
- 1-проводный датчик температуры DS1820 на Raspberry Pi (напрямую через GPIO)
- Ультразвуковой датчик (HC-SR04) + Raspberry Pi
- Датчик отслеживания линии с RPi
- Цифровой датчик барометрического давления BMP180 I2C
- Цифровой датчик термометра Raspberry Pi 1-Wire (DS18B20)
- Цифровой датчик Холла Raspberry Pi в JAVA
- Датчик температуры и освещенности Raspberry Pi
- Тест датчика DS18B20
- Солнечный свет подъездной дороги к узлу беспроводного датчика MSP430