- I für die einzelnen PIR-Sensor verwendet, um die Bewegung des Objekts zum Erfassen ich das GPIOValueChagendEvent geschrieben, aber dieses Ereignis wird nur ausgelöst, wenn der PIR-Bewegungsmelder Wert geändert.
Das ValueChanged Ereignis der Allzweck-I/O (GPIO) tritt auf, wenn der Wert des Stiftes ändert, entweder wegen eines äußeren Reizes, wenn der Stift als ein Eingang konfiguriert ist, oder wenn ein Wert ist auf den Pin geschrieben, wenn der Pin als Ausgang konfiguriert ist.
- Aber wenn ich zwei PIR-Sensoren ist es möglich, die ein mehr GPIOValueChangedEvent zu schreiben. Wenn ja, können Sie das näher erläutern, wie der Beispielcode mit C#
Ja zu schreiben, ist es möglich, das zu tun. Bitte beachten Sie den folgenden Code mit PirSensor Class.
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
var pirS1 = new PirSensor(17, PirSensor.SensorType.ActiveHigh);
pirS1.motionDetected += new EventHandler<Windows.Devices.Gpio.GpioPinValueChangedEventArgs>(OnPirSensor1MotionDetected);
var pirS2 = new PirSensor(27, PirSensor.SensorType.ActiveHigh);
pirS2.motionDetected += new EventHandler<Windows.Devices.Gpio.GpioPinValueChangedEventArgs>(OnPirSensor2MotionDetected);
}
private async void OnPirSensor1MotionDetected(object sender, Windows.Devices.Gpio.GpioPinValueChangedEventArgs earg)
{
await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,
() =>
{
// Your UI update code goes here!
pirSensorVal1.Text = earg.Edge.ToString();
});
}
private async void OnPirSensor2MotionDetected(object sender, Windows.Devices.Gpio.GpioPinValueChangedEventArgs earg)
{
await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,
() =>
{
// Your UI update code goes here!
pirSensorVal2.Text = earg.Edge.ToString();
});
}
- Angenommen, wenn zwei PIR-Sensoren die Bewegung des Objekts zur gleichen Zeit erkannt werden dann, was passiert.
Wenn die beiden PIR-Sensoren die Bewegung zu erkennen, motionDetected das Ereignis von werden für einander aufgerufen werden.