This project was, effectively, my introduction to microcontrollers. I was rather short on time, though, for this (it was a Christmas present, after all), so I’ve had to wait until after the fact to write about it. So, this is a long post.
The idea is that, inside of a frosted plexiglass cube, there’s an accelerometer, a microcontroller, and a few RGB LEDs. As the cube is tilted, it glows different colors. Each axis from the 3-axis accelerometer controls the brightness of each color component in the LEDs. Prior to doing this, I hadn’t had any experience with microcontrollers beyond knowing what they are, so I had a fair amount to learn.
RGB Tilty Cube - [Link]
I took this project on as a present for my girlfriend, who, during the colder months, is more or less addicted to coffee/hot chocolate/tea. Her mug broke, and I was just going to get a new one for her birthday, but I wanted to add a little functionality to it. The new mug now senses and displays the relative temperature of its contents on a 10-LED blue bar display and has a rechargeable battery, which is charged through a 5.0V DC jack. Turned out pretty well, although it reacts a tad slow to temperature changes, as you can see in the video.
Coffee mug with temperature indicator – [Link]
The Atmel ATTiny85 chip is an 8-pin MCU that is totally awesome. If you’ve been programming with the bigger boys (the ATMega series), these are a nice adventure – you’re rather limited in the number of output pins, but a creative design gives us a lot of flexibility in a very small package.
Apple-style LED pulsing using a $1.30 MCU – [Link]
For 50 years, National has been known for its reliable, energy-efficient power management products. The company continues to bring this knowledge, experience, and manufacturing capability to help customers create better lighting designs. National’s LED drivers incorporate the intelligence that systems need to deliver high-performance, reliable, and robust LED lighting solutions to the market.
National’s New LED Lighting Solutions Guide – [Link]
This Stirling engine delivers 1W to a stepper motor used as generator to power a high-power LED. This engine uses electrical heating for simplicity and to simplify efficiency measurements. At 1.7% efficiency, it’s not a good way to power your lights! It’s only for research.
Stirling Engine Generates 1 Watt – [Link]
Here’s a MIDI keyboard interface project from SuLuLab. It uses an Arduino, MIDI Shield, addressable RGB LED strip based on chip HL1606, 5VDC 1.5A PSU for strip supply (USB port current is not enough), and the Arduino’s FastSPI_LED library. [via]
MIDI messages from the keyboard (real or simulated on PC) enter the MIDI Shield’s MIDI IN and are presented to the Arduino serial port. The Arduino firmware interprets the MIDI messages NoteOn NoteOff, associates each key on the five octaves (60 keys) keyboard to a strip LED and lights it with color associated with the note. In the firmware to control the strip we used the FastSPI_LED library that allows you to address every single LED and turn the desired color (R, G, B).
For more details and to download firmware see the SuLuLab website and scroll to bottom of page for English version.
Arduino MIDI RGB display interface – [Link]
rsdio writes: Although this circuit does not directly show how, you can use the same idea to make a 3.3 V tolerant I/O pin control an LED with a much higher voltage. The caveat is that all of the current still passes through the I/O pin, but at least you can control several LEDs in series to get more brightness without the necessary higher voltage posing a problem.
A Darlington transistor pair should allow the current to be increased beyond the I/O pin limits, thus breaking free from both voltage and current limits. The latter is left as an exercise well beyond the app note’s content. [via]
Although many LED-driver ICs operate at relatively low voltage, this application note shows how to operate the MAX6974 at higher voltage by adding a common-base-transistor level shifter, allowing it to drive multiple LEDs in series.
Control high-voltage LEDs with low-voltage pins - [Link]
This project is pretty cool for a few reasons, and driving a huge LED matrix with a single 8-bit controller is just one of them. The idea was born when I bought 120 LEDs of the wrong type, and decided to do something with them. With that many LEDs, there are only a few things you can do, and a matrix is the natural first-place-winner in the competition of those ideas. One of the LEDs did not work, so a 12×10 matrix was out, so I settled for an 11×10 matrix. This meant I had to drive 110 LEDs. The only controller I had free was a PIC16F688 with 11 pins that can be used for output. After deciding not to use any other chips, charlieplexing was the way to go. The maximum number of LEDs one can charlieplex using N pins is N * (N – 1), so for 11 pins that number is 110. What a coincidence!
One-chip 11×10 LED matrix – [Link]
uPOV is a persistence of vision device with an accelerometer. This is the same concept we’re trying for with the USB POV Toy. [via]
The problem I had with most of the current POV units is that they required skill to use effectively, timing your swings so that the message only goes in the one direction, appears in approximately the same spot, etc… So I decided to use an accelerometer in my design!
uPOV persistence of vision with an accelerometer - [Link]
TLC59108 I2C controlled LED driver. [via]
The TLC59108 is an I2C bus controlled 8-bit LED driver that is optimized for red/green/blue/amber (RGBA) color mixing and backlight application for amusement products. Each LED output has its own 8-bit resolution(256 steps) fixed-frequency individual PWM controller that operates at 97 kHz, with a duty cycle that is adjustable from 0% to 99.6%. The individual PWM controller allows each LED to be set to a specific brightness value. An additional 8-bit resolution (256 steps) group PWM controller has both a fixed frequency of 190 Hz and an adjustable frequency between 24 Hz to once every 10.73 seconds, with a duty cycle that is adjustable from 0%to 99.6%. The group PWM controller dims or blinks all LEDs with the same value.
TLC59108 simple 2-wire LED driver for color mixing – [Link]