How do you use an 8X32 led matrix board?

I bought a matrix board from this link because it seemed cool. But when it arrived, I couldn't figure out how to connect it or write code for it. I tried googling but couldn't find anything. If you have any suggestions or how to connect it or on the code, please reply. Thanks.

The Adafruit Ueberguide should tell you anything you need for the start with Neopixels.

Read it carefully. All pages. Test with their examples.

I hope your display was not bent in the packaging as others complained of on that page. :astonished:

Did you get your four-digit display working as you wanted it?


Just as a point of form, when you post links, please do not click the "Prevent this page from creating additional dialogs" checkbox; this is just a significant nuisance for people trying to follow the links as it moves you on from the posting itself and you have to back out of the link (which some links actually prevent) to get back to the post.

The fact that you are actually offered this option does tend to mislead and imply that there is some sort of benefit to it; there definitely is not. I understand in some cases you do not get offered this checkbox, possibly on the "mobile" version. :roll_eyes:

There is one digital input. That is the plug with the green wire. Perhaps there is a label "DIN". It is the connector in which you can push jumper wires.
Connect the GND of that connector to the GND of the Arduino.
Connect 5V to that same connector, but don't use the 5V pin of the Arduino for that. You need a good power supply.

256 * 60 mA = 15 Amperes. That is ridiculous, but that is what you need of you want to turn on all of them at maximum brightness.
If you want to do a quick test and use the Arduino 5V pin, then the current should be limited to 500mA. The brightness can be set to maximum 255, but you have to lower that to 8.

The other connector is the outgoing signal for another 8x32 display. You see the three metal pins.
Check if the black wires are all GND. I have a 8x32 display here in front of me, and they just soldered a bunch of wires of any color.

The red+black wires are extra power supply wires (5V).

In your sketch you have 256 NeoPixels. I don't know if that fits in the memory of a Arduino Uno. You can start with an example to control just one NeoPixel, the rest will stay dark.

I took my 8x32 out of its package and installed the Adafruit NeoPixel library from the Library Manager of the Arduino IDE.
By reducing the brightness to 8, I could power the whole strip with the 5V pin of the Arduino board. I don't know the actual current, I think my desktop computer can supply a lot of current to the USB ports.

Arduino Uno.
Arduino IDE 1.8.13 and Arduino IDE 2.0.0-beta.3

Then I used a combination of this: Tweaking4All.com - Arduino - Controlling a WS2812 LED strand with NeoPixel or FastLED and the Adafruit examples.

That worked:

#include <Adafruit_NeoPixel.h>

#define PIN 6              // Arduino pin 6 to DIN of 8x32 matrix.
#define LED_COUNT 256      // 8x32 = 256 NeoPixel leds
#define BRIGHTNESS 8       // to reduce current for 256 NeoPixels

Adafruit_NeoPixel strip = Adafruit_NeoPixel(LED_COUNT, PIN, NEO_GRB + NEO_KHZ800);


void setup() 
{
  strip.begin();
  strip.show();            // Initialize all pixels to 'off'
  strip.setBrightness(BRIGHTNESS);   // overall brightness
}


void loop() 
{
  // Some example procedures showing how to display to the pixels:
  colorWipe(strip.Color(255, 0, 0), 5);      // Red
  colorWipe(strip.Color(0, 255, 0), 5);      // Green
  colorWipe(strip.Color(0, 0, 255), 5);      // Blue

  // Send a theater pixel chase in...
  theaterChase(strip.Color(255, 255, 255), 50);     // White

  rainbow(1);
  colorWipe( strip.Color(0,0,0),1);
}


// Fill the dots one after the other with a color
void colorWipe(uint32_t c, uint8_t wait) 
{
  for(int i=0; i<strip.numPixels(); i++) 
  {
    strip.setPixelColor(i, c);
    strip.show();
    delay(wait);
  }
}


void rainbow(uint8_t wait) 
{
  for(int j=0; j<1000; j++) 
  {
    for(int i=0; i<strip.numPixels(); i++) 
    {
      strip.setPixelColor(i, Wheel((i+j) & 255));
    }
    strip.show();
    delay(wait);
  }
}


//Theatre-style crawling lights.
void theaterChase(uint32_t c, uint8_t wait) 
{
  for (int j=0; j<10; j++)   //do 10 cycles of chasing
  {
    for (int q=0; q < 3; q++) 
    {
      for (int i=0; i < strip.numPixels(); i=i+3) 
      {
        strip.setPixelColor(i+q, c);    //turn every third pixel on
      }
      strip.show();

      delay(wait);

      for (int i=0; i < strip.numPixels(); i=i+3) 
      {
        strip.setPixelColor(i+q, 0);        //turn every third pixel off
      }
    }
  }
}


// Input a value 0 to 255 to get a color value.
// The colours are a transition r - g - b - back to r.
uint32_t Wheel(byte WheelPos) 
{
  if(WheelPos < 85) 
  {
   return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
  } 
  else if(WheelPos < 170) 
  {
   WheelPos -= 85;
   return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
  } 
  else 
  {
   WheelPos -= 170;
   return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
  }
}

Those 8x32 matrix RGB led displays cost 12 dollars at AliExpress. You paid too much.

Koepel:
If you want to do a quick test and use the Arduino 5V pin, then the current should be limited to 500mA. The brightness can be set to maximum 255, but you have to lower that to 8.

Note that the quiescent current of the display is something like 240 mA. :astonished:

@Paul__B, I didn't know that ! thank you.
I measured the current to the 8x32 display with my sketch and it is between 300 and 400mA.

The FastLED can set the overall brightness to reduce current as well and there is also a setMaxPowerInVoltsAndMilliamps() function to calculate runtime the used current and reduce that if needed.

Koepel:
@Paul__B, I didn't know that ! thank you.
I measured the current to the 8x32 display with my sketch and it is between 300 and 400mA.

Was that with the display blank? Presumably not, just a low intensity pattern.

The WS2811 chip (which is of course incorporated into the WS2812) for some reason draws just under on milliamp itself. It's in teh specs. Somewhat curious as it is of course, basically CMOS but I suspect it is some part of the constant current driver mechanism that is used for the LEDs.

Let's test that:

1 = Voltage Arduino board
2 = Voltage on the display
3 = Current to the display
"all at 8" means all white at brightness 8 with FastLED library.

             [1]    [2]    [3]
------------------------------
all off  |  4.61V  4.58V  280mA
all at 8 |  4.26V  4.19V  540mA

That is a lot worse than I thought :frowning: That is something to keep in mind. The current will be higher when the voltage at the display is 5.0V instead of 4.19V.

OK, 256 LEDs, that is a trifle over 1 mA per LED, which is the figure I had (or somewhat more than) from previous discussions and what I thought was the datasheet - but cannot find one where it is specified, :astonished:

Did you check this on Youtube? maybe you'll find tutorials to fix this issue.

bracknelson123:
Did you check this on Youtube? maybe you'll find tutorials to fix this issue.

Umm, just what "issue" is it you propose the tutorials to "fix"? :roll_eyes:

This topic was automatically closed after 77 days. New replies are no longer allowed.