Description:
The goal of this lab was to explore analog input by learning to program the Arduino Uno to use potentiometers to control LEDs. In Part 1 of the lab assignment, wires were soldered to the correct locations on the potentiometer.
In Part 2, the circuit from the previous lab exercise was modified to include a potentiometer which then controlled either the brightness or the blinking rate of the LED. The sample code provided in the lab assignment was used.
In Part 3, the circuit was extended to include two potentiometers. The example code provided was used so that one pot controls the rate of blinking and the other pot control the brighness levels of the green LED. After completing this part of the lab, I modified the example code so that one pot controls the brightness of the blue LED and another controls the rate of blinking of the green LED. In the circuit, one pot was connected to input pin 3 of the Arduino and the other pot was connected to input pin 4.
Note: due to the limitation of colors of the wire, in the pictured circuit the green wire connects GND to the breadboard for the pots and the orange wire connects the 5V supply to the breadboard for the pots.
Components Used:
1 - Arduino Uno
1 - Breadboard
3 - 220-ohm Resistors
3 - LEDs
2 - Potentiometers
wires
Note: 3 resistors and 3 LEDs are listed. Although they were included in the circuit, only two of each was utilized by the Arduino.
Code:
/*
* one pot dims the blue LED, the other pot changes the blinking rate of the green LED
* The code in this lab is a modification of the following
* http://www.arduino.cc/en/Tutorial/AnalogInput
*/
int pot1Pin = 3; // select the input pin for the potentiometer 1
int pot2Pin = 4; // 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
analogWrite(led1Pin, pot1Val/4); // dim LED to value from pot1
digitalWrite(led2Pin, HIGH); // turn the led2Pin on
delay(pot2Val); // stop the program for some time
digitalWrite(led2Pin, LOW); // turn the ledPin off
delay(pot2Val); // stop the program for some time, meaning, LED is OFF for this time
}
- Login to post comments