Arduino WS2811 scrolling message sign

I have two 1m 60 LED WS2811 strips, and expect to receive several more in coming weeks from Chinese suppliers. Once I have seven of them, I plan to use them as a scrolling message sign.

However, with two 1m strips (120 LEDs total), you can spiral them loosely (not tight enough to break the strip) and end up with six rows… Sorta. And, with a quick Arduino sketch (making use of some TVout fonts)… You can create a mini-circular scrolling message sign.

Here is “HELLO WORLD”:

Just for fun…

7 thoughts on “Arduino WS2811 scrolling message sign

  1. Daniel Fernandes

    Hi Allen! I’m using Arduino 1.6.5 and is showing this: Fatal error: fontALL.h: No such file or directory
    You have a fixed code? Thank you

    Reply
    1. Allen Huffman Post author

      To add color, we’d want to do something simple like this:

      1) In LEDSign.ino, create an array of all the colors you want to cycle through:

      // Array of colors:
      const uint32_t colorTable[] =
      {
      strip.Color(255, 0 , 0 ); // Red
      strip.Color(0 , 255, 0 ); // Green
      strip.Color(0 , 0 , 255); // Blue
      strip.Color(255, 255, 255); // White
      }

      2) Inside the main loop where it processes the letters, pick out a color to use for the setPixel(). I’d use a variable to track which color slot we are using and one to store it (so we don’t have to look it up every time we use it)…

      // Inside the “if (msgLen>0)” place with the other variables:

      uint8_t whichColor;
      uint32_t colorTemp;

      // Just before “for (letter=0; letter sizeof(colorTable)) whichColor = 0;

      //. Then, where it does the setPixel(), I’d make it use the “colorTemp
      variable instead of the hard-coded color:

      // 1 = set a pixel.
      strip.setPixelColor((row*LEDSPERROW)+colOffset,
      colorTemp);

      That should get you a row of letters, with each letter being a different color based on the color table.

      Reply

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.