Description
In this lab, we used the variable resistance of potentiometers ("pots") to explore analog input and control the intensity and blinking of LEDs.
We first prepared our potentiometers and learned how to solder 3 wires to each pot (Black- Ground, Yellow- Analog, Red- 5V).
I decided to complete Option 1 for my homework. I added two potentiometers to my existing circuit from Lab 2; I connected the potentiometers via analog inputs 0 and 1. In addition, I modified given code (2b_OnePotControlsBrightnessOnePotControlsBlinking.txt) so that two potentiometers controlled my 3 LEDs. Swiveling the pot connected to A0 controlled brightness of my LEDs, while swiveling the pot connected to A1 affected their frequency of blinking (i.e. the delay between each individual LED blink).
Components
1- Arduino Uno
1- Breadboard
1- USB Cable
5- Jumper wires
3- 220 Ohm Resistors
3- LEDs (1 Red, 1 Blue, 1 Green)
2- Potentiometers
Code
/*
* Kristina Hart Lab 3
* one pot dims, the other pot changes the blinking rate
* modification of the following
* http://www.arduino.cc/en/Tutorial/AnalogInput
*/
int pot1Pin = 0; // select the input pin for the potentiometer 1
int pot2Pin = 1; // 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 = 10; // select the pin for the LED 2
int led3Pin= 11; // select the pin for the LED 3
void setup() {
pinMode(led1Pin, OUTPUT); // declare the led1Pin as an OUTPUT
pinMode(led2Pin, OUTPUT); // declare the led2Pin as an OUTPUT
pinMode(led3Pin, OUTPUT); // declare the led3Pin 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
analogWrite(led2Pin, pot1Val/4); // 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
analogWrite(led1Pin, pot1Val/4); // dim LED to value from pot1
delay(pot2Val); // stop the program for some time, meaning, LED is on for this time
analogWrite(led1Pin, 0); // dim LED to completely dark (zero)
delay(pot2Val); // stop the program for some time, meaning, LED is OFF for this time
analogWrite(led3Pin, pot1Val/4); // dim LED to value from pot1
delay(pot2Val); // stop the program for some time, meaning, LED is on for this time
analogWrite(led3Pin, 0); // dim LED to completely dark (zero)
delay(pot2Val); // stop the program for some time, meaning, LED is OFF for this time
}
- Login to post comments