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"); }
public override void Dispose() { _pwm?.Dispose(); _pwm = null; base.Dispose(); }
/// <summary> /// Dispose Buzzer. /// </summary> public void Dispose() { _pwmController.Dispose(); }