User login

Powered by Drupal, an open source content management system

Theory and Practice of Tangible User Interfaces

[Lab3] Using multiple potentiometers to control LED output (Brightness & Blinking)

Submitted by sohyeong on Wed, 09/24/2008 - 23:30

Assignment: Sensing: Potentiometers

Collaborators:

Assignment: Sensing: Potentiometers 

Collaborators: sohyeong

LAB Description

In this lab, I have learned to how to solder wires to a Potentiometer (Pot).  Then, I explored that the Arduino to read pot values and control the multiple LEDs as a function of the pot, in exploring analog input.  In this lab, I have used 2 Pots in order to control the brightness and blinking of LEDs. 

I tried a diffuser to see how LEDs work in terms of brightness and blinking speed in various ways.

 

Components Used

  • 3 LEDs
  • 3 220 ohm resitors
  • 2 Potentiometers
  • Arduino board
  • Diffuser (I use a lotion cap)

Arduino code:

 

 

/*

* one pot dims, the other pot changes the blinking rate

* modification of the following

* http://www.arduino.cc/en/Tutorial/AnalogInput

*/

int pot1Pin = 3;   // select the input pin for the potentiometer 1

int pot2Pin = 2;   // select the input pin for the potentiometer 2

int pot1Val = 0;   // variable to store the value coming from pot 1

int pot2Val = 0;   // variable to store the value coming from pot 2

int led1Pin = 9;   // select the pin for the LED 1

int led2Pin = 11;  // select the pin for the LED 2

void setup() {

 pinMode(led1Pin, OUTPUT);  // declare the led1Pin as an OUTPUT

 pinMode(led2Pin, OUTPUT);  // declare the led2Pin as an OUTPUT

}

void loop() {

 pot1Val = analogRead(pot1Pin);   // read the value from pot 1, between 0 - 1024, for dimming

 pot2Val = analogRead(pot2Pin);   // read the value from pot 2, between 0 - 1024, for blinking

   //blinking

 analogWrite(led2Pin, 255); // dim LED to value from pot1

 delay(pot2Val);                  // stop the program for some time, meaning, LED is on for this time

 analogWrite(led2Pin, 0);         // dim LED to completely dark (zero)

 delay(pot2Val);                  // stop the program for some time, meaning, LED is OFF for this time

   //dimming

 analogWrite(led1Pin, pot1Val/4);

 

 

}