I'm trying to get an arduino to generate a random pattern in a neopixel grid every time you restart it. But I only get the same number sequence generated each time. What I'm doing wrong?
Here's the sequence that keeps happening: 1110 0000 1101 0011
Here's the code I have so far:
/* ========================== INCLUDES ================================= */
#include "RGB.h"
#include <Adafruit_NeoPixel.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_GFX.h>
#ifndef PSTR
#define PSTR // Make Arduino Due happy
#endif
/* ========================== NEOPIXELS SETTINGS ================================= */
#define NEOPIN 6
#define MATRIX_W 4
#define MATRIX_H 4
Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(MATRIX_W, MATRIX_H, NEOPIN,
NEO_MATRIX_BOTTOM + NEO_MATRIX_LEFT +
NEO_MATRIX_ROWS + NEO_MATRIX_ZIGZAG,
NEO_GRB + NEO_KHZ800);
/* ========================== BOARD / GRID STUFF ================================= */
/* coordinates for a 4 x 4 grid
00,10,20,30
01,11,21,31
02,12,22,32
03,13,23,33,
04,14,24,34
*/
int land[4][4] = {};
/* ========================== SETUP AND LOOP ================================= */
void setup(){
Serial.begin(9600);
matrix.begin();
matrix.setBrightness(60);
matrix.fillScreen(matrix.Color(off.r,off.g,off.b));
crossFade(off, white, 50, 5);
drawLand();
}
void loop(){
matrix.show();
}
/* ========================== FUNCTIONS ================================= */
void drawLand() {
for(int row = 0; row < MATRIX_W; row++) {
for(int column = 0; column < MATRIX_H; column++) {
land[row][column] = random(0,2);
Serial.println(land[row][column]);
if(land[row][column] == 1) {
matrix.drawPixel(column, row, matrix.Color(red.r,red.g,red.b));
}
}
}
}