Hello, I am trying to figure out how to get the letters to scroll correctly on my scoreboard. Once I hit certain max number, the number will delay (5000) and then display "Winner!" scrolling through the leds (ws2811). To test this out before I place the code in the correct location which i already have something shown. I am using the Matrixtest Arduino. the controller i am using is the esp8266.
Here is the code i am using for example
// Adafruit_NeoMatrix example for single NeoPixel Shield.
// Scrolls 'Howdy' across the matrix in a portrait (vertical) orientation.
#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>
#ifndef PSTR
#define PSTR // Make Arduino Due happy
#endif
#define PIN 4
// MATRIX DECLARATION:
// 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:
// NEO_MATRIX_TOP, NEO_MATRIX_BOTTOM, NEO_MATRIX_LEFT, NEO_MATRIX_RIGHT:
// 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(6, 5, PIN,
**NEO_MATRIX_TOP + NEO_MATRIX_RIGHT +**
** NEO_MATRIX_ROWS,+ NEO_MATRIX_ZIGZAG, + NEO_MATRIX_PROGRESSIVE,**
** 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.begin();
matrix.setTextWrap(false);
matrix.setBrightness(60);
matrix.setTextColor(colors[0]);
}
int x = matrix.width();
int pass = 0;
void loop() {
matrix.fillScreen(0);
matrix.setCursor(x, 0);
matrix.print("Howdy");
if(--x < -36) {
x = matrix.width();
if(++pass >= 3) pass = 0;
matrix.setTextColor(colors[pass]);
}
matrix.show();
delay(500);
}
where I bolded the line of code has to do with the matrix width and height. As we know in from the top we are using Rows with a ZigZag connection.
Here are my questions?
1)What i would like to do is have the letters scroll from height 2,3,4 across the leds. When I up date (matrix.setCursor(x, 0)
to matrix.setCursor(x, 1); i would change my height number to 4?
- how do I change the scroll rate to slow down to make sure the letters are showing correctly?
- I feel the NEO_MATRIX_ROWS,+ NEO_MATRIX_ZIGZAG is not correct because the all the LEDs light up.
My leds are set up like this
0 -> 1 -> 2 ---> 15 -> 16 -> 17
* | | |
* v | v
* 5 < - 4 < - 3 | 20 < - 19 < - 18
* | | |
* v | v
* 6 -> 7 -> 8 | 21 -> 22 -> 23
* | | |
* v | v
* 11 < - 10 < - 9 | 26 < - 25 < - 24
* | | |
* v | v
* 12 -> 13 -> 14 ------ - 27 -> 28 -> 29
any help would be appreciated.