anybody knows how to modify the code in order to include a wider matrix?
I have tried by changing the y range to 30 , but this doesn't work .
/*
- Copyright (C) 2013 Gilad Dayagi. All rights reserved.
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
*/
/*
- An example for the Arduino particle system library
- A wandering particle that emits colorful smoke
-
- Note: this example uses the colorduino library becuse that is what I had,
- but any device that supports setting a pixel to an RGB value can be used
*/
//'r' for rainbowduino, 'c' for colorduino
//#define BOARD 'r'
//#if BOARD == 'c'
//#include <Colorduino.h>
//#else
//#include <Rainbowduino.h>
//#endif
#include "FastLED.h"
#include "ParticleSys.h"
#include "Particle_Std.h"
#include "Particle_Fixed.h"
#include "Emitter_Fountain.h"
#include "PartMatrix.h"
const byte numParticles = 40;
boolean pulseOn = false;
Particle_Std particles[numParticles];
Particle_Fixed source;
Emitter_Fountain emitter(0, 1, 10, &source);
ParticleSys pSys(numParticles, particles, &emitter);
PartMatrix pMatrix;
#define NUM_LEDS 237
CRGB leds[NUM_LEDS];
/**
- Render the particles into a low-resolution matrix
*/
void drawMatrix(){
pMatrix.reset();
pMatrix.render(particles, numParticles);
//update the actual LED matrix
int LEDnum ;
for (byte y=0;y<8;y++) {
for(byte x=0;x<8;x++) {
//#if BOARD == 'c'
// Colorduino.SetPixel(x, y, pMatrix.matrix[x][y].r, pMatrix.matrix[x][y].g, pMatrix.matrix[x][y].b);
//#else
// Rb.setPixelXY(PS_PIXELS_Y-y-1, x, pMatrix.matrix[x][y].r, pMatrix.matrix[x][y].g, pMatrix.matrix[x][y].b);
//#endif
if ((y & 01) == 0) {
LEDnum = (y+1)30 - x-1;
} else {
LEDnum=y30+x;
}
leds[LEDnum].r = pMatrix.matrix[x][y].r;
leds[LEDnum].g = pMatrix.matrix[x][y].g;
leds[LEDnum].b = pMatrix.matrix[x][y].b;
}
}
}
// *******************************************//
void setup()
{
//#if BOARD == 'c'
// Colorduino.Init(); // initialize the board
FastLED.addLeds<WS2812B, 6, GRB>(leds, NUM_LEDS);
// compensate for relative intensity differences in R/G/B brightness
// array of 6-bit base values for RGB (0~63)
// whiteBalVal[0]=red
// whiteBalVal[1]=green
// whiteBalVal[2]=blue
byte whiteBalVal[3] = {36,63,7}; // for LEDSEE 6x6cm round matrix
//Colorduino.SetWhiteBal(whiteBalVal);
//#else
// Rb.init();
//#endif
randomSeed(analogRead(0));
//source.vx = 3;
//source.vy = 1;
source.x = 0;
source.y = 1;
Emitter_Fountain::minLife = 20;
Emitter_Fountain::maxLife = 80;
Particle_Std::ay = 1;
//PartMatrix::isOverflow = false;
//init all pixels to zero
pMatrix.reset();
}
void loop()
{
pSys.update();
drawMatrix();
//#if BOARD == 'c'
//Colorduino.FlipPage();
FastLED.show();
//#endif
delay(40);
}