First commit.
This commit is contained in:
@ -0,0 +1,37 @@
|
||||
// ArrayOfLedArrays - see https://github.com/FastLED/FastLED/wiki/Multiple-Controller-Examples for more info on
|
||||
// using multiple controllers. In this example, we're going to set up three NEOPIXEL strips on three
|
||||
// different pins, each strip getting its own CRGB array to be played with, only this time they're going
|
||||
// to be all parts of an array of arrays.
|
||||
|
||||
#include <FastLED.h>
|
||||
|
||||
#define NUM_STRIPS 3
|
||||
#define NUM_LEDS_PER_STRIP 60
|
||||
CRGB leds[NUM_STRIPS][NUM_LEDS_PER_STRIP];
|
||||
|
||||
// For mirroring strips, all the "special" stuff happens just in setup. We
|
||||
// just addLeds multiple times, once for each strip
|
||||
void setup() {
|
||||
// tell FastLED there's 60 NEOPIXEL leds on pin 10
|
||||
FastLED.addLeds<NEOPIXEL, 10>(leds[0], NUM_LEDS_PER_STRIP);
|
||||
|
||||
// tell FastLED there's 60 NEOPIXEL leds on pin 11
|
||||
FastLED.addLeds<NEOPIXEL, 11>(leds[1], NUM_LEDS_PER_STRIP);
|
||||
|
||||
// tell FastLED there's 60 NEOPIXEL leds on pin 12
|
||||
FastLED.addLeds<NEOPIXEL, 12>(leds[2], NUM_LEDS_PER_STRIP);
|
||||
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// This outer loop will go over each strip, one at a time
|
||||
for(int x = 0; x < NUM_STRIPS; x++) {
|
||||
// This inner loop will go over each led in the current strip, one at a time
|
||||
for(int i = 0; i < NUM_LEDS_PER_STRIP; i++) {
|
||||
leds[x][i] = CRGB::Red;
|
||||
FastLED.show();
|
||||
leds[x][i] = CRGB::Black;
|
||||
delay(100);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,44 @@
|
||||
// MirroringSample - see https://github.com/FastLED/FastLED/wiki/Multiple-Controller-Examples for more info on
|
||||
// using multiple controllers. In this example, we're going to set up four NEOPIXEL strips on four
|
||||
// different pins, and show the same thing on all four of them, a simple bouncing dot/cyclon type pattern
|
||||
|
||||
#include <FastLED.h>
|
||||
|
||||
#define NUM_LEDS_PER_STRIP 60
|
||||
CRGB leds[NUM_LEDS_PER_STRIP];
|
||||
|
||||
// For mirroring strips, all the "special" stuff happens just in setup. We
|
||||
// just addLeds multiple times, once for each strip
|
||||
void setup() {
|
||||
// tell FastLED there's 60 NEOPIXEL leds on pin 4
|
||||
FastLED.addLeds<NEOPIXEL, 4>(leds, NUM_LEDS_PER_STRIP);
|
||||
|
||||
// tell FastLED there's 60 NEOPIXEL leds on pin 5
|
||||
FastLED.addLeds<NEOPIXEL, 5>(leds, NUM_LEDS_PER_STRIP);
|
||||
|
||||
// tell FastLED there's 60 NEOPIXEL leds on pin 6
|
||||
FastLED.addLeds<NEOPIXEL, 6>(leds, NUM_LEDS_PER_STRIP);
|
||||
|
||||
// tell FastLED there's 60 NEOPIXEL leds on pin 7
|
||||
FastLED.addLeds<NEOPIXEL, 7>(leds, NUM_LEDS_PER_STRIP);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
for(int i = 0; i < NUM_LEDS_PER_STRIP; i++) {
|
||||
// set our current dot to red
|
||||
leds[i] = CRGB::Red;
|
||||
FastLED.show();
|
||||
// clear our current dot before we move on
|
||||
leds[i] = CRGB::Black;
|
||||
delay(100);
|
||||
}
|
||||
|
||||
for(int i = NUM_LEDS_PER_STRIP-1; i >= 0; i--) {
|
||||
// set our current dot to red
|
||||
leds[i] = CRGB::Red;
|
||||
FastLED.show();
|
||||
// clear our current dot before we move on
|
||||
leds[i] = CRGB::Black;
|
||||
delay(100);
|
||||
}
|
||||
}
|
@ -0,0 +1,52 @@
|
||||
// MultiArrays - see https://github.com/FastLED/FastLED/wiki/Multiple-Controller-Examples for more info on
|
||||
// using multiple controllers. In this example, we're going to set up three NEOPIXEL strips on three
|
||||
// different pins, each strip getting its own CRGB array to be played with
|
||||
|
||||
#include <FastLED.h>
|
||||
|
||||
#define NUM_LEDS_PER_STRIP 60
|
||||
CRGB redLeds[NUM_LEDS_PER_STRIP];
|
||||
CRGB greenLeds[NUM_LEDS_PER_STRIP];
|
||||
CRGB blueLeds[NUM_LEDS_PER_STRIP];
|
||||
|
||||
// For mirroring strips, all the "special" stuff happens just in setup. We
|
||||
// just addLeds multiple times, once for each strip
|
||||
void setup() {
|
||||
// tell FastLED there's 60 NEOPIXEL leds on pin 10
|
||||
FastLED.addLeds<NEOPIXEL, 10>(redLeds, NUM_LEDS_PER_STRIP);
|
||||
|
||||
// tell FastLED there's 60 NEOPIXEL leds on pin 11
|
||||
FastLED.addLeds<NEOPIXEL, 11>(greenLeds, NUM_LEDS_PER_STRIP);
|
||||
|
||||
// tell FastLED there's 60 NEOPIXEL leds on pin 12
|
||||
FastLED.addLeds<NEOPIXEL, 12>(blueLeds, NUM_LEDS_PER_STRIP);
|
||||
|
||||
}
|
||||
|
||||
void loop() {
|
||||
for(int i = 0; i < NUM_LEDS_PER_STRIP; i++) {
|
||||
// set our current dot to red, green, and blue
|
||||
redLeds[i] = CRGB::Red;
|
||||
greenLeds[i] = CRGB::Green;
|
||||
blueLeds[i] = CRGB::Blue;
|
||||
FastLED.show();
|
||||
// clear our current dot before we move on
|
||||
redLeds[i] = CRGB::Black;
|
||||
greenLeds[i] = CRGB::Black;
|
||||
blueLeds[i] = CRGB::Black;
|
||||
delay(100);
|
||||
}
|
||||
|
||||
for(int i = NUM_LEDS_PER_STRIP-1; i >= 0; i--) {
|
||||
// set our current dot to red, green, and blue
|
||||
redLeds[i] = CRGB::Red;
|
||||
greenLeds[i] = CRGB::Green;
|
||||
blueLeds[i] = CRGB::Blue;
|
||||
FastLED.show();
|
||||
// clear our current dot before we move on
|
||||
redLeds[i] = CRGB::Black;
|
||||
greenLeds[i] = CRGB::Black;
|
||||
blueLeds[i] = CRGB::Black;
|
||||
delay(100);
|
||||
}
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
// MultipleStripsInOneArray - see https://github.com/FastLED/FastLED/wiki/Multiple-Controller-Examples for more info on
|
||||
// using multiple controllers. In this example, we're going to set up four NEOPIXEL strips on three
|
||||
// different pins, each strip will be referring to a different part of the single led array
|
||||
|
||||
#include <FastLED.h>
|
||||
|
||||
#define NUM_STRIPS 3
|
||||
#define NUM_LEDS_PER_STRIP 60
|
||||
#define NUM_LEDS NUM_LEDS_PER_STRIP * NUM_STRIPS
|
||||
|
||||
CRGB leds[NUM_STRIPS * NUM_LEDS_PER_STRIP];
|
||||
|
||||
// For mirroring strips, all the "special" stuff happens just in setup. We
|
||||
// just addLeds multiple times, once for each strip
|
||||
void setup() {
|
||||
// tell FastLED there's 60 NEOPIXEL leds on pin 10, starting at index 0 in the led array
|
||||
FastLED.addLeds<NEOPIXEL, 10>(leds, 0, NUM_LEDS_PER_STRIP);
|
||||
|
||||
// tell FastLED there's 60 NEOPIXEL leds on pin 11, starting at index 60 in the led array
|
||||
FastLED.addLeds<NEOPIXEL, 11>(leds, NUM_LEDS_PER_STRIP, NUM_LEDS_PER_STRIP);
|
||||
|
||||
// tell FastLED there's 60 NEOPIXEL leds on pin 12, starting at index 120 in the led array
|
||||
FastLED.addLeds<NEOPIXEL, 12>(leds, 2 * NUM_LEDS_PER_STRIP, NUM_LEDS_PER_STRIP);
|
||||
|
||||
}
|
||||
|
||||
void loop() {
|
||||
for(int i = 0; i < NUM_LEDS; i++) {
|
||||
leds[i] = CRGB::Red;
|
||||
FastLED.show();
|
||||
leds[i] = CRGB::Black;
|
||||
delay(100);
|
||||
}
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
#define USE_OCTOWS2811
|
||||
#include <OctoWS2811.h>
|
||||
#include <FastLED.h>
|
||||
|
||||
#define NUM_LEDS_PER_STRIP 64
|
||||
#define NUM_STRIPS 8
|
||||
|
||||
CRGB leds[NUM_STRIPS * NUM_LEDS_PER_STRIP];
|
||||
|
||||
// Pin layouts on the teensy 3:
|
||||
// OctoWS2811: 2,14,7,8,6,20,21,5
|
||||
|
||||
void setup() {
|
||||
LEDS.addLeds<OCTOWS2811>(leds, NUM_LEDS_PER_STRIP);
|
||||
LEDS.setBrightness(32);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
static uint8_t hue = 0;
|
||||
for(int i = 0; i < NUM_STRIPS; i++) {
|
||||
for(int j = 0; j < NUM_LEDS_PER_STRIP; j++) {
|
||||
leds[(i*NUM_LEDS_PER_STRIP) + j] = CHSV((32*i) + hue+j,192,255);
|
||||
}
|
||||
}
|
||||
|
||||
// Set the first n leds on each strip to show which strip it is
|
||||
for(int i = 0; i < NUM_STRIPS; i++) {
|
||||
for(int j = 0; j <= i; j++) {
|
||||
leds[(i*NUM_LEDS_PER_STRIP) + j] = CRGB::Red;
|
||||
}
|
||||
}
|
||||
|
||||
hue++;
|
||||
|
||||
LEDS.show();
|
||||
LEDS.delay(10);
|
||||
}
|
@ -0,0 +1,56 @@
|
||||
#include <FastLED.h>
|
||||
|
||||
#define NUM_LEDS_PER_STRIP 16
|
||||
// Note: this can be 12 if you're using a teensy 3 and don't mind soldering the pads on the back
|
||||
#define NUM_STRIPS 16
|
||||
|
||||
CRGB leds[NUM_STRIPS * NUM_LEDS_PER_STRIP];
|
||||
|
||||
// Pin layouts on the teensy 3/3.1:
|
||||
// WS2811_PORTD: 2,14,7,8,6,20,21,5
|
||||
// WS2811_PORTC: 15,22,23,9,10,13,11,12,28,27,29,30 (these last 4 are pads on the bottom of the teensy)
|
||||
// WS2811_PORTDC: 2,14,7,8,6,20,21,5,15,22,23,9,10,13,11,12 - 16 way parallel
|
||||
//
|
||||
// Pin layouts on the due
|
||||
// WS2811_PORTA: 69,68,61,60,59,100,58,31 (note: pin 100 only available on the digix)
|
||||
// WS2811_PORTB: 90,91,92,93,94,95,96,97 (note: only available on the digix)
|
||||
// WS2811_PORTD: 25,26,27,28,14,15,29,11
|
||||
//
|
||||
|
||||
|
||||
// IBCC<WS2811, 1, 16> outputs;
|
||||
|
||||
void setup() {
|
||||
delay(5000);
|
||||
Serial.begin(57600);
|
||||
Serial.println("Starting...");
|
||||
// LEDS.addLeds<WS2811_PORTA,NUM_STRIPS>(leds, NUM_LEDS_PER_STRIP);
|
||||
// LEDS.addLeds<WS2811_PORTB,NUM_STRIPS>(leds, NUM_LEDS_PER_STRIP);
|
||||
// LEDS.addLeds<WS2811_PORTD,NUM_STRIPS>(leds, NUM_LEDS_PER_STRIP).setCorrection(TypicalLEDStrip);
|
||||
LEDS.addLeds<WS2811_PORTDC,NUM_STRIPS>(leds, NUM_LEDS_PER_STRIP);
|
||||
|
||||
// Teensy 4 parallel output example
|
||||
// LEDS.addLeds<NUM_STRIPS, WS2811, 1>(leds,NUM_LEDS_PER_STRIP);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
Serial.println("Loop....");
|
||||
static uint8_t hue = 0;
|
||||
for(int i = 0; i < NUM_STRIPS; i++) {
|
||||
for(int j = 0; j < NUM_LEDS_PER_STRIP; j++) {
|
||||
leds[(i*NUM_LEDS_PER_STRIP) + j] = CHSV((32*i) + hue+j,192,255);
|
||||
}
|
||||
}
|
||||
|
||||
// Set the first n leds on each strip to show which strip it is
|
||||
for(int i = 0; i < NUM_STRIPS; i++) {
|
||||
for(int j = 0; j <= i; j++) {
|
||||
leds[(i*NUM_LEDS_PER_STRIP) + j] = CRGB::Red;
|
||||
}
|
||||
}
|
||||
|
||||
hue++;
|
||||
|
||||
LEDS.show();
|
||||
// LEDS.delay(100);
|
||||
}
|
Reference in New Issue
Block a user