Announcements

November 24, 2007
Reading for November 27th, are now posted. Enjoy!

October 2, 2007
To upload your thoughtless acts, create a new assignment page like any other lab. You'll see "Thoughtless Acts" listed as one of the assignment options.

May 24, 2008
This site has been archived and is no longer editable. Stay tuned for the next version, coming in the fall!


Revision of 2 Pot, fade 3 leds and blink from Thu, 09/20/2007 - 00:25

Project Members: 
Ethan DeYoung

Description

One potentiometer cross fades 3 LEDs, red, green and blue. A second potentiometer controls the blinking of the LED with the smallest value (from the first pot). 

components Used


  • 3 - 220 ohm resistors
  • 3 LEDs (red, green, blue)
  • wiring
  • light bulb for the diffuser
  • 2 potentiometers
  • arduino board
  • breadboard  
Code 
 /** Modified code by Clay Shirky <clay.shirky@nyu.edu>for making one potentiometer * control 3 LEDs, red, grn and blue. Added support for a second potentiometer to * control the blinking of the LED with the smallest value. *///pot for fading colorsint potPin = 4; // pot to fade the LEDsint potVal = 0; // store the input from the pot//pot for blinkingint potPinBlink = 5; // pot to blink the LEDint potValBlink = 0; // store the input from the pot//LED placementint redPin = 9;   // Red LED,   connected to digital pin 9int grnPin = 10;  // Green LED, connected to digital pin 10int bluPin = 11;  // Blue LED,  connected to digital pin 11// Program variablesint redVal = 0;   // Variables to store the values to send to the pinsint grnVal = 0;int bluVal = 0;int DEBUG = 1;          // Set to 1 to turn on debugging outputvoid setup(){  pinMode(redPin, OUTPUT);   // sets the pins as output  pinMode(grnPin, OUTPUT);     pinMode(bluPin, OUTPUT);   if (DEBUG) {           // If we want to see the pin values for debugging...    Serial.begin(9600);  // ...set up the serial ouput in 0004 format  }}// Main programvoid loop(){  potVal = analogRead(potPin);   // read the potentiometer (Fade) value at the input pin  potValBlink = analogRead(potPinBlink);   // read the potentiometer (Blink) value at the input pin    if (potVal < 341)  // Lowest third of the potentiometer's range (0-340)  {                      potVal = (potVal * 3) / 4; // Normalize to 0-255    redVal = 256 - potVal;  // Red from full to off    grnVal = potVal;        // Green from off to full    bluVal = 1;             // Blue off        analogWrite(redPin, redVal);   // Write values to LED pins    analogWrite(grnPin, grnVal);     analogWrite(bluPin, bluVal);       delay(potValBlink);    analogWrite(redPin, 0);   // Write values to LED pins    analogWrite(grnPin, grnVal);     analogWrite(bluPin, bluVal);      delay(potValBlink);      }  else if (potVal < 682) // Middle third of potentiometer's range (341-681)  {    potVal = ( (potVal-341) * 3) / 4; // Normalize to 0-255    redVal = 1;            // Red off    grnVal = 256 - potVal; // Green from full to off    bluVal = potVal;       // Blue from off to full        analogWrite(redPin, redVal);   // Write values to LED pins    analogWrite(grnPin, grnVal);     analogWrite(bluPin, bluVal);       delay(potValBlink);    analogWrite(redPin, redVal);   // Write values to LED pins    analogWrite(grnPin, grnVal);     analogWrite(bluPin, 0);      delay(potValBlink);    }  else  // Upper third of potentiometer"s range (682-1023)  {    potVal = ( (potVal-683) * 3) / 4; // Normalize to 0-255    redVal = potVal;       // Red from off to full    grnVal = 1;            // Green off    bluVal = 256 - potVal; // Blue from full to off        analogWrite(redPin, redVal);   // Write values to LED pins    analogWrite(grnPin, grnVal);     analogWrite(bluPin, bluVal);       delay(potValBlink);    analogWrite(redPin, redVal);   // Write values to LED pins    analogWrite(grnPin, 0);     analogWrite(bluPin, bluVal);      delay(potValBlink);        }    //analogWrite(redPin, redVal);   // Write values to LED pins  //analogWrite(grnPin, grnVal);   //analogWrite(bluPin, bluVal);    if (DEBUG) { // If we want to read the output    DEBUG += 1;      // Increment the DEBUG counter    if (DEBUG > 100) // Print every hundred loops    {      DEBUG = 1;     // Reset the counter                             // Serial output using 0004-style functions      Serial.print("R:");    // Indicate that output is red value      Serial.print(redVal);  // Print red value      Serial.print("\t");    // Print a tab      Serial.print("G:");    // Repeat for grn and blu...      Serial.print(grnVal);      Serial.print("\t");          Serial.print("B:");          Serial.println(bluVal); // println, to end with a carriage return    }  }}

 

Images 

lab3_1lab3_1

lab3_2lab3_2 

 


Powered by Drupal - Design by Artinet