Problem with neomatrix

I have a little code that I use to test my panel, but the numbers are not formed correctly
I use the neomatrix library, ESP8266 and ws2813 leds
This is the code

#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>
#include <Fonts/FreeSans9pt7b.h>

#ifndef PSTR
 #define PSTR // Make Arduino Due happy

#define PIN D6

unsigned long start, tiempo = 0;
// Parameter 1 = width of NeoPixel matrix
// Parameter 2 = height of matrix
// Parameter 3 = pin number (most are valid)
// Parameter 4 = matrix layout flags, add together as needed:
//     Position of the FIRST LED in the matrix; pick two, e.g.
//     NEO_MATRIX_TOP + NEO_MATRIX_LEFT for the top-left corner.
//   NEO_MATRIX_ROWS, NEO_MATRIX_COLUMNS: LEDs are arranged in horizontal
//     rows or in vertical columns, respectively; pick one or the other.
//   NEO_MATRIX_PROGRESSIVE, NEO_MATRIX_ZIGZAG: all rows/columns proceed
//     in the same order, or alternate lines reverse direction; pick one.
//   See example below for these values in action.
// Parameter 5 = pixel type flags, add together as needed:
//   NEO_KHZ800  800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
//   NEO_KHZ400  400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
//   NEO_GRB     Pixels are wired for GRB bitstream (most NeoPixel products)
//   NEO_GRBW    Pixels are wired for GRBW bitstream (RGB+W NeoPixel products)
//   NEO_RGB     Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)

// Example for NeoPixel Shield.  In this application we'd like to use it
// as a 5x8 tall matrix, with the USB port positioned at the top of the
// Arduino.  When held that way, the first pixel is at the top right, and
// lines are arranged in columns, progressive order.  The shield uses
// 800 KHz (v2) pixels that expect GRB color data.
Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(60, 14, 1 , 1, PIN,
  NEO_GRB               + NEO_KHZ800);

const uint16_t colors[] = {
  matrix.Color(255, 0, 0), matrix.Color(0, 255, 0), matrix.Color(0, 0, 255) };

void setup() {
  matrix.setTextWrap(false);  // estaba en false y si probamos con un ejemplo de fast led? cambiando los prarametros segun estan aqui
  tiempo  = millis();

int x    = matrix.width();
int pass = 1;

void loop() {

  char buffer[5];
   matrix.setCursor(0, 13); 
   if(x < 13) 
   x = matrix.width();
//    if(++pass >= 3) pass = 0;
//    matrix.setTextColor(colors[pass]);
//  }
   if (millis() - start > 100UL) {
      //if(++pass >= 3) pass = 0;
      tiempo =  millis()/1000;
      sprintf(buffer,"%4d", tiempo);
      start = millis();

Thank you

The Neomatrix is in a zigzag pattern. You have the start of the matrix offset by one. I don[t know where in the code this offset appears, but if you can find any reference to an array offset, you need to correct it.

Possibly an array is starting at 1 when it should start at zero.

[pre]Thanks for answering, but I have checked the code, searched the internet and changed the font but I can't find the solution


Ah! So you are using WS2813 LEDs. This is a pre-built matrix or did you assemble it? It appears to be faulty; there is a faulty LED between the second and third row.

Use a test program to illuminate all the LEDs.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.