/// <summary> /// Initializes a new instance of the <see cref="Button"/> class. /// </summary> /// <param name="gpioPin">The gpio pin.</param> /// <param name="pullMode">The input pull mode.</param> public Button(IGpioPin gpioPin, GpioPinResistorPullMode pullMode = GpioPinResistorPullMode.PullDown) { _gpioPin = gpioPin; _gpioPin.InputPullMode = pullMode; _gpioPin.PinMode = GpioPinDriveMode.Input; _gpioPin.RegisterInterruptCallback(EdgeDetection.FallingAndRisingEdge, HandleInterrupt); }
public static void Init() { _device75 = new I2C(0x75); if (I2C.I2CGlobalError) { return; } _device75.Write(6, 0xFBF8); //0x0100 _device75.Read(0); _interputPin = Pi.Gpio[30]; _interputPin.PinMode = GpioPinDriveMode.Input; _interputPin.RegisterInterruptCallback(EdgeDetection.FallingEdge, ButtonPressCallback); }
public Task StartAsync(CancellationToken stoppingToken) { logger.Log(LogLevel.Information, "Started monitor"); var libraryItem = new LibraryItem(-1, Path.Combine(AppDirectory, StartupFileName), bassActor); if (playerActor.PlaybackState == PlaybackState.Stopped) { playerActor.Play(libraryItem); } Pi.Init <BootstrapWiringPi>(); pin = Pi.Gpio[BcmPin.Gpio03]; pin.PinMode = GpioPinDriveMode.Input; pin.RegisterInterruptCallback(EdgeDetection.FallingEdge, ISRCallback); return(Task.CompletedTask); }
/// <summary> /// Initializes a new instance of the <see cref="LogicProbe"/> class. /// </summary> /// <param name="inputPin">The input pin.</param> public LogicProbe(IGpioPin inputPin) { _inputPin = inputPin; _inputPin.PinMode = GpioPinDriveMode.Input; _inputPin.InputPullMode = GpioPinResistorPullMode.PullUp; _inputPin.RegisterInterruptCallback(EdgeDetection.FallingAndRisingEdge, () => { if (_timer.IsRunning == false) { return; } var value = _inputPin.Read(); var elapsed = _timer.ElapsedMicroseconds; var data = new ProbeDataEventArgs(elapsed, value); ProbeDataAvailable?.Invoke(this, data); }); }