-A +A

 

Back to doing Some Arduino!

To do this at home, go here for instructions, under "Getting Started"

Blink
Blink
Blink
Blink
Blink
Blink
Blink
Blink
Blink
Blink

  • Install and get running the Blink program
    • Under: File > Sketchbook > Examples > Digital > Blink
  • Advanced Task: Create this LED sequencer
  • int ledAPin = 7;
    int ledBPin = 6;
    int ledCPin = 5;
    
    void setup()
    {
      pinMode(ledAPin, OUTPUT);
      pinMode(ledBPin, OUTPUT);
      pinMode(ledCPin, OUTPUT);
    }
    
    void loop()
    {
        digitalWrite(ledAPin, HIGH);
        digitalWrite(ledBPin, LOW);
        delay(1000);
        digitalWrite(ledAPin, LOW);
        digitalWrite(ledBPin, HIGH);
        delay(1000);
        
        digitalWrite(ledCPin, HIGH);
        delay(100);
        digitalWrite(ledCPin, LOW);
        delay(100);
        digitalWrite(ledCPin, HIGH);
        delay(100);
        digitalWrite(ledCPin, LOW);
        delay(100);
    }
    				

LED Sequencing on the Arduino

Today's examples are available here

Here are a couple of LED resistor calculators:

But for most of our LEDs, which are 1.8 volts (called forward voltage) and the Arduino's 5v power, and a typical amperage for the LED of between 20-30 miliamps, a resistor between 120 and 220 ohm will do nicely. Larger resistors will lead to dimmer LEDs, smaller will cause the LED to overheat and sometimes literally burst.

Arduino Example Code

Cut'n Paste or Download Examples

BIG TEXT | SMALL TEXT

Download playing_with_leds_01.txt file

/* Playing with LEDs 01
*  Light up several LEDs
*/

// Set variables for the pins which will be connected to the LEDs
int ledPin1 = 13;
int ledPin2 = 12;
int ledPin3 = 11;
int ledPin4 = 10;
int ledPin5 = 9;
int ledPin6 = 8;
int ledPin7 = 7;
int ledPin8 = 6;
int ledPin9 = 5;
int ledPin10 =4;

// setup() is required by the Arduino. 
// This setup() sets the pin modes on the Arduino so they will output 
// some voltage when we tell them to
void setup()
{
 pinMode(ledPin1, OUTPUT); // pinMode() is a command for the Arduino
 pinMode(ledPin2, OUTPUT); // it takes two arguments, the first to specify which pin
 pinMode(ledPin3, OUTPUT); // and the second to specify whether that pin is going to
 pinMode(ledPin4, OUTPUT); // OUTPUT voltage or look for INPUT.
 pinMode(ledPin5, OUTPUT);
 pinMode(ledPin6, OUTPUT);
 pinMode(ledPin7, OUTPUT);
 pinMode(ledPin8, OUTPUT);
 pinMode(ledPin9, OUTPUT);
 pinMode(ledPin10, OUTPUT);
}

// loop() is required by the Arduino.
// This loop will turn on the ten LED's then turn them off
void loop()
{
 // Turn on LEDs
 digitalWrite(ledPin1, HIGH); // digitalWrite() is a command for the Arduino
 delay(1000);                 // it takes two arguments, the first to specify which pin
 digitalWrite(ledPin2, HIGH); // and the second to specify whether the pin is outputing
 delay(1000);                 // voltage (HIGH) or no voltage (LOW).
 digitalWrite(ledPin3, HIGH);
 delay(1000);
 digitalWrite(ledPin4, HIGH);
 delay(1000);
 digitalWrite(ledPin5, HIGH);
 delay(1000);
 digitalWrite(ledPin6, HIGH);
 delay(1000);
 digitalWrite(ledPin7, HIGH);
 delay(1000);
 digitalWrite(ledPin8, HIGH);
 delay(1000);
 digitalWrite(ledPin9, HIGH);
 delay(1000);
 digitalWrite(ledPin10, HIGH);
 delay(1000);
 // Turn off LEDs
 digitalWrite(ledPin1, LOW);
 delay(1000);
 digitalWrite(ledPin2, LOW);
 delay(1000);
 digitalWrite(ledPin3, LOW);
 delay(1000);
 digitalWrite(ledPin4, LOW);
 delay(1000);
 digitalWrite(ledPin5, LOW);
 delay(1000);
 digitalWrite(ledPin6, LOW);
 delay(1000);
 digitalWrite(ledPin7, LOW);
 delay(1000);
 digitalWrite(ledPin8, LOW);
 delay(1000);
 digitalWrite(ledPin9, LOW);
 delay(1000);
 digitalWrite(ledPin10, LOW);
 delay(1000);
}
					

