Esempio n. 1
0
        public byte Read()
        {
            gpio.SetPinMode(sda, PinMode.Input);
            int      i    = 0;
            byte     temp = 0;
            PinValue ack;

            for (i = 0; i < 8; i++)
            {
                temp = (byte)(temp * 2);
                gpio.Write(scl, PinValue.Low);
                System.Threading.Thread.Sleep(I2C_IDLE);
                gpio.Write(scl, PinValue.High);
                System.Threading.Thread.Sleep(I2C_IDLE);
                PinValue data = gpio.Read(sda);
                temp += data.Equals(PinValue.High) ? (byte)0x01 : (byte)0x00;
                System.Threading.Thread.Sleep(I2C_IDLE);
                gpio.Write(scl, PinValue.Low);
                System.Threading.Thread.Sleep(I2C_IDLE);
            }
            gpio.Write(scl, PinValue.Low);
            System.Threading.Thread.Sleep(I2C_IDLE);
            gpio.Write(scl, PinValue.High);
            System.Threading.Thread.Sleep(I2C_IDLE);

            gpio.SetPinMode(sda, PinMode.Input);
            ack = gpio.Read(sda);
            //Console.WriteLine(ack.ToString());

            gpio.Write(scl, PinValue.Low);

            return(temp);
        }
Esempio n. 2
0
        static void BlinkLight()
        {
            controller.OpenPin(LEDPin, PinMode.Output);
            PinValue pinState = PinValue.High;

            while (!ct.IsCancellationRequested)
            {
                controller.Write(LEDPin, pinState);
                pinState = pinState.Equals(PinValue.High) ? PinValue.Low : PinValue.High;
                Thread.Sleep(1000);
            }
        }