Student Lecture 3
Steve, Thai, Bruce – AnalogWrite, PWM, Fading LED’s, Multiple LED’s via PWM, Tri-Color LEDs, Cases, Switch Case, goto

int value = 0; // variable to keep the actual value
int pins[] = {9, 10, 11}; // light connected to digital pin 9
int numPins = 3;
void setup()
{
// nothing for setup
}
void loop()
{
int i;
for (i=0; i < numPins; i++)
{
for(value = 0 ; value = 0; j–)
{
for(value = 255; value >=0; value-=5) // fade out (from max to min)
{
analogWrite(pins[j], value);
delay(30);
}
}
}
// light connected to digital pin 9, 10, 11
int pins[] = {9, 10, 11};
void setup()
{
// nothing for setup
}
void loop()
{
// variable to keep the actual value
int value = 0;
//variables to check if fade in for a color is complete
int fadedIn1 = 0;
int fadedIn2 = 0;
int fadedIn3 = 0;
//variables to check if fade out for a color is complete
int fadedOut1 = 0;
int fadedOut2 = 0;
int fadedOut3 = 0;
//fade in blue
if (fadedIn1 != 1){
for(value = 255; value >=0; value-=5)
{
analogWrite(pins[1], value);
delay(60);
fadedIn1 = 1;
}
}
//fade in green
if (fadedIn2 != 1){
for(value = 255; value >=0; value-=5)
{
analogWrite(pins[0], value);
delay(60);
fadedIn2 = 1;
}
}
//fade in red
if (fadedIn3 != 1){
for(value = 255; value >=0; value-=5)
{
analogWrite(pins[2], value);
delay(60);
fadedIn3 = 1;
}
}
//fade out red
if (fadedOut1 != 1){
for(value = 0; value <=255; value+=5)
{
analogWrite(pins[2], value);
delay(60);
fadedOut1 = 1;
}
}
//fade out green
if (fadedOut2 != 1){
for(value = 0; value <=255; value+=5)
{
analogWrite(pins[0], value);
delay(60);
fadedOut2 = 1;
}
}
//fade out blue
if (fadedOut3 != 1){
for(value = 0; value <=255; value+=5)
{
analogWrite(pins[1], value);
delay(60);
fadedOut3 = 1;
}
}
}
Here is a short video of the Switch/Case circuit that was presented in class:
http://vimeo.com/moogaloop.swf?clip_id=3391872&server=vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1
Switch/Case with RGB LEDs from Steve Varga on Vimeo.
And here is the code:
int rLED=11;
int gLED=9;
int bLED=10;
int but1=4;
int but2=3;
int but3=2;
void setup() {
pinMode(rLED, OUTPUT);
pinMode(gLED, OUTPUT);
pinMode(bLED, OUTPUT);
pinMode(but1, INPUT);
pinMode(but2, INPUT);
pinMode(but3, INPUT);
resetLEDs();
}
void loop() {
int numPressed=0;
if(digitalRead(but1)==LOW) {
numPressed+=1;
}
if(digitalRead(but2)==LOW) {
numPressed+=1;
}
if(digitalRead(but3)==LOW) {
numPressed+=1;
}
Serial.println(numPressed);
switch(numPressed) {
case 1:
resetLEDs();
analogWrite(rLED,0);
break;
case 2:
resetLEDs();
analogWrite(gLED,0);
break;
case 3:
resetLEDs();
analogWrite(bLED,0);
break;
default:
resetLEDs();
}
}
void resetLEDs() {
analogWrite(rLED,255);
analogWrite(gLED,255);
analogWrite(bLED,255);
}
Reply