BIG TEXT | SMALL TEXT

Download playing_with_leds_02.txt file

/* Playing with LEDs 02
*  Light up several LEDs
*  Add variable for delay
*/

// Set variables 
int ledPin1 = 13;
int ledPin2 = 12;
int ledPin3 = 11;
int ledPin4 = 10;
int ledPin5 = 9;
int ledPin6 = 8;
int ledPin7 = 7;
int ledPin8 = 6;
int ledPin9 = 5;
int ledPin10 =4;
// Add a variable to hold the delay time
int myDelay = 50;

// Setup 
void setup()
{
 pinMode(ledPin1, OUTPUT);
 pinMode(ledPin2, OUTPUT);
 pinMode(ledPin3, OUTPUT);
 pinMode(ledPin4, OUTPUT);
 pinMode(ledPin5, OUTPUT);
 pinMode(ledPin6, OUTPUT);
 pinMode(ledPin7, OUTPUT);
 pinMode(ledPin8, OUTPUT);
 pinMode(ledPin9, OUTPUT);
 pinMode(ledPin10, OUTPUT);
}

// Loop
void loop()
{
 digitalWrite(ledPin1, HIGH);
 delay(myDelay);              //use myDelay instead of a number. Easier to change!
 digitalWrite(ledPin2, HIGH);
 delay(myDelay);
 digitalWrite(ledPin3, HIGH);
 delay(myDelay);
 digitalWrite(ledPin4, HIGH);
 delay(myDelay);
 digitalWrite(ledPin5, HIGH);
 delay(myDelay);
 digitalWrite(ledPin6, HIGH);
 delay(myDelay);
 digitalWrite(ledPin7, HIGH);
 delay(myDelay);
 digitalWrite(ledPin8, HIGH);
 delay(myDelay);
 digitalWrite(ledPin9, HIGH);
 delay(myDelay);
 digitalWrite(ledPin10, HIGH);
 delay(myDelay);
 digitalWrite(ledPin1, LOW);
 delay(myDelay);
 digitalWrite(ledPin2, LOW);
 delay(myDelay);
 digitalWrite(ledPin3, LOW);
 delay(myDelay);
 digitalWrite(ledPin4, LOW);
 delay(myDelay);
 digitalWrite(ledPin5, LOW);
 delay(myDelay);
 digitalWrite(ledPin6, LOW);
 delay(myDelay);
 digitalWrite(ledPin7, LOW);
 delay(myDelay);
 digitalWrite(ledPin8, LOW);
 delay(myDelay);
 digitalWrite(ledPin9, LOW);
 delay(myDelay);
 digitalWrite(ledPin10, LOW);
 delay(myDelay);

}
					

BIG TEXT | SMALL TEXT

Download playing_with_leds_03.txt file

/* Playing with LEDs 03
*  Light up several LEDs
*  Add delay
*  Add fancy sequencing, hardcoded
*/

// Set variables 
int ledPin1 = 13;
int ledPin2 = 12;
int ledPin3 = 11;
int ledPin4 = 10;
int ledPin5 = 9;
int ledPin6 = 8;
int ledPin7 = 7;
int ledPin8 = 6;
int ledPin9 = 5;
int ledPin10 =4;
int myDelay = 50;

