public void Cleanup() { RedPin?.Dispose(); GreenPin?.Dispose(); BluePin?.Dispose(); SoundPin?.Dispose(); }
private void OnLoaded(object sender, RoutedEventArgs routedEventArgs) { var controller = GpioController.GetDefault(); if (null != controller) { LedPin = controller.OpenPin(5); LedPin.SetDriveMode(GpioPinDriveMode.Output); LedPin.Write(GpioPinValue.Low); // set light to off at start up SoundPin = controller.OpenPin(6); SoundPin.SetDriveMode(GpioPinDriveMode.Input); SoundPin.ValueChanged += (pin, args) => { var pinValue = SoundPin.Read(); if (pinValue == GpioPinValue.Low) { Debug.WriteLine("Sound Detected!"); LedPin.Write(IsLightOn ? GpioPinValue.Low : GpioPinValue.High); IsLightOn = !IsLightOn; } }; } }
public async Task Blink(BlinkRate rate) { if (gpioCtrl != null) { var pin = GetPin(rate); pin.Write(GpioPinValue.High); SoundPin.Write(GpioPinValue.High); await Task.Delay(200); pin.Write(GpioPinValue.Low); SoundPin.Write(GpioPinValue.Low); } }