Moderators: adafruit_support_bill, adafruit
strip.SetPixelColor(0, Color(255, 128, 0));
strip.SetPixelColor(0, Color(0, 0, 255)); strip.SetPixelColor ((y * 6) + ((y & 1) ? (5 - x) : x), Color(r, g, b));
void MAKEx()
{
int r = 100;
int g = 100;
int b = 100;
strip.setPixelColor(0,Color(g, r, b));//grd
strip.setPixelColor(5,Color(g, r, b));//grd
strip.setPixelColor(7,Color(g, r, b));//grd
strip.setPixelColor(10,Color(g, r, b));//grd
strip.setPixelColor(14,Color(g, r, b));//grd
strip.setPixelColor(15,Color(g, r, b));//grd
strip.setPixelColor(20,Color(g, r, b));//grd
strip.setPixelColor(21,Color(g, r, b));//grd
strip.setPixelColor(25,Color(g, r, b));//grd
strip.setPixelColor(28,Color(g, r, b));//grd
strip.setPixelColor(30,Color(g, r, b));//grd
strip.setPixelColor(35,Color(g, r, b));//grd
strip.show();
}Is it possible to reduce the amount of code so it doesn't be come too labor intensive.
#include "SPI.h"
#include "Adafruit_WS2801.h"
#define DATA_LENGTH 36
uint8_t datums[] = {1,0,0,0,0,1,0,1,0,0,1,0,0,0,1,1,0,0,0,1,0,0,1,0,1,0,0,0,0,1};
uint32_t fg, bg;
uint8_t fg_color[] = {0,0,0};
uint8_t bg_color[] = {0,0,0};
Adafruit_WS2801 strip = Adafruit_WS2801(36);
uint32_t Color(uint8_t r, uint8_t g, uint8_t b) {
uint32_t c;
c = r;
c <<= 8;
c |= g;
c <<= 8;
c |= b;
return c;
}
void display () {
bg = Color (bg_color[0], bg_color[1], bg_color[2]);
fg = Color (fg_color[0], fg_color[1], fg_color[2]);
for (int i = 0; i < DATA_LENGTH; i++) {
if (datums[i]) strip.setPixelColor(i, fg);
else strip.setPixelColor(i, bg);
}
strip.show ();
}
void fade (int steps, int d) {
float start[] = {0.0, 0.0, 0.0};
float end[] = {0.0, 0.0, 0.0};
float interval[] = {0.0, 0.0, 0.0};
int i, j;
for (i = 0; i < 3; i++) {
start [i] = (float) fg_color[i];
interval[i] = ((float) bg_color[i] - start[i]) / (float) steps;
}
bg = Color (bg_color[0], bg_color[1], bg_color[2]);
for (j = 1; j < steps; j++) {
fg = Color ((uint8_t)start[0], (uint8_t)start[1], (uint8_t)start[2]);
for (int i = 0; i < DATA_LENGTH; i++) {
if (datums[i]) strip.setPixelColor(i, fg);
}
strip.show ();
start[0] += interval[0];
start[1] += interval[1];
start[2] += interval[2];
delay (d);
}
for (int i = 0; i < DATA_LENGTH; i++) {
if (datums[i]) strip.setPixelColor(i, bg);
}
strip.show ();
}
void setup() {
strip.begin();
strip.show();
for (i = 0; i < 128; i++) {
bg_color[2] += 2;
fg_color[0] += 2;
fg_color[1] += 1;
display ();
delay (8);
}
}
void loop () {
display ();
delay (1000);
fade (256, 4);
delay (1000);
}

bg = Color (bg_color[0], bg_color[1], bg_color[2]);
fg = Color (fg_color[0], fg_color[1], fg_color[2]);
bg = Color (bg_color[1], bg_color[0], bg_color[2]);
fg = Color (fg_color[1], fg_color[0], fg_color[2]);

#include "SPI.h"
#include "Adafruit_WS2801.h"
int dataPin = 2;
int clockPin = 3;
Adafruit_WS2801 strip = Adafruit_WS2801(36, dataPin, clockPin);
#define DATA_LENGTH 36
uint8_t datums[] = {1,0,0,0,0,1,0,1,0,0,1,0,0,0,1,1,0,0,0,0,1,1,0,0,0,1,0,0,1,0,1,0,0,0,0,1};
uint32_t fg, bg;
uint8_t fg_color[] = {0,0,0};
uint8_t bg_color[] = {0,0,0};
uint32_t Color(uint8_t r, uint8_t g, uint8_t b) {
uint32_t c;
c = r;
c <<= 8;
c |= g;
c <<= 8;
c |= b;
return c;
}
void display () {
bg = Color (bg_color[1], bg_color[0], bg_color[2]);
fg = Color (fg_color[1], fg_color[0], fg_color[2]);
for (int i = 0; i < DATA_LENGTH; i++) {
if (datums[i]) strip.setPixelColor(i, fg);
else strip.setPixelColor(i, bg);
}
strip.show ();
}
void fade (int steps, int d) {
float start[] = {0.0, 0.0, 0.0};
float end[] = {0.0, 0.0, 0.0};
float interval[] = {0.0, 0.0, 0.0};
int i, j;
for (i = 0; i < 3; i++) {
start [i] = (float) fg_color[i];
interval[i] = ((float) bg_color[i] - start[i]) / (float) steps;
}
bg = Color (bg_color[0], bg_color[1], bg_color[2]);
for (j = 1; j < steps; j++) {
fg = Color ((uint8_t)start[0], (uint8_t)start[1], (uint8_t)start[2]);
for (int i = 0; i < DATA_LENGTH; i++) {
if (datums[i]) strip.setPixelColor(i, fg);
}
strip.show ();
start[0] += interval[0];
start[1] += interval[1];
start[2] += interval[2];
delay (d);
}
for (int i = 0; i < DATA_LENGTH; i++) {
if (datums[i]) strip.setPixelColor(i, bg);
}
strip.show ();
}
void setup() {
strip.begin();
strip.show();
for (int i = 0; i < 255; i++) {
bg_color[2] += 2;
fg_color[0] += 2;
fg_color[1] += 1;
display ();
delay (8);
}
}
void loop () {
display ();
delay (1000);
fade (256, 4);
delay (1000);
}bluegroup wrote:I had to make a few mods to the code but I did get it working!

#define NUM_ROWS 5
#define NUM_COLS 5
int LED_Array[NUM_ROWS][NUM_COLS]; //contains pixel indices
. . .
for (int row = 0; row < NUM_ROWS; row++)
{
for (int col = 0; col < NUM_COLS; col++)
{
LED_Array[row][col] = (row * NUM_ROWS) + col;
}
}#define NUM_ROWS 5
#define NUM_COLS 5
int LED_Array[NUM_ROWS][NUM_COLS] = { //contains pixel indices
{ 0, 1, 2, 3, 4},
{ 5, 6, 7, 8, 9},
{10, 11, 12, 13, 14},
{15, 16, 17, 18, 19},
{20, 21, 22, 23, 24}
};
Return to Glowy things (LCD, LED, TFT, EL) purchased at Adafruit
Users browsing this forum: No registered users and 3 guests