Hello, everyone! My name is Evelyne Breed. I’m a UMW student and sparkly things enthusiast. Thank you so much for taking a look at my very first blog post! I’m so excited to chronicle my adventures in the field of electronics with you. I hope you enjoy this post and follow along with the project! (Read on for a tiny tutorial on how to wire up your own sparkle lights!)
These past two weeks, I’ve thought a lot about my plan to install a series of panels of LED lights in the HCC that can illuminate in various colors and patterns. In order to communicate my ideas, I created a video that displayed some light effects I could do using hard-coded or WiFi-connected lights and listed the pros and cons for both. For the hard-coded lights, I used the Arduino IDE app, which uses a variant of the C++ coding language. The WiFi-connected lights are far easier to program. I used an app called XLights, which allows me to drag and drop effects as I please! As you’ll see in the video, the lights could look like rainbows of color, subtly fade between hues, or even flicker like fire.
Of course, I couldn’t just focus on the lights themselves. The lights need to be organized and attached to the HCC in some way. This week, I sketched a potential design for a panel that could be replicated and interlocked to create a long, skinny light matrix. My current idea is to line the upper railings in the HCC with these panels so that the lights run throughout the room. I’ve attached pictures of my initial sketches below.
Perhaps the most important part of planning a project is figuring out what you actually need to complete said project. My favorite lights to work with are RGB LEDs- that is, they light up in any color- and for this project, I plan to choose 12 volt lights. The reason why I’d choose 12 volt lights over 5 volt lights is that voltage can drop over long stretches of lights. If I use lights with a higher voltage, I can make the strand longer before I have to add in more power. If I decide to hard-code the lights, I would choose an Arduino that works with the IDE app. I’m familiar with the Elegoo Mega chip, so I would probably choose that one. Otherwise, I’ll have to do research into which WiFi-connectable chips are the most reliable for large amounts of lights. I’ve used an ESP8266 chip in the past to connect to WiFi, but it’s a rather finicky little thing and it sometimes fries itself for no apparent reason.
I’ve attached a list below with all of the components you’d need to create your own version of the hard-coded lights I used in my video. The lights link will take you to a place where you can purchase a 5v strand or a 12v strand of lights. The 5v strand can be powered by your computer, so I’d recommend using that one. I”ll also’ve also added some basic code to make your lights run through the colors of the rainbow, although in order to use it, you need to download the Arduino IDE app and the Adafruit NeoPixel library. In order to connect the chip to the lights, put one connector wire into the ground (GND) pin on the chip and put it in the GND side of the lights connector. Do the same with the voltage out (VOUT) pin on the chip and the voltage side of the connector. Lastly, use your third connector wire to connect pin 5 on the chip to the central port on the lights connector. That’s all there is to it!
- LED Strand on Amazon
- Controller (Arduino Elegoo Mega) on Amazon
- 3 small connector wires
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
#define PIN 5
#define NUMPIXELS 50
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
#define DELAYVAL 10
void setup() {
#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
clock_prescale_set(clock_div_1);
#endif
pixels.begin();
for(int i=0; i<NUMPIXELS; i++) {
pixels.setPixelColor(i, pixels.Color(0, 125, 255));
pixels.show();
}
}
void loop() {
//
//delay(DELAYVAL);
//
for(int i=0; i<NUMPIXELS; i++) {
pixels.setPixelColor(i, pixels.Color(0, 255, 0));
pixels.show();
delay(DELAYVAL);
}
for(int i=0; i<NUMPIXELS; i++) {
pixels.setPixelColor(i, pixels.Color(125, 255, 0));
pixels.show();
delay(DELAYVAL);
}
for(int i=0; i<NUMPIXELS; i++) {
pixels.setPixelColor(i, pixels.Color(255, 255, 0));
pixels.show();
delay(DELAYVAL);
}
for(int i=0; i<NUMPIXELS; i++) {
pixels.setPixelColor(i, pixels.Color(255, 0, 0));
pixels.show();
delay(DELAYVAL);
}
for(int i=0; i<NUMPIXELS; i++) {
pixels.setPixelColor(i, pixels.Color(0, 0, 255));
pixels.show();
delay(DELAYVAL);
}
for(int i=0; i<NUMPIXELS; i++) {
pixels.setPixelColor(i, pixels.Color(0, 125, 255));
pixels.show();
delay(DELAYVAL);
}