Esempio n. 1
0
        private static void PWMFanRealWorldExample()
        {
            Console.WriteLine("Starting PWM Controller - Realworld Demo");
            var pwmController  = new PwmController();
            var gpioController = new GpioController();

            try
            {
                var chip     = 0;  //On the Rapsberry Pi this will be GPIO 18
                var channel  = 0;  //On the Rapsberry Pi this will be GPIO 18
                var hertz    = 25; //12v PWM PC Fans run on a 25 hertz frequency
                int?tachoPin = 23; //A normal GPIO pin connected to the tachometer pin on the fan
                using (var fan = new PwmFan(gpioController, pwmController, chip, channel, hertz, tachoPin))
                {
                    fan.On();
                    Task.Delay(new TimeSpan(0, 0, 0, 2)).Wait(); //Wait for a bit for inital fan start up.
                    var dutyCycle = 100;
                    while (dutyCycle >= 0)
                    {
                        fan.SetSpeed(dutyCycle);
                        Task.Delay(new TimeSpan(0, 0, 0, 2)).Wait(); //2 seconds
                        Console.WriteLine($"DutyCycle: {dutyCycle}, RPM: {fan.RPM}");
                        dutyCycle = dutyCycle - 10;
                    }

                    fan.Off();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error: {ex}");
            }
            finally
            {
                pwmController.Dispose();
                gpioController.Dispose();
            }
            Console.WriteLine("Finished - Real World Demo");
        }
Esempio n. 2
0
 public override void Dispose()
 {
     _pwm?.Dispose();
     _pwm = null;
     base.Dispose();
 }
Esempio n. 3
0
 /// <summary>
 /// Dispose Buzzer.
 /// </summary>
 public void Dispose()
 {
     _pwmController.Dispose();
 }