// Setup 
void setup()
{
 pinMode(ledPin1, OUTPUT);
 pinMode(ledPin2, OUTPUT);
 pinMode(ledPin3, OUTPUT);
 pinMode(ledPin4, OUTPUT);
 pinMode(ledPin5, OUTPUT);
 pinMode(ledPin6, OUTPUT);
 pinMode(ledPin7, OUTPUT);
 pinMode(ledPin8, OUTPUT);
 pinMode(ledPin9, OUTPUT);
 pinMode(ledPin10, OUTPUT);
}

// Loop 
void loop()
{
 // --------------------------- Turn row on 
 digitalWrite(ledPin1, HIGH);
 delay(myDelay);
 digitalWrite(ledPin2, HIGH);
 delay(myDelay);
 digitalWrite(ledPin3, HIGH);
 delay(myDelay);
 digitalWrite(ledPin4, HIGH);
 delay(myDelay);
 digitalWrite(ledPin5, HIGH);
 delay(myDelay);
 digitalWrite(ledPin6, HIGH);
 delay(myDelay);
 digitalWrite(ledPin7, HIGH);
 delay(myDelay);
 digitalWrite(ledPin8, HIGH);
 delay(myDelay);
 digitalWrite(ledPin9, HIGH);
 delay(myDelay);
 digitalWrite(ledPin10, HIGH);
 delay(myDelay);
 // ---------------------------  Turn row off
 digitalWrite(ledPin1, LOW);
 delay(myDelay);
 digitalWrite(ledPin2, LOW);
 delay(myDelay);
 digitalWrite(ledPin3, LOW);
 delay(myDelay);
 digitalWrite(ledPin4, LOW);
 delay(myDelay);
 digitalWrite(ledPin5, LOW);
 delay(myDelay);
 digitalWrite(ledPin6, LOW);
 delay(myDelay);
 digitalWrite(ledPin7, LOW);
 delay(myDelay);
 digitalWrite(ledPin8, LOW);
 delay(myDelay);
 digitalWrite(ledPin9, LOW);
 delay(myDelay);
 digitalWrite(ledPin10, LOW);
 delay(myDelay);
 // Turn on in reverse
 digitalWrite(ledPin10, HIGH);
 delay(myDelay);
 digitalWrite(ledPin9, HIGH);
 delay(myDelay);
 digitalWrite(ledPin8, HIGH);
 delay(myDelay);
 digitalWrite(ledPin7, HIGH);
 delay(myDelay);
 digitalWrite(ledPin6, HIGH);
 delay(myDelay);
 digitalWrite(ledPin5, HIGH);
 delay(myDelay);
 digitalWrite(ledPin4, HIGH);
 delay(myDelay);
 digitalWrite(ledPin3, HIGH);
 delay(myDelay);
 digitalWrite(ledPin2, HIGH);
 delay(myDelay);
 digitalWrite(ledPin1, HIGH);
 delay(myDelay);
 // --------------------------- Turn off in reverse
 digitalWrite(ledPin10, LOW);
 delay(myDelay);
 digitalWrite(ledPin9, LOW);
 delay(myDelay);
 digitalWrite(ledPin8, LOW);
 delay(myDelay);
 digitalWrite(ledPin7, LOW);
 delay(myDelay);
 digitalWrite(ledPin6, LOW);
 delay(myDelay);
 digitalWrite(ledPin5, LOW);
 delay(myDelay);
 digitalWrite(ledPin4, LOW);
 delay(myDelay);
 digitalWrite(ledPin3, LOW);
 delay(myDelay);
 digitalWrite(ledPin2, LOW);
 delay(myDelay);
 digitalWrite(ledPin1, LOW);
 delay(myDelay);
 // --------------------------- Turn on inside out
 digitalWrite(ledPin5, HIGH);
 digitalWrite(ledPin6, HIGH);
 delay(myDelay);
 digitalWrite(ledPin4, HIGH);
 digitalWrite(ledPin7, HIGH);
 delay(myDelay);
 digitalWrite(ledPin8, HIGH);
 digitalWrite(ledPin3, HIGH);
 delay(myDelay);
 digitalWrite(ledPin9, HIGH);
 digitalWrite(ledPin2, HIGH);
 delay(myDelay);
 digitalWrite(ledPin10, HIGH);
 digitalWrite(ledPin1, HIGH);
 delay(myDelay);
 // --------------------------- Turn off outside in
 digitalWrite(ledPin10, LOW);
 digitalWrite(ledPin1, LOW);
 delay(myDelay);
 digitalWrite(ledPin9, LOW);
 digitalWrite(ledPin2, LOW);
 delay(myDelay);
 digitalWrite(ledPin8, LOW);
 digitalWrite(ledPin3, LOW);
 delay(myDelay);
 digitalWrite(ledPin7, LOW);
 digitalWrite(ledPin4, LOW);
 delay(myDelay);
 digitalWrite(ledPin6, LOW);
 digitalWrite(ledPin5, LOW);
 delay(myDelay);
}
					

BIG TEXT | SMALL TEXT

Download playing_with_leds_04.txt file

/* Playing with LEDs 04
*  Light up several LEDs
*  Add delay
*  Fancy sequencing, hardcoded
*  Do some repeat loops with a "for" statement
*/

// Set variables
int ledPin1 = 13;
int ledPin2 = 12;
int ledPin3 = 11;
int ledPin4 = 10;
int ledPin5 = 9;
int ledPin6 = 8;
int ledPin7 = 7;
int ledPin8 = 6;
int ledPin9 = 5;
int ledPin10 =4;
int myDelay = 50;

// Setup
void setup()
{
 pinMode(ledPin1, OUTPUT);
 pinMode(ledPin2, OUTPUT);
 pinMode(ledPin3, OUTPUT);
 pinMode(ledPin4, OUTPUT);
 pinMode(ledPin5, OUTPUT);
 pinMode(ledPin6, OUTPUT);
 pinMode(ledPin7, OUTPUT);
 pinMode(ledPin8, OUTPUT);
 pinMode(ledPin9, OUTPUT);
 pinMode(ledPin10, OUTPUT);
}

// Loop 
void loop()
{
 // --------------------------- Turn row on 
 digitalWrite(ledPin1, HIGH);
 delay(myDelay);
 digitalWrite(ledPin2, HIGH);
 delay(myDelay);
 digitalWrite(ledPin3, HIGH);
 delay(myDelay);
 digitalWrite(ledPin4, HIGH);
 delay(myDelay);
 digitalWrite(ledPin5, HIGH);
 delay(myDelay);
 digitalWrite(ledPin6, HIGH);
 delay(myDelay);
 digitalWrite(ledPin7, HIGH);
 delay(myDelay);
 digitalWrite(ledPin8, HIGH);
 delay(myDelay);
 digitalWrite(ledPin9, HIGH);
 delay(myDelay);
 digitalWrite(ledPin10, HIGH);
 delay(myDelay);
 // --------------------------- Turn row off
 digitalWrite(ledPin1, LOW);
 delay(myDelay);
 digitalWrite(ledPin2, LOW);
 delay(myDelay);
 digitalWrite(ledPin3, LOW);
 delay(myDelay);
 digitalWrite(ledPin4, LOW);
 delay(myDelay);
 digitalWrite(ledPin5, LOW);
 delay(myDelay);
 digitalWrite(ledPin6, LOW);
 delay(myDelay);
 digitalWrite(ledPin7, LOW);
 delay(myDelay);
 digitalWrite(ledPin8, LOW);
 delay(myDelay);
 digitalWrite(ledPin9, LOW);
 delay(myDelay);
 digitalWrite(ledPin10, LOW);
 delay(myDelay);
 // --------------------------- Turn on in reverse
 digitalWrite(ledPin10, HIGH);
 delay(myDelay);
 digitalWrite(ledPin9, HIGH);
 delay(myDelay);
 digitalWrite(ledPin8, HIGH);
 delay(myDelay);
 digitalWrite(ledPin7, HIGH);
 delay(myDelay);
 digitalWrite(ledPin6, HIGH);
 delay(myDelay);
 digitalWrite(ledPin5, HIGH);
 delay(myDelay);
 digitalWrite(ledPin4, HIGH);
 delay(myDelay);
 digitalWrite(ledPin3, HIGH);
 delay(myDelay);
 digitalWrite(ledPin2, HIGH);
 delay(myDelay);
 digitalWrite(ledPin1, HIGH);
 delay(myDelay);
 // --------------------------- Turn off in reverse
 digitalWrite(ledPin10, LOW);
 delay(myDelay);
 digitalWrite(ledPin9, LOW);
 delay(myDelay);
 digitalWrite(ledPin8, LOW);
 delay(myDelay);
 digitalWrite(ledPin7, LOW);
 delay(myDelay);
 digitalWrite(ledPin6, LOW);
 delay(myDelay);
 digitalWrite(ledPin5, LOW);
 delay(myDelay);
 digitalWrite(ledPin4, LOW);
 delay(myDelay);
 digitalWrite(ledPin3, LOW);
 delay(myDelay);
 digitalWrite(ledPin2, LOW);
 delay(myDelay);
 digitalWrite(ledPin1, LOW);
 delay(myDelay);
 // ------------------------------- Use a "for" loop to turn on
 // ------------------------------- LEDs in a pattern 6 times in 
 // ------------------------------- a row.
 for(int i=0; i<6; i=i+1) {
   // --------------------------- Turn on inside out
   digitalWrite(ledPin5, HIGH);
   digitalWrite(ledPin6, HIGH);
   delay(myDelay);
   digitalWrite(ledPin4, HIGH);
   digitalWrite(ledPin7, HIGH);
   delay(myDelay);
   digitalWrite(ledPin8, HIGH);
   digitalWrite(ledPin3, HIGH);
   delay(myDelay);
   digitalWrite(ledPin9, HIGH);
   digitalWrite(ledPin2, HIGH);
   delay(myDelay);
   digitalWrite(ledPin10, HIGH);
   digitalWrite(ledPin1, HIGH);
   delay(myDelay);
   // --------------------------- Turn off outside in
   digitalWrite(ledPin10, LOW);
   digitalWrite(ledPin1, LOW);
   delay(myDelay);
   digitalWrite(ledPin9, LOW);
   digitalWrite(ledPin2, LOW);
   delay(myDelay);
   digitalWrite(ledPin8, LOW);
   digitalWrite(ledPin3, LOW);
   delay(myDelay);
   digitalWrite(ledPin7, LOW);
   digitalWrite(ledPin4, LOW);
   delay(myDelay);
   digitalWrite(ledPin6, LOW);
   digitalWrite(ledPin5, LOW);
   delay(myDelay);
 }
 // ------------------------------- Use another "for" loop to turn
 // ------------------------------- on LEDs in a pattern 6 times in 
 // ------------------------------- a row.
  for(int i=0; i<6; i=i+1) {
   // --------------------------- Turn on outside in
   digitalWrite(ledPin10, HIGH);
   digitalWrite(ledPin1, HIGH);
   delay(myDelay);
   digitalWrite(ledPin9, HIGH);
   digitalWrite(ledPin2, HIGH);
   delay(myDelay);
   digitalWrite(ledPin8, HIGH);
   digitalWrite(ledPin3, HIGH);
   delay(myDelay);
   digitalWrite(ledPin7, HIGH);
   digitalWrite(ledPin4, HIGH);
   delay(myDelay);
   digitalWrite(ledPin6, HIGH);
   digitalWrite(ledPin5, HIGH);
   delay(myDelay);
   // --------------------------- Turn off outside in
   digitalWrite(ledPin6, LOW);
   digitalWrite(ledPin5, LOW);
   delay(myDelay);
   digitalWrite(ledPin7, LOW);
   digitalWrite(ledPin4, LOW);
   delay(myDelay);
   digitalWrite(ledPin8, LOW);
   digitalWrite(ledPin3, LOW);
   delay(myDelay);
   digitalWrite(ledPin9, LOW);
   digitalWrite(ledPin2, LOW);
   delay(myDelay);
   digitalWrite(ledPin10, LOW);
   digitalWrite(ledPin1, LOW);
   delay(myDelay);
 }
}
					

BIG TEXT | SMALL TEXT

Download swipe_hi.txt file

/* Eye-swipe HI
*     Setup 6 LEDs in a row and wave back and forth
*     to see the word HI spelled out
*/ 
// Set variables 
int ledPin1 = 13;
int ledPin2 = 12;
int ledPin3 = 11;
int ledPin4 = 10;
int ledPin5 = 9;
int ledPin6 = 8;
int myDelay = 15;

// Setup
void setup() 
{
  pinMode(ledPin1, OUTPUT);
  pinMode(ledPin2, OUTPUT);
  pinMode(ledPin3, OUTPUT);
  pinMode(ledPin4, OUTPUT);
  pinMode(ledPin5, OUTPUT);
  pinMode(ledPin6, OUTPUT);
}

// Loop
void loop() 
{
  // -------------------------- H
  //H - column 1
  digitalWrite(ledPin1, HIGH);
  digitalWrite(ledPin2, HIGH);
  digitalWrite(ledPin3, HIGH);
  digitalWrite(ledPin4, HIGH);
  digitalWrite(ledPin5, HIGH);
  digitalWrite(ledPin6, HIGH);
  delay(myDelay);
  //H - column 2
  digitalWrite(ledPin1, LOW);
  digitalWrite(ledPin2, LOW);
  digitalWrite(ledPin3, LOW);
  digitalWrite(ledPin4, HIGH);
  digitalWrite(ledPin5, LOW);
  digitalWrite(ledPin6, LOW);
  delay(myDelay);
  //H - column 3
  digitalWrite(ledPin1, HIGH);
  digitalWrite(ledPin2, HIGH);
  digitalWrite(ledPin3, HIGH);
  digitalWrite(ledPin4, HIGH);
  digitalWrite(ledPin5, HIGH);
  digitalWrite(ledPin6, HIGH);
  delay(myDelay);
  // -------------------------- Space
  digitalWrite(ledPin1, LOW);
  digitalWrite(ledPin2, LOW);
  digitalWrite(ledPin3, LOW);
  digitalWrite(ledPin4, LOW);
  digitalWrite(ledPin5, LOW);
  digitalWrite(ledPin6, LOW);
  delay(myDelay);
  // -------------------------- I
  // I column 1
  digitalWrite(ledPin1, HIGH);
  digitalWrite(ledPin2, LOW);
  digitalWrite(ledPin3, LOW);
  digitalWrite(ledPin4, LOW);
  digitalWrite(ledPin5, LOW);
  digitalWrite(ledPin6, HIGH);
  delay(myDelay);
  //I column 2
  digitalWrite(ledPin1, HIGH);
  digitalWrite(ledPin2, HIGH);
  digitalWrite(ledPin3, HIGH);
  digitalWrite(ledPin4, HIGH);
  digitalWrite(ledPin5, HIGH);
  digitalWrite(ledPin6, HIGH);
  delay(myDelay);
  // I column 3
  digitalWrite(ledPin1, HIGH);
  digitalWrite(ledPin2, LOW);
  digitalWrite(ledPin3, LOW);
  digitalWrite(ledPin4, LOW);
  digitalWrite(ledPin5, LOW);
  digitalWrite(ledPin6, HIGH);
  delay(myDelay);
  // -------------------------- Space
  digitalWrite(ledPin1, LOW);
  digitalWrite(ledPin2, LOW);
  digitalWrite(ledPin3, LOW);
  digitalWrite(ledPin4, LOW);
  digitalWrite(ledPin5, LOW);
  digitalWrite(ledPin6, LOW);
  // -------------------------- Extended delay
  // -------------------------- before looping
  delay(myDelay*10);
}
					

BIG TEXT | SMALL TEXT

Download led_pwm01.txt file

/* Variable Brightness LEDs
*  Done with three of Arduino's Pulse Width Modulation (PWM)
*  pins (9,10,11)
*/

// Set three pin variables for the three PWM pins
int pwmPin1 = 11;
int pwmPin2 = 10;
int pwmPin3 = 9;
// Set a variable for the intial value for the PWM
int pwmVal1 = 0;
int pwmVal2 = 0;
int pwmVal3 = 0;

// Setup
// Set PWM pins to OUTPUT
void setup() 
{
  pinMode(pwmPin1, OUTPUT);
  pinMode(pwmPin2, OUTPUT);
  pinMode(pwmPin3, OUTPUT);
}

// Loop
void loop() 
{
  // analogWrite's range runs from 0 to 255, so when any of 
  // our values reaches maximum, reset it to 0
  if(pwmVal1 >= 255) {
    pwmVal1 = 0;
  }
  if(pwmVal2 >= 255) {
    pwmVal2 = 0;
  }
  if(pwmVal3 >= 255) {
    pwmVal3 = 0;
  }
  // Set the first PWM pin to pwmVal1
  analogWrite(pwmPin1,pwmVal1);
  // Increment pwmVal1 by 1
  pwmVal1=pwmVal1+1;
  // Same as before...
  analogWrite(pwmPin2,pwmVal2);
  // ... but increment pwmVal2 by 5 instead of 1
  pwmVal2=pwmVal2+5;
  // Same as before...
  analogWrite(pwmPin3,pwmVal3);
  // ... but increment pwmVal3 by 10 instead of 1 or 5
  pwmVal3=pwmVal3+10;
  // Put in a short delay to see the effect
  delay(10);
}
					

BIG TEXT | SMALL TEXT

Download led_pwm02.txt file

/* Variable Brightness LEDs 2
*  Done with three of Arduino's Pulse Width Modulation (PWM)
*  pins (9,10,11)
*  This time we'll use a direction changing variable to
*  change whether the pwmVal's will go up or down in the Loop
*/

// Set three pin variables for the three PWM pins
int pwmPin1 = 11;
int pwmPin2 = 10;
int pwmPin3 = 9;
// Set a variable for the intial value for the PWM
int pwmVal1 = 0;
int pwmVal2 = 0;
int pwmVal3 = 0;
// Set a variable for the inital direction (increment or decrement) for the PWM
// A value of 1 will increment pwmVal's and a value of -1 will decrement pwmVal's.
int upDown1 = 1;
int upDown2 = 1;
int upDown3 = 1;

// Setup
// Set PWM's to OUTPUT
void setup() 
{
  pinMode(pwmPin1, OUTPUT);
  pinMode(pwmPin2, OUTPUT);
  pinMode(pwmPin3, OUTPUT);
}

//Loop
void loop() 
{
  // analogWrite's range runs from 0 to 255, so when any of 
  // our values reaches maximum, instead of reseting it to 0
  // we'll change the variable upDown to -1. This will cause
  // pwmVal's to get smaller instead of bigger.
  if(pwmVal1 >= 255) {
    upDown1 = -1;
  }
  // Conversely, when it reaches a minimum (0), set the upDown to 1.
  // This will cause pwmVal's to get bigger instead of smaller.
  if(pwmVal1 <= 0) {
    upDown1 = 1;
  }
  // Same process for all pwmVal's (pwmVal2, pwmVal3)
  if(pwmVal2 >= 255) {
    upDown2 = -1;
  }
  if(pwmVal2 <= 0) {
    upDown2 = 1;
  }
  if(pwmVal3 >= 255) {
    upDown3 = -1;
  }
  if(pwmVal3 <= 0) {
    upDown3 = 1;
  }
  // Now set the pwmPins...
  analogWrite(pwmPin1,pwmVal1);
  // ... and depending on whether upDown is 1 or -1, increment
  // or decrement pwmVal's 
  pwmVal1 = pwmVal1 + (1 * upDown1);
  analogWrite(pwmPin2,pwmVal2);
  pwmVal2 = pwmVal2 + (5 * upDown2);
  analogWrite(pwmPin3,pwmVal3);
  pwmVal3 = pwmVal3 + (10 * upDown3);
  // Delay a bit before looping
  delay(10);
}