Example #1
0
        public void SetPinValue(BcmIo pin, PinValue value)
        {
            var gpioPin = GetGpioPinByBcmNumber(pin);

            if (gpioPin.PinMode == GpioPinDriveMode.Input)
            {
                gpioPin.PinMode = GpioPinDriveMode.Output;
            }

            gpioPin.Write(value == PinValue.High ? true : false);
        }
Example #2
0
        private GpioPin GetGpioPinByBcmNumber(BcmIo bcmPinNumber)
        {
            var pinNumber = Enum.Parse(typeof(BcmIo), bcmPinNumber.ToString());

            switch (pinNumber)
            {
            // case BcmIo.Pin1: return SCL.0 IN
            case BcmIo.Pin2: return(Pi.Gpio.Pin08);

            // case BcmIo.Pin3: return SDA.1 IN
            case BcmIo.Pin4: return(Pi.Gpio.Pin07);

            case BcmIo.Pin5: return(Pi.Gpio.Pin21);

            case BcmIo.Pin6: return(Pi.Gpio.Pin22);

            // case BcmIo.Pin7: return CE1 IN
            // case BcmIo.Pin8: return CE0 OUT
            // case BcmIo.Pin9: return MOS0 IN;
            // case BcmIo.Pin10: return MOSI OUT;
            // case BcmIo.Pin11: return SCLK IN;
            case BcmIo.Pin12: return(Pi.Gpio.Pin26);

            case BcmIo.Pin13: return(Pi.Gpio.Pin23);

            // case BcmIo.Pin14: return TxD ALT0
            // case BcmIo.Pin15: return RxD ALT0;
            case BcmIo.Pin16: return(Pi.Gpio.Pin27);

            case BcmIo.Pin17: return(Pi.Gpio.Pin00);

            case BcmIo.Pin18: return(Pi.Gpio.Pin01);

            case BcmIo.Pin19: return(Pi.Gpio.Pin24);

            case BcmIo.Pin20: return(Pi.Gpio.Pin28);

            case BcmIo.Pin21: return(Pi.Gpio.Pin29);

            case BcmIo.Pin22: return(Pi.Gpio.Pin03);

            case BcmIo.Pin23: return(Pi.Gpio.Pin04);

            case BcmIo.Pin24: return(Pi.Gpio.Pin05);

            case BcmIo.Pin25: return(Pi.Gpio.Pin04);

            case BcmIo.Pin26: return(Pi.Gpio.Pin25);

            default: throw new ApplicationException("Incorect BCM pin number");
            }
        }
Example #3
0
        public void TestBlink(BcmIo gpioNumber, int count)
        {
            while (count-- > 0)
            {
                var gpioPin = GetPin(gpioNumber);
                gpioPin.PinMode = GpioPinDriveMode.Output;

                var value = count % 2 == 0;
                Console.WriteLine($"Setting pin {gpioPin.BcmPinNumber} to {value}!");
                gpioPin.Write(value ? GpioPinValue.High : GpioPinValue.Low);

                System.Threading.Thread.Sleep(700);
            }
        }
Example #4
0
 public PinValue GetPinValue(BcmIo pin)
 {
     return(GetGpioPinByBcmNumber(pin).Read() ? PinValue.High : PinValue.Low);
 }