static void Main(string[] args) { int result = GPIO_Init.WiringPiSetup(); if (result == -1) { Console.WriteLine("WiringPi init failed!"); } else { Console.WriteLine("WiringPi init success!"); //int R_pin = 27; //int G_pin = 28; //int B_pin = 29; int W_pin = 21; //int Fan_pin = 24; //soft pins 21 22 24 25 26 27 28 29 //hardware pins 23 PWM pwm = new PWM(); //pwm.Attach(R_pin); //pwm.Attach(G_pin); //pwm.Attach(B_pin); pwm.Attach(W_pin); //pwm.Write(W_pin, 1024); //pwm.Attach(Fan_pin); //string s = ""; Random rd = new Random(); while (!Console.KeyAvailable) { //if (Console.KeyAvailable) //{ // s += Console.ReadKey().KeyChar; // if (s.EndsWith("\r") || s.EndsWith("\n")) // { // int p = 0; // if (int.TryParse(s, out p)) // { // p = Math.Max(0, Math.Min(pwm.PWM_MAX, p)); // pwm.Write(pin, p); // Console.WriteLine("PWM set to: " + p + "/" + pwm.PWM_MAX); // } // s = ""; // } //} Console.WriteLine("Fading In"); for (int i = 0; i <= pwm.PWM_MAX; i += 8) { pwm.Write(W_pin, i); if (i % 128 == 0) { Console.Write(i + ", "); } GPIO.Timing.delay(40); } Console.WriteLine(); Console.WriteLine("Fading Out"); if (Console.KeyAvailable) { break; } for (int i = pwm.PWM_MAX; i >= 0; i -= 8) { pwm.Write(W_pin, i); if (i % 128 == 0) { Console.Write(i + ", "); } GPIO.Timing.delay(40); } Console.WriteLine(); Console.Write("10 Random Values: "); if (Console.KeyAvailable) { break; } for (int i = 10; i >= 0; i--) { int r = rd.Next(0, pwm.PWM_MAX); pwm.Write(W_pin, r); Console.Write(r + ", "); GPIO.Timing.delay(200); } Console.WriteLine(); } pwm.Stop(); } }