Ejemplo n.º 1
0
 public static void SetAllSegmentWithValues(NusbioSevenSegmentDisplay sevenSegmentDisplay, List <int> bitValues, int wait)
 {
     foreach (var bitValue in bitValues)
     {
         SetAllSegmentWithValue(sevenSegmentDisplay, bitValue, wait);
     }
 }
Ejemplo n.º 2
0
        public static NusbioSevenSegmentDisplay Initialize8SevenSegmentDisplays(Nusbio nusbio)
        {
            // Using a breadboard and some wires
            var selectGpio = NusbioGpio.Gpio2;
            var mosiGpio   = NusbioGpio.Gpio1;
            var clockGpio  = NusbioGpio.Gpio0;

            // How to plug the 8 7Segment display directly into Nusbio
            // -----------------------------------------------------------------------
            // NUSBIO                          : GND VCC  7   6  5   4  3  2  1  0
            // 8x8 LED Matrix MAX7219 base     :     VCC GND DIN CS CLK
            // Gpio 7 act as ground
            #if PLUGGED_INTO_NUSBIO
            nusbio[NusbioGpio.Gpio7].Low();     // <- GROUND
            mosiGpio   = NusbioGpio.Gpio6;
            selectGpio = NusbioGpio.Gpio5;
            clockGpio  = NusbioGpio.Gpio4;
            #endif

            var sevenSegmentDisplay = NusbioSevenSegmentDisplay.Initialize(
                nusbio,
                8, // 8 digits/7Segments on the device
                selectGpio,
                mosiGpio,
                clockGpio,
                deviceCount: 1  // 1 device with 8 7Segmens == 1 MAX7219
                );

            return(sevenSegmentDisplay);
        }
Ejemplo n.º 3
0
        public static void TestSevenSegmentDisplay(NusbioSevenSegmentDisplay sevenSegmentDisplay)
        {
            Console.Clear();
            ConsoleEx.TitleBar(0, "Test Seven Segments Display");
            ConsoleEx.WriteMenu(0, 1, " Q)uit");

            sevenSegmentDisplay.Clear(0, refresh: true);
            for (var i = 0; i < sevenSegmentDisplay.SevenSegmentCount; i++)
            {
                Console.WriteLine("7-Segment:{0}, Digit:{1}", i, i);
                sevenSegmentDisplay.SetDigit(0, i, i, false);
                TimePeriod.Sleep(250);
            }

            var pwrs = new List <int>()
            {
                1, 2, 4, 8, 16, 32, 64, 128
            };

            foreach (var pwr in pwrs)
            {
                sevenSegmentDisplay.Clear(0, refresh: true);
                Console.WriteLine("Bit set:{0}", pwr);
                for (var i = 0; i < sevenSegmentDisplay.SevenSegmentCount; i++)
                {
                    sevenSegmentDisplay.SetDigitDataByte(0, i, pwr, !true);
                    TimePeriod.Sleep(100);
                }
            }
        }
Ejemplo n.º 4
0
        public static void CounterDemo(NusbioSevenSegmentDisplay sevenSegmentDisplay)
        {
            Console.Clear();
            ConsoleEx.TitleBar(0, "Counter Demo");
            ConsoleEx.WriteMenu(0, 1, " Q)uit");

            sevenSegmentDisplay.Clear(0, refresh: true);

            var counter1 = 000.0;
            var counter2 = 1000.0;
            var format   = "0.0";

            while (counter1 < 200.0)
            {
                ConsoleEx.WriteLine(0, 3, string.Format("{0} {1}", counter2.ToString(format), counter1.ToString(format)).PadRight(16), ConsoleColor.White);
                sevenSegmentDisplay.DisplayNumber(0, counter1, format, 0);
                sevenSegmentDisplay.DisplayNumber(0, counter2, format, 4);
                TimePeriod.Sleep(150);
                counter1 = counter1 + 0.1;
                counter2 = counter2 - 0.1;
                if (Console.KeyAvailable)
                {
                    if (Console.ReadKey().Key == ConsoleKey.Q)
                    {
                        break;
                    }
                }
            }
        }
Ejemplo n.º 5
0
        public static void PlayWithSegment1(NusbioSevenSegmentDisplay sevenSegmentDisplay)
        {
            Console.Clear();
            ConsoleEx.TitleBar(0, "Play With Segments 1");
            ConsoleEx.WriteMenu(0, 1, " Q)uit");

            int wait = 300;

            while (true)
            {
                sevenSegmentDisplay.Clear(0, refresh: true);
                // Define sequence of bit or segment in the seven segment to light up
                // Bit Definition
                //   64
                //   _
                // 2| |32
                // 1 -
                // 4| |16
                //   -
                //   8
                var values = new List <int>();
                values.Add(1 + 2 + 4 + 8 + 16 + 32 + 64);
                values.Add(values[values.Count - 1] & ~1);

                SetAllSegmentWithValues(sevenSegmentDisplay, values, wait);

                if (Console.KeyAvailable)
                {
                    if (Console.ReadKey().Key == ConsoleKey.Q)
                    {
                        break;
                    }
                }
            }
        }
Ejemplo n.º 6
0
        public static void LetterDemo(NusbioSevenSegmentDisplay sevenSegmentDisplay)
        {
            Console.Clear();
            ConsoleEx.TitleBar(0, "Letters Demo");
            ConsoleEx.WriteMenu(0, 1, " Q)uit");

            int  wait = 300;
            bool go   = true;

            sevenSegmentDisplay.Clear(0, refresh: true);
            sevenSegmentDisplay.WriteLetter(0, 7, "HELLO");
            TimePeriod.Sleep(1000);

            while (go)
            {
                sevenSegmentDisplay.Clear(0, refresh: true);
                foreach (var d in NusbioSevenSegmentDisplay.Letters)
                {
                    if (d.Value > 0)
                    {
                        ConsoleEx.WriteLine(0, 3, string.Format("Letter:{0}", d.Key), ConsoleColor.Cyan);
                        SetAllSegmentWithValue(sevenSegmentDisplay, d.Value, wait);
                        TimePeriod.Sleep(600);
                    }
                    if (Console.KeyAvailable)
                    {
                        if (Console.ReadKey().Key == ConsoleKey.Q)
                        {
                            go = false;
                            break;
                        }
                    }
                }
            }
        }
Ejemplo n.º 7
0
 public static void SetAllSegmentWithValue(NusbioSevenSegmentDisplay sevenSegmentDisplay, int bitValue, int wait)
 {
     for (var i = 0; i < sevenSegmentDisplay.SevenSegmentCount; i++)
     {
         sevenSegmentDisplay.SetDigitDataByte(0, i, bitValue, false);
     }
     //sevenSegmentDisplay.Clear(refresh:true);
     //var buffer = new List<byte>();
     //for (var i = 0; i < sevenSegmentDisplay.SevenSegmentCount; i++)
     //    buffer.Add((byte)bitValue);
     //sevenSegmentDisplay.SetDigitDataByte(0, buffer, false);
     if (wait > 0)
     {
         TimePeriod.Sleep(wait);
     }
 }