Here are some example of Parol Lanterns using LED lighting which are inexpensive and efficient (LED tutorial).
Six LED Arduino Parol Lights
I used an Arduino and an infra red receiver (TSOP4838) so the light sequences can be controlled with any TV remote.
I wired each LED to a header so the Arduino can easily be removed for programming. I also wired a battery pack to a jack for easy removal. The LEDs are wired to pins 3, 5, 6, 9, 10, and 11 since they have PWM (Pulse Width Modulation) and can control the brightness of the LEDs. I used 25 ohm resistors (since they were lying around). I’m not sure if that’s a good value but it seems to work and nothing gets warm. I think pin 3 and 11 PWM is disabled because of the IR receiver.
Below you can see the wiring. In retrospect I don’t need such a long wire harness. Also I think I will make a removable spoked plate that has all the electronics attached. Then the wiring can be fastened to a structure as they are soldered. I’ll need to add some features to the template as well as create a couple new parts for this.
Here is the code for the above video. I temporarily took the remote control out since I burned out my IR-RX (infra red receiver).
/* Parol Lantern Darcy Whyte, http://inventorArtist.com, darcy@inventorArtist.com 3(p9) 1(p5) 2(p6) 4(p10) 0(p3) 5(p11) */ //visualization int led[] = {3,5,6,9,10,11}; //pins 5-10 can fade, 3,11 in use by IR int ledN = 5; int brightness = 255; //speed int frameDelay = 200; int frameN = 4; int frame = 0; long lastFrame = 0; void setup() { Serial.begin(9600); for (int i = 0; i<=5;i++) { pinMode(led[i], OUTPUT); } } void loop() { //soft Serial.println("soft"); for (int j = 0;j<=3;j++){ for (int i = 0; i<=255;i++) { analogWrite(led[2], i); delay(7); } for (int i = 0; i<=255;i++) { analogWrite(led[2], 255-i); analogWrite(led[3], i); delay(7); } for (int i = 0; i<=255;i++) { analogWrite(led[3], 255-i); analogWrite(led[1], i); analogWrite(led[4], i); delay(7); } for (int i = 0; i<=255;i++) { analogWrite(led[1], 255-i); analogWrite(led[4], 255-i); analogWrite(led[0], i); analogWrite(led[5], i); delay(7); } for (int i = 0; i<=255;i++) { analogWrite(led[0], 255-i); analogWrite(led[5], 255-i); delay(7); } delay(4000); } //rotate Serial.println("rotate"); for (int j = 200;j>=20;j=j-15){ for (int i = 0; i<=1;i++) { analogWrite(led[0], 255); delay(j); analogWrite(led[0], 0); analogWrite(led[1], 255); delay(j); analogWrite(led[1], 0); analogWrite(led[3], 255); delay(j); analogWrite(led[3], 0); analogWrite(led[4], 255); delay(j); analogWrite(led[4], 0); analogWrite(led[5], 255); delay(j); analogWrite(led[5], 0); // delay(300); } } //supernova Serial.println("supernova"); for (int i = 0; i<=300;i++) { analogWrite(led[random(6)], random(200)); delay(10); //deviceKey = random(2047); } for (int i = 0; i<=5;i++) {analogWrite(led[i], 0);} delay(4000); //flicker Serial.println("flicker"); for (int i = 0; i<=10;i++) { for (int i = 0; i<=5;i++) {analogWrite(led[i], 255);} delay(50); for (int i = 0; i<=5;i++) {analogWrite(led[i], 0);} delay(50); } for (int i = 0; i<=5;i++) {analogWrite(led[i], 0);} delay(5000); }
Five LED Tiny
Here’s a very inexpensive method of getting five LEDs going! You can get these Tiny ATTINY85-20PU chips for lass than a dollar. Here is a tutorial on how to program them using the Arduino IDE and a breadboard. The breadboard can be replaced by this programmer.
The Tiny only has two PWM pins on it. That’s fine by me but apparently you can play around with it to get the same effect.
Here are a few pictures of one in action. Notice I figured out a better way to wire it using a cardboard plate. The plate holds everything in place for easy soldering and the tray is removable.
Here’s the Tiny code so far:
/* Blink Turns on an LED on for one second, then off for one second, repeatedly. This example code is in the public domain. */ int led[] = {0,1,2,3,4}; int ledN = 5; // the setup routine runs once when you press reset: void setup() { // initialize the digital pin as an output. for(int i = 0; i<ledN; i++) { pinMode(led[i], OUTPUT); } } void analogToPWM(int pin, int speed, String type){ if(type == "in"){ for(int fadeValue = 0; fadeValue <= 255; fadeValue++) { delayMicroseconds(10+fadeValue); // Approximately 10% duty cycle @ 1KHz digitalWrite(led[pin], LOW); delayMicroseconds(speed); digitalWrite(led[pin], HIGH); } digitalWrite(led[pin], LOW); } else{ for(int fadeValue = 255; fadeValue >= 0; fadeValue--) { digitalWrite(pin, HIGH); delayMicroseconds(10+fadeValue); // Approximately 10% duty cycle @ 1KHz digitalWrite(led[pin], LOW); delayMicroseconds(speed); } digitalWrite(led[pin], LOW); } } // the loop routine runs over and over again forever: void loop() { for(int i = 0; i<ledN; i++){ if(i == 2 || i == 3 || i == 4){ analogToPWM(led[i], 150, "in"); analogToPWM(led[i], 150, "out"); } else{ for (int j = 0; j<=255; j++) { analogWrite(led[i], j); delayMicroseconds(200); } analogWrite(led[i], 0); for (int j = 255; j>0; j--) { analogWrite(led[i], j); delayMicroseconds(200); } } } }
LED Strips
There are these cool LED Pixels and LED Strips. They contain shift registers and PWM hardware so you can control all the LEDs on the strip individually using just three lines. I’ve not tried this yet as I didn’t have any of the parts on hand (I only started the project at the end of November) but here are some links and tutorials:
LED Shelf Project
Arduino PWM Shift Library (Arduino Forum, Forum2)
Example using Shift Registers
Possible Supplier, Link2, Link3
Example in Arduino Forum
Shift Registers and PWM Chips
These are a great way to control lots of LEDs with a microcontroller such as Arduino.
TLC5940 (PWM)
TLC5951 (which was used on the Firefly project)
SN74HC595N Shift register
Simple Throwie Lighting
LED lights!
If that’s a little tricky for your taste here’s a simpler method. While looking for a part I came across a bag of goodies that was part of a swag bag from Sparkfun from World Makerfaire NYC. It turns out to be a kit to make throwies.
Feel free to have a look at this tutorial on how to make throwies.
I think that’s something to try especially since the people I’m doing this don’t know anything about electronics. So why not start with the simplest electronic project.
Throwies are easy. You take a “coin cell” and then put an LED against it. Presto! Instant light. You can tape them together and then attach them to your projects.
Thanks Sparkfun!
NoMi Lava Light
Another one I have floating around is this cool lava lamp. Michael the designer actually gave me one a while back to try out. I assembled it and it actually inspired me to go a little deeper into electronics and get a proper soldering iron and be more open to the assembly of electronics.
If you want one of these I’m pretty sure he is selling them at his site. They’re easy to make and give off lots of colorful light!