Components and supplies
Arduino Nano R3
Tools and machines
Soldering iron (generic)
Apps and platforms
Arduino IDE
Project description
Code
Arduino Code
arduino
Code to manually control the LED's.
1#include "FastLED.h" 2 3// How many leds in your strip? 4#define NUM_LEDS 68 5 6byte pixelType = 0; 7byte drawIn[4]; 8byte frameIn[NUM_LEDS*3]; 9 10 11// For led chips like Neopixels, which have a data line, ground, and power, you just 12// need to define DATA_PIN. For led chipsets that are SPI based (four wires - data, clock, 13// ground, and power), like the LPD8806 define both DATA_PIN and CLOCK_PIN 14#define DATA_PIN 3 15//#define CLOCK_PIN 13 16 17// The bluetooth module pins 18#define RX_PIN 0 19#define TX_PIN 1 20 21// Define the array of leds 22CRGB leds[NUM_LEDS]; 23 24void setup() { 25 // Uncomment/edit one of the following lines for your leds arrangement. 26 // FastLED.addLeds<TM1803, DATA_PIN, RGB>(leds, NUM_LEDS); 27 // FastLED.addLeds<TM1804, DATA_PIN, RGB>(leds, NUM_LEDS); 28 // FastLED.addLeds<TM1809, DATA_PIN, RGB>(leds, NUM_LEDS); 29 // FastLED.addLeds<WS2811, DATA_PIN, RGB>(leds, NUM_LEDS); 30 // FastLED.addLeds<WS2812, DATA_PIN, RGB>(leds, NUM_LEDS); 31 FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS); 32 // FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS); 33 // FastLED.addLeds<APA104, DATA_PIN, RGB>(leds, NUM_LEDS); 34 // FastLED.addLeds<UCS1903, DATA_PIN, RGB>(leds, NUM_LEDS); 35 // FastLED.addLeds<UCS1903B, DATA_PIN, RGB>(leds, NUM_LEDS); 36 // FastLED.addLeds<GW6205, DATA_PIN, RGB>(leds, NUM_LEDS); 37 // FastLED.addLeds<GW6205_400, DATA_PIN, RGB>(leds, NUM_LEDS); 38 39 // FastLED.addLeds<WS2801, RGB>(leds, NUM_LEDS); 40 // FastLED.addLeds<SM16716, RGB>(leds, NUM_LEDS); 41 // FastLED.addLeds<LPD8806, RGB>(leds, NUM_LEDS); 42 // FastLED.addLeds<P9813, RGB>(leds, NUM_LEDS); 43 // FastLED.addLeds<APA102, RGB>(leds, NUM_LEDS); 44 // FastLED.addLeds<DOTSTAR, RGB>(leds, NUM_LEDS); 45 46 // FastLED.addLeds<WS2801, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS); 47 // FastLED.addLeds<SM16716, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS); 48 // FastLED.addLeds<LPD8806, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS); 49 // FastLED.addLeds<P9813, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS); 50 // FastLED.addLeds<APA102, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS); 51 // FastLED.addLeds<DOTSTAR, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS); 52 Serial.begin(9600); 53 54 pinMode(TX_PIN, OUTPUT); 55 pinMode(RX_PIN, INPUT); 56} 57 58void loop() { 59 60} 61 62void serialEvent() { 63 pixelType = Serial.read(); 64 65 switch (pixelType) { 66 case 0: 67 //draw mode 68 while (!Serial.available()) {} 69 Serial.readBytes(drawIn, 4); 70 71 leds[drawIn[0]] = CRGB(drawIn[1], drawIn[2], drawIn[3]); 72 73 FastLED.show(); 74 Serial.flush(); 75 break; 76 77 case 1: 78 //clear mode 79 for (int i = 0; i < NUM_LEDS; i++) 80 { 81 leds[i] = CRGB::Black; 82 } 83 84 FastLED.show(); 85 Serial.flush(); 86 break; 87 88 case 2: 89 //frame in mode 90 while (!Serial.available()) {} 91 Serial.readBytes(frameIn, (NUM_LEDS * 3)); 92 for (int i = 0; i < NUM_LEDS; i++) 93 { 94 leds[i] = CRGB(frameIn[i * 3], frameIn[(i * 3) + 1], frameIn[(i * 3) + 2]); 95 } 96 97 FastLED.show(); 98 Serial.flush(); 99 break; 100 101 case 3: 102 while (!Serial.available()) {} 103 int brightnessLED = Serial.read(); 104 FastLED.setBrightness(brightnessLED); 105 Serial.flush(); 106 107 break; 108 } 109} 110 111 112 113 114 115 116 117 118 119 120 121
Software to control the shades
java
Click the .bat to run the software.
1inary file (no preview
Arduino Code
arduino
Code to manually control the LED's.
1#include "FastLED.h" 2 3// How many leds in your strip? 4#define NUM_LEDS 68 5 6byte pixelType = 0; 7byte drawIn[4]; 8byte frameIn[NUM_LEDS*3]; 9 10 11// For led chips like Neopixels, which have a data line, ground, and power, you just 12// need to define DATA_PIN. For led chipsets that are SPI based (four wires - data, clock, 13// ground, and power), like the LPD8806 define both DATA_PIN and CLOCK_PIN 14#define DATA_PIN 3 15//#define CLOCK_PIN 13 16 17// The bluetooth module pins 18#define RX_PIN 0 19#define TX_PIN 1 20 21// Define the array of leds 22CRGB leds[NUM_LEDS]; 23 24void setup() { 25 // Uncomment/edit one of the following lines for your leds arrangement. 26 // FastLED.addLeds<TM1803, DATA_PIN, RGB>(leds, NUM_LEDS); 27 // FastLED.addLeds<TM1804, DATA_PIN, RGB>(leds, NUM_LEDS); 28 // FastLED.addLeds<TM1809, DATA_PIN, RGB>(leds, NUM_LEDS); 29 // FastLED.addLeds<WS2811, DATA_PIN, RGB>(leds, NUM_LEDS); 30 // FastLED.addLeds<WS2812, DATA_PIN, RGB>(leds, NUM_LEDS); 31 FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS); 32 // FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS); 33 // FastLED.addLeds<APA104, DATA_PIN, RGB>(leds, NUM_LEDS); 34 // FastLED.addLeds<UCS1903, DATA_PIN, RGB>(leds, NUM_LEDS); 35 // FastLED.addLeds<UCS1903B, DATA_PIN, RGB>(leds, NUM_LEDS); 36 // FastLED.addLeds<GW6205, DATA_PIN, RGB>(leds, NUM_LEDS); 37 // FastLED.addLeds<GW6205_400, DATA_PIN, RGB>(leds, NUM_LEDS); 38 39 // FastLED.addLeds<WS2801, RGB>(leds, NUM_LEDS); 40 // FastLED.addLeds<SM16716, RGB>(leds, NUM_LEDS); 41 // FastLED.addLeds<LPD8806, RGB>(leds, NUM_LEDS); 42 // FastLED.addLeds<P9813, RGB>(leds, NUM_LEDS); 43 // FastLED.addLeds<APA102, RGB>(leds, NUM_LEDS); 44 // FastLED.addLeds<DOTSTAR, RGB>(leds, NUM_LEDS); 45 46 // FastLED.addLeds<WS2801, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS); 47 // FastLED.addLeds<SM16716, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS); 48 // FastLED.addLeds<LPD8806, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS); 49 // FastLED.addLeds<P9813, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS); 50 // FastLED.addLeds<APA102, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS); 51 // FastLED.addLeds<DOTSTAR, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS); 52 Serial.begin(9600); 53 54 pinMode(TX_PIN, OUTPUT); 55 pinMode(RX_PIN, INPUT); 56} 57 58void loop() { 59 60} 61 62void serialEvent() { 63 pixelType = Serial.read(); 64 65 switch (pixelType) { 66 case 0: 67 //draw mode 68 while (!Serial.available()) {} 69 Serial.readBytes(drawIn, 4); 70 71 leds[drawIn[0]] = CRGB(drawIn[1], drawIn[2], drawIn[3]); 72 73 FastLED.show(); 74 Serial.flush(); 75 break; 76 77 case 1: 78 //clear mode 79 for (int i = 0; i < NUM_LEDS; i++) 80 { 81 leds[i] = CRGB::Black; 82 } 83 84 FastLED.show(); 85 Serial.flush(); 86 break; 87 88 case 2: 89 //frame in mode 90 while (!Serial.available()) {} 91 Serial.readBytes(frameIn, (NUM_LEDS * 3)); 92 for (int i = 0; i < NUM_LEDS; i++) 93 { 94 leds[i] = CRGB(frameIn[i * 3], frameIn[(i * 3) + 1], frameIn[(i * 3) + 2]); 95 } 96 97 FastLED.show(); 98 Serial.flush(); 99 break; 100 101 case 3: 102 while (!Serial.available()) {} 103 int brightnessLED = Serial.read(); 104 FastLED.setBrightness(brightnessLED); 105 Serial.flush(); 106 107 break; 108 } 109} 110 111 112 113 114 115 116 117 118 119 120 121
Downloadable files
PCB Design
PCB Design
Schematics of the PCB
Schematics of the PCB
PCB Design
PCB Design
Schematics of the PCB
Schematics of the PCB
Comments
Only logged in users can leave comments
RGBFreak
0 Followers
•0 Projects
Table of contents
Intro
4
0