Exemplo n.º 1
0
        /// <summary>
        /// Main entry point
        /// </summary>
        /// <param name="args">unused</param>
        public static void Main(string[] args)
        {
            Console.WriteLine("Hello GrovePi!");
            PinValue relay = PinValue.Low;
            I2cConnectionSettings i2CConnectionSettings = new I2cConnectionSettings(1, GrovePi.DefaultI2cAddress);

            _grovePi = new GrovePi(I2cDevice.Create(i2CConnectionSettings));
            Console.WriteLine($"Manufacturer :{_grovePi.GrovePiInfo.Manufacturer}");
            Console.WriteLine($"Board: {_grovePi.GrovePiInfo.Board}");
            Console.WriteLine($"Firmware version: {_grovePi.GrovePiInfo.SoftwareVersion}");
            // Specific example to show how to read directly a pin without a high level class
            _grovePi.PinMode(GrovePort.AnalogPin0, PinMode.Input);
            _grovePi.PinMode(GrovePort.DigitalPin2, PinMode.Output);
            _grovePi.PinMode(GrovePort.DigitalPin3, PinMode.Output);
            _grovePi.PinMode(GrovePort.DigitalPin4, PinMode.Input);
            // 2 high level classes
            UltrasonicSensor ultrasonic = new UltrasonicSensor(_grovePi, GrovePort.DigitalPin6);
            DhtSensor        dhtSensor  = new DhtSensor(_grovePi, GrovePort.DigitalPin7, DhtType.Dht11);
            int poten = 0;

            while (!Console.KeyAvailable)
            {
                Console.Clear();
                poten = _grovePi.AnalogRead(GrovePort.AnalogPin0);
                Console.WriteLine($"Potentiometer: {poten}");
                relay = (relay == PinValue.Low) ? PinValue.High : PinValue.Low;
                _grovePi.DigitalWrite(GrovePort.DigitalPin2, relay);
                Console.WriteLine($"Relay: {relay}");
                _grovePi.AnalogWrite(GrovePort.DigitalPin3, (byte)(poten * 100 / 1023));
                Console.WriteLine($"Button: {_grovePi.DigitalRead(GrovePort.DigitalPin4)}");
                Console.WriteLine($"Ultrasonic: {ultrasonic}");
                dhtSensor.Read();
                Console.WriteLine($"{dhtSensor.DhtType}: {dhtSensor}");
                Thread.Sleep(2000);
            }
        }