Ejemplo n.º 1
0
        private static void Lcd(GpioDriver driver)
        {
            const int registerSelectPinNumber = 0;
            const int enablePinNumber         = 5;

            int[] dataPinNumbers = { 6, 16, 20, 21 };

            using (var controller = new GpioController(driver))
            {
                GpioPin   registerSelectPin = controller.OpenPin(registerSelectPinNumber);
                GpioPin   enablePin         = controller.OpenPin(enablePinNumber);
                GpioPin[] dataPins          = controller.OpenPins(dataPinNumbers);

                var lcd = new LcdController(registerSelectPin, enablePin, dataPins);
                lcd.Begin(16, 2);
                lcd.Print("hello, world!");

                Stopwatch watch = Stopwatch.StartNew();

                while (watch.Elapsed.TotalSeconds < 15)
                {
                    lcd.SetCursor(0, 1);
                    lcd.Print($"{watch.Elapsed.TotalSeconds:0.00} seconds");
                }
            }
        }
Ejemplo n.º 2
0
            public I2cControllerSoftwareProvider(GpioController controller, int sdaPinNumber, int sclPinNumber, bool usePullups)
            {
                this.usePullups = usePullups;

                var pins = controller.OpenPins(sdaPinNumber, sclPinNumber);

                this.sda = pins[0];
                this.scl = pins[1];
            }
Ejemplo n.º 3
0
            public SpiControllerSoftwareProvider(GpioController gpioController, int mosiPinNumber, int misoPinNumber, int sckPinNumber)
            {
                this.chipSelects    = new Hashtable();
                this.gpioController = gpioController;

                var pins = gpioController.OpenPins(mosiPinNumber, misoPinNumber, sckPinNumber);

                this.mosi = pins[0];
                this.miso = pins[1];
                this.sck  = pins[2];

                this.miso.SetDriveMode(GpioPinDriveMode.Input);

                this.mosi.Write(GpioPinValue.Low);
                this.mosi.SetDriveMode(GpioPinDriveMode.Output);

                this.sck.Write(this.clockIdleState);
                this.sck.SetDriveMode(GpioPinDriveMode.Output);
            }
Ejemplo n.º 4
0
        internal static void Lcd(string message)
        {
            const int registerSelectPinNumber = 0;
            const int enablePinNumber         = 5;

            int[] dataPinNumbers = { 6, 16, 20, 21 };

            using (var driver = new UnixDriver())
                using (var controller = new GpioController(driver))
                {
                    GpioPin   registerSelectPin = controller.OpenPin(registerSelectPinNumber);
                    GpioPin   enablePin         = controller.OpenPin(enablePinNumber);
                    GpioPin[] dataPins          = controller.OpenPins(dataPinNumbers);

                    var lcd = new LcdController(registerSelectPin, enablePin, dataPins);
                    lcd.Begin(16, 2);
                    lcd.Print(message);
                }
        }
Ejemplo n.º 5
0
        private static void I2c_Color_Lcd(GpioDriver driver)
        {
            const int registerSelectPinNumber = 0;
            const int enablePinNumber         = 5;

            int[] dataPinNumbers = { 6, 16, 20, 21 };

            using (var controller = new GpioController(driver))
            {
                GpioPin   registerSelectPin = controller.OpenPin(registerSelectPinNumber);
                GpioPin   enablePin         = controller.OpenPin(enablePinNumber);
                GpioPin[] dataPins          = controller.OpenPins(dataPinNumbers);

                var lcd = new LcdController(registerSelectPin, enablePin, dataPins);
                lcd.Begin(16, 2);

                var settings = new I2cConnectionSettings(s_i2cBusId, RgbColorSensor.DefaultI2cAddress);
                var sensor   = new RgbColorSensor(settings);
                Color_Lcd(lcd, sensor);
            }
        }
Ejemplo n.º 6
0
        private static void I2c_Pressure_Lcd(GpioDriver driver)
        {
            const int registerSelectPinNumber = 0;
            const int enablePinNumber         = 5;

            int[] dataPinNumbers = { 6, 16, 20, 21 };

            using (var controller = new GpioController(driver, PinNumberingScheme.Bcm))
            {
                Pin   registerSelectPin = controller.OpenPin(registerSelectPinNumber);
                Pin   enablePin         = controller.OpenPin(enablePinNumber);
                Pin[] dataPins          = controller.OpenPins(dataPinNumbers);

                var lcd = new LcdController(registerSelectPin, enablePin, dataPins);
                lcd.Begin(16, 2);

                var settings = new I2cConnectionSettings(1, PressureTemperatureHumiditySensor.DefaultI2cAddress);
                var sensor   = new PressureTemperatureHumiditySensor(settings);
                Pressure_Lcd(lcd, sensor);
            }
        }
Ejemplo n.º 7
0
        private static void Spi_Pressure_Lcd(GpioDriver driver)
        {
            const int registerSelectPinNumber = 0;
            const int enablePinNumber         = 5;
            const int chipSelectLinePinNumber = 8;

            int[] dataPinNumbers = { 6, 16, 20, 21 };

            using (var controller = new GpioController(driver))
            {
                GpioPin   registerSelectPin = controller.OpenPin(registerSelectPinNumber);
                GpioPin   enablePin         = controller.OpenPin(enablePinNumber);
                GpioPin[] dataPins          = controller.OpenPins(dataPinNumbers);

                var lcd = new LcdController(registerSelectPin, enablePin, dataPins);
                lcd.Begin(16, 2);

                GpioPin chipSelectLinePin = controller.OpenPin(chipSelectLinePinNumber);

                var settings = new SpiConnectionSettings(s_spiBusId, 0);
                var sensor   = new PressureTemperatureHumiditySensor(chipSelectLinePin, settings);
                Pressure_Lcd(lcd, sensor);
            }
        }