static void Main(string[] args) { Console.WriteLine("\nPCA9685 GPIO Output Test\n"); if (args.Length != 2) { Console.WriteLine("Usage: test_pca9685_gpio <bus> <addr>\n"); Environment.Exit(1); } // Create GPIO pin object IO.Interfaces.I2C.Bus bus = new IO.Objects.libsimpleio.I2C.Bus(args[0]); IO.Devices.PCA9685.Device dev = new IO.Devices.PCA9685.Device(bus, int.Parse(args[1]), 5000); IO.Interfaces.GPIO.Pin GPIO0 = new IO.Devices.PCA9685.GPIO.Pin(dev, 0, false); // Toggle the GPIO output Console.WriteLine("Press CONTROL-C to exit"); for (;;) { GPIO0.state = !GPIO0.state; } }
static void Main(string[] args) { Console.WriteLine("\nHDC1080 Temperature/Humidity Sensor Test\n"); if (args.Length != 1) { Console.WriteLine("Usage: test_hdc1080 <bus>\n"); Environment.Exit(1); } IO.Interfaces.I2C.Bus bus = new IO.Objects.libsimpleio.I2C.Bus(args[0]); IO.Devices.HDC1080.Device dev = new IO.Devices.HDC1080.Device(bus); Console.Write("Manufacturer ID: 0x" + dev.ManufacturerID.ToString("X4")); Console.Write(" "); Console.WriteLine("Device ID: 0x" + dev.DeviceID.ToString("X4")); Console.WriteLine(); for (;;) { Console.Write("Temperature: " + dev.Celsius.ToString("F1")); Console.Write(" "); Console.Write("Humidity: " + dev.Humidity.ToString("F1")); Console.WriteLine(); System.Threading.Thread.Sleep(1000); } }
/// <summary> /// Constructor for a single Expand 2 click. /// </summary> /// <param name="socknum">mikroBUS socket number.</param> /// <param name="addr">I<sup>2</sup>C slave address.</param> public Board(int socknum, int addr = DefaultAddress) { // Create a mikroBUS socket object IO.Objects.libsimpleio.mikroBUS.Socket S = new IO.Objects.libsimpleio.mikroBUS.Socket(socknum); // Configure hardware reset GPIO pin myrst = new IO.Objects.libsimpleio.GPIO.Pin(S.RST, IO.Interfaces.GPIO.Direction.Output, true); // Issue hardware reset Reset(); // Configure I2C bus IO.Interfaces.I2C.Bus bus; if (IO.Objects.libsimpleio.mikroBUS.Shield.I2CBus is null) { bus = new IO.Objects.libsimpleio.I2C.Bus(S.I2CBus); } else { bus = IO.Objects.libsimpleio.mikroBUS.Shield.I2CBus; } // Configure the MCP23017 mydev = new IO.Devices.MCP23017.Device(bus, addr); }
static void Main(string[] args) { Console.WriteLine("\nGrove Temperature and Humidity Sensor (TH02) Test\n"); if (args.Length != 1) { Console.WriteLine("Usage: test_grove_temperature_humidity <bus>\n"); Environment.Exit(1); } IO.Interfaces.I2C.Bus bus = new IO.Objects.libsimpleio.I2C.Bus(args[0]); IO.Devices.Grove.Temperature_Humidity.Device dev = new IO.Devices.Grove.Temperature_Humidity.Device(bus); Console.WriteLine("Device ID: 0x" + dev.DeviceID.ToString("X2")); Console.WriteLine(); for (;;) { Console.Write("Temperature: " + dev.Celsius.ToString("F1")); Console.Write(" "); Console.Write("Humidity: " + dev.Humidity.ToString("F1")); Console.WriteLine(); System.Threading.Thread.Sleep(1000); } }
static void Main(string[] args) { Console.WriteLine("\nGrove I2C A/D Converter Test\n"); if (args.Length != 1) { Console.WriteLine("Usage: test_grove_i2c_adc <bus>\n"); Environment.Exit(1); } IO.Interfaces.I2C.Bus bus = new IO.Objects.libsimpleio.I2C.Bus(args[0]); IO.Interfaces.ADC.Sample adc = new IO.Devices.ADC121C021.Sample(bus, 0x50); IO.Interfaces.ADC.Input inp = new IO.Interfaces.ADC.Input(adc, 3.0, 0.5); Console.WriteLine("Resolution: " + adc.resolution.ToString() + " bits\n"); for (;;) { Console.WriteLine("Voltage => " + inp.voltage.ToString("F2")); Thread.Sleep(1000); } }
/// <summary> /// Constructor for a single PWM click. /// </summary> /// <param name="socknum">mikroBUS socket number.</param> /// <param name="freq">PWM pulse frequency in Hz.</param> /// <param name="addr">I<sup>2</sup>C slave address.</param> public Board(int socknum, int freq, int addr = DefaultAddress) { IO.Objects.libsimpleio.mikroBUS.Socket S = new IO.Objects.libsimpleio.mikroBUS.Socket(socknum); IO.Interfaces.I2C.Bus bus; if (IO.Objects.libsimpleio.mikroBUS.Shield.I2CBus is null) { bus = new IO.Objects.libsimpleio.I2C.Bus(S.I2CBus); } else { bus = IO.Objects.libsimpleio.mikroBUS.Shield.I2CBus; } mydev = new IO.Devices.PCA9685.Device(bus, addr, freq); }
static void Main(string[] args) { Console.WriteLine("\nPCA9685 PWM Output Test\n"); if (args.Length != 2) { Console.WriteLine("Usage: test_grove_i2c_adc <bus> <addr>\n"); Environment.Exit(1); } // Create PWM output object IO.Interfaces.I2C.Bus bus = new IO.Objects.libsimpleio.I2C.Bus(args[0]); IO.Devices.PCA9685.Device dev = new IO.Devices.PCA9685.Device(bus, int.Parse(args[1]), 1000); IO.Interfaces.PWM.Output PWM0 = new IO.Devices.PCA9685.PWM.Output(dev, 0); // Sweep PWM pulse width back and forth Console.WriteLine("Press CONTROL-C to exit"); for (;;) { int n; for (n = 0; n < 100; n++) { PWM0.dutycycle = n; System.Threading.Thread.Sleep(50); } for (n = 100; n >= 0; n--) { PWM0.dutycycle = n; System.Threading.Thread.Sleep(50); } } }
static void Main(string[] args) { Console.WriteLine("\nPCA9685 Servo Output Test\n"); if (args.Length != 2) { Console.WriteLine("Usage: test_pca9685_pwm <bus> <addr>\n"); Environment.Exit(1); } // Create servo output object IO.Interfaces.I2C.Bus bus = new IO.Objects.libsimpleio.I2C.Bus(args[0]); IO.Devices.PCA9685.Device dev = new IO.Devices.PCA9685.Device(bus, int.Parse(args[1]), 50); IO.Interfaces.Servo.Output Servo0 = new IO.Devices.PCA9685.Servo.Output(dev, 0); // Sweep servo position back and forth Console.WriteLine("Press CONTROL-C to exit"); for (;;) { int n; for (n = -100; n < 100; n++) { Servo0.position = n / 100.0; System.Threading.Thread.Sleep(50); } for (n = 100; n >= -100; n--) { Servo0.position = n / 100.0; System.Threading.Thread.Sleep(50); } } }
static void Main(string[] args) { Console.WriteLine("\nGrove ADC Test\n"); if (args.Length != 1) { Console.WriteLine("Usage: test_grove_adc <bus>\n"); Environment.Exit(1); } IO.Interfaces.I2C.Bus bus = new IO.Objects.libsimpleio.I2C.Bus(args[0]); IO.Devices.Grove.ADC.Device ain = new IO.Devices.Grove.ADC.Device(bus); for (;;) { Console.WriteLine("Voltage => " + ain.voltage.ToString("F2")); System.Threading.Thread.Sleep(1000); } }
static void Main(string[] args) { Console.WriteLine("\nPCA8574 GPIO Port Toggle Test\n"); if (args.Length != 2) { Console.WriteLine("Usage: test_pca8574_device <bus> <addr>\n"); Environment.Exit(1); } IO.Interfaces.I2C.Bus bus = new IO.Objects.libsimpleio.I2C.Bus(args[0]); IO.Devices.PCA8574.Device dev = new IO.Devices.PCA8574.Device(bus, int.Parse(args[1])); for (;;) { dev.Write(0x55); dev.Write(0xAA); } }
static void Main(string[] args) { Console.WriteLine("\nPCA9534 GPIO Pin Toggle Test\n"); if (args.Length != 2) { Console.WriteLine("Usage: test_pca9534_gpio <bus> <addr>\n"); Environment.Exit(1); } IO.Interfaces.I2C.Bus bus = new IO.Objects.libsimpleio.I2C.Bus(args[0]); IO.Devices.PCA9534.Device dev = new IO.Devices.PCA9534.Device(bus, int.Parse(args[1])); IO.Interfaces.GPIO.Pin GPIO0 = new IO.Devices.PCA9534.GPIO.Pin(dev, 0, IO.Interfaces.GPIO.Direction.Output, false); for (;;) { GPIO0.state = !GPIO0.state; } }
/// <summary> /// Constructor for a single ADAC click. /// </summary> /// <param name="socknum">mikroBUS socket number.</param> /// <param name="addr">I<sup>2</sup>C slave address.</param> public Board(int socknum, int addr = DefaultAddress) { IO.Objects.libsimpleio.mikroBUS.Socket S = new IO.Objects.libsimpleio.mikroBUS.Socket(socknum); // Configure hardware reset GPIO pin myrst = new IO.Objects.libsimpleio.GPIO.Pin(S.RST, IO.Interfaces.GPIO.Direction.Output, true); // Issue hardware reset Reset(); // Configure I2C bus IO.Interfaces.I2C.Bus bus; if (IO.Objects.libsimpleio.mikroBUS.Shield.I2CBus is null) { bus = new IO.Objects.libsimpleio.I2C.Bus(S.I2CBus); } else { bus = IO.Objects.libsimpleio.mikroBUS.Shield.I2CBus; } // Configure AD5593R mydev = new IO.Devices.AD5593R.Device(bus, addr); // The ADAC click is wired for 0-5.0V on both ADC and DAC mydev.ADC_Reference = IO.Devices.AD5593R.ReferenceMode.Internalx2; mydev.DAC_Reference = IO.Devices.AD5593R.ReferenceMode.Internalx2; }