Пример #1
0
        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();
            }
        }