Color Mixer [by Jenny]
http://vimeo.com/moogaloop.swf?clip_id=1878910&server=vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1
Color Mixer from Jennifer Dopazo on Vimeo.


::::::::::::::::::::::::::::::::::::::::::
/*
* This code has been modified from the Coffe Cup Color Mixer
* at http://arduino.cc/en/Tutorial/LEDColorMixerWith3Potentiometers
*/
// Setting up the analog pin with the potentiometer
int AnalogPot = 3; // potentiometer connected to pin 3
// Setting up the digital pins with the LEDs
int redLED = 9; // red LED connected to pin 9
int greenLED = 10; // green LED connected to pin 10
int yellowLED = 11; // yellow LED connected to pin 11
// Initial Values
int potVal = 0; // the variable to store the input from the potentiometer
int redVal = 0; // the variable to store the value of red LED
int greenVal = 0; // the variable to store the value of green LED
int yellowVal = 0; // the variable to store the value of yellow LED
// Variables for comparing values between loops
int i = 0; // Loop counter
int wait = (1000); // Delay between most recent pot adjustment and output
int sens = 3; // Sensitivity threshold, to prevent small changes in
// pot values from triggering false reporting
// FLAGS
int PRINT = 1; // Set to 1 to output values
void setup()
{
pinMode(redLED, OUTPUT); // sets the digital pins as output
pinMode(greenLED, OUTPUT);
pinMode(yellowLED, OUTPUT);
Serial.begin(9600); // Open serial communication for reporting
}
void loop()
{
i += 1; // Count loop
potVal = analogRead(AnalogPot); // read input pins, convert to 0-255 scale
if (potVal< 341)
{
potVal= (potVal* 3) / 4; //normalize to 0-255
redVal= 255-potVal;
greenVal= potVal;
yellowVal= 1; //yellow off
} //end of if
else if (potVal< 682)
{
potVal= ((potVal-341)*3) / 4; //normalize to 0-255
redVal= 1; //red off
greenVal= 255-potVal;
yellowVal= potVal;
} //end of else if
else
{
potVal= ((potVal-682)*3)/ 4; //normalize to 0-255
redVal= potVal;
greenVal= 1; //green off
yellowVal= 255-potVal;
} //end of else
analogWrite(redLED, redVal); // Send the new value to LEDs
analogWrite(greenLED, yellowVal);
analogWrite(yellowLED, greenVal);
if (i % wait == 0) // If enough time has passed...
{
if ( potVal > sens ) // If old and new values differ
// above sensitivity threshold
{
if (PRINT) // …and if the PRINT flag is set…
{
Serial.print("The value of potentiometer: "); // …then print the values.
Serial.print(potVal);
PRINT = 0;
}
}
else
{
PRINT = 1; // Re-set the flag
}
}
}
Reply