Digital I/O with Arduino Boards + Diffuser

Components
Bread board
Arduino
Diffuser: bottom of a plastic cup
Resistors

Description
Use the Arduino serial communication to control three light emitting diodes (red, green, and blue) via keyboard commands.
When user enter lowercase letter (r,g,b), value increases. When user enters uppercase letter (R,G,B), value decreases. When LED value reaches max, user will not be able to control LED with lowercase letters. Only decreasing can occur, meaing user must input uppercase letters. When LED value reaches min, user will not be able to control LED with uppercase letters. Only increasing can occur, meaing user must input lowercase letters.

Using a plastic cup wrapped in masking tape, I diffused the light being produced by RGB LEDs. The code would fade from color to color depending on what keys were typed. The letters of "qwerty" each represented a color of the rainbow.
Video: http://www.youtube.com/watch?v=GcCyi_XIGAU
My code for the qwerty rainbow: (other code same as sample code provided)

Summary:
Serial Control of LEDs with PWM using the Ardiuno Uno.
Command line inputs affect what is seen on the LEDs.
Command structure is "<colorCode>*", where "colorCode" is

This color-mixer accepts 3 types of inputs:
- '?' : random color
- r,g,b: RGB code, where r, g and b are numbers between 0 and 255. For example, yellow would be '255,255,0'
- 'r*g*b*': proportion of red, green and blue. For example, yellow would be 'rg'
It fades smoothly between colors (linear interpolation) and turns red whenever there is an error in the input string.

Description

Description