Assignment 2.1
Post date: Jun 23, 2010 7:42:11 PM
Hopefully this craziness will make up for my ostensible lack of punctuality.
/*
Blink Modified With Patterns
Repeatedly blinks leds in a group of 6 in 5 predefined patterns
Original Created 1 June 2005
By David Cuartielles
Modified 23 June 2010
By Joseph Constan
*/
#define led1 13 //replace all instances of "led#" with their respective pin #s
#define led2 12 //(more economical in terms of memory than int declarations)
#define led3 11
#define led4 10
#define led5 9
#define led6 8
// The setup() method runs once, when the sketch starts
void setup() {
// initialize the digital pins 1-6 as an output:
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
}
/*this light pattern will blink all leds on and off
for a number of times (int repetitions) at a given speed (int intervalLength)*/
void patternAllBlink(int repetitions, int intervalLength)
{
for(int i=0; i < repetitions; i++) {
//set all leds on
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
//wait for number of miliseconds in argument "intervalLength"
delay(intervalLength);
//set all leds off
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
//wait for number of miliseconds in argument "intervalLength"
delay(intervalLength);
}
}
/*this light pattern blink odds on and evens off, and vice versa,
for a number of times (int repetitions) at a given speed (int intervalLength)*/
void patternAlternateOddsEvens(int repetitions, int intervalLength)
{
for(int i=0; i < repetitions; i++) {
//set all odd leds on
digitalWrite(led1, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led5, HIGH);
//set all even leds off
digitalWrite(led2, LOW);
digitalWrite(led4, LOW);
digitalWrite(led6, LOW);
//wait for number of miliseconds in argument "intervalLength"
delay(intervalLength);
//set all odd leds off
digitalWrite(led1, LOW);
digitalWrite(led3, LOW);
digitalWrite(led5, LOW);
//set all even leds on
digitalWrite(led2, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led6, HIGH);
//wait for number of miliseconds in argument "intervalLength"
delay(intervalLength);
}
}
/*this light pattern "bounces" 2 leds spaced 1 led apart back and forth
for a number of times (int repetitions) at a given speed (int intervalLength)*/
void patternBounceSpaced(int repetitions, int intervalLength)
{
for(int i=0; i < repetitions; i++) {
//set leds 1 and 3 on
digitalWrite(led1, HIGH);
digitalWrite(led3, HIGH);
//set all other leds off
digitalWrite(led2, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
//wait for number of miliseconds in argument "intervalLength"
delay(intervalLength);
//set leds 2 and 4 on
digitalWrite(led2, HIGH);
digitalWrite(led4, HIGH);
//set leds 1 and 3 off
digitalWrite(led1, LOW);
digitalWrite(led3, LOW);
//wait for number of miliseconds in argument "intervalLength"
delay(intervalLength);
//set leds 3 and 5 on
digitalWrite(led3, HIGH);
digitalWrite(led5, HIGH);
//set leds 2 and 4 off
digitalWrite(led2, LOW);
digitalWrite(led4, LOW);
//wait for number of miliseconds in argument "intervalLength"
delay(intervalLength);
//set leds 4 and 6 on
digitalWrite(led4, HIGH);
digitalWrite(led6, HIGH);
//set leds 3 and 5 off
digitalWrite(led3, LOW);
digitalWrite(led5, LOW);
//wait for number of miliseconds in argument "intervalLength"
delay(intervalLength);
//set leds 3 and 5 on
digitalWrite(led3, HIGH);
digitalWrite(led5, HIGH);
//set leds 4 and 6 off
digitalWrite(led6, LOW);
digitalWrite(led4, LOW);
//wait for number of miliseconds in argument "intervalLength"
delay(intervalLength);
//set leds 2 and 4 on
digitalWrite(led2, HIGH);
digitalWrite(led4, HIGH);
//set leds 5 and 3 off
digitalWrite(led5, LOW);
digitalWrite(led3, LOW);
//wait for number of miliseconds in argument "intervalLength"
delay(intervalLength);
}
}
/*this light pattern "bounces" 2 adjacent leds back and forth
for a number of times (int repetitions) at a given speed (int intervalLength)*/
void patternBounceTwo(int repetitions, int intervalLength)
{
for(int i=0; i < repetitions; i++) {
//set leds 1 and 2 on
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
//set all other leds off
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
//wait for number of miliseconds in argument "intervalLength"
delay(intervalLength);
//set led 3 on
digitalWrite(led3, HIGH);
//set led 1 off
digitalWrite(led1, LOW);
//wait for number of miliseconds in argument "intervalLength"
delay(intervalLength);
//set led 4 on
digitalWrite(led4, HIGH);
//set led 2 off
digitalWrite(led2, LOW);
//wait for number of miliseconds in argument "intervalLength"
delay(intervalLength);
//set led 5 on
digitalWrite(led5, HIGH);
//set led 3 off
digitalWrite(led3, LOW);
//wait for number of miliseconds in argument "intervalLength"
delay(intervalLength);
//set led 6 on
digitalWrite(led6, HIGH);
//set led 4 off
digitalWrite(led4, LOW);
//wait for number of miliseconds in argument "intervalLength"
delay(intervalLength);
//set led 4 on
digitalWrite(led4, HIGH);
//set led 6 off
digitalWrite(led6, LOW);
//wait for number of miliseconds in argument "intervalLength"
delay(intervalLength);
//set led 3 on
digitalWrite(led3, HIGH);
//set led 5 off
digitalWrite(led5, LOW);
//wait for number of miliseconds in argument "intervalLength"
delay(intervalLength);
//set led 2 on
digitalWrite(led2, HIGH);
//set led 4 off
digitalWrite(led4, LOW);
//wait for number of miliseconds in argument "intervalLength"
delay(intervalLength);
}
}
/*this light pattern "bounces" 2 leds, mirrored in 2 groups of 3
for a number of times (int repetitions) at a given speed (int intervalLength)*/
void patternBounceMirrored(int repetitions, int intervalLength)
{
for(int i=0; i < repetitions; i++) {
//set leds 1 and 6 on
digitalWrite(led1, HIGH);
digitalWrite(led6, HIGH);
//set all other leds off
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
//wait for number of miliseconds in argument "intervalLength"
delay(intervalLength);
//set leds 2 and 5 on
digitalWrite(led2, HIGH);
digitalWrite(led5, HIGH);
//set leds 1 and 6 off
digitalWrite(led1, LOW);
digitalWrite(led6, LOW);
//wait for number of miliseconds in argument "intervalLength"
delay(intervalLength);
//set leds 3 and 4 on
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
//set leds 2 and 5 off
digitalWrite(led2, LOW);
digitalWrite(led5, LOW);
//wait for number of miliseconds in argument "intervalLength"
delay(intervalLength);
//set leds 2 and 5 on
digitalWrite(led2, HIGH);
digitalWrite(led5, HIGH);
//set leds 3 and 4 off
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
//wait for number of miliseconds in argument "intervalLength"
delay(intervalLength);
}
}
// the loop() method runs over and over again,
// as long as the Arduino has power
void loop()
{
patternAllBlink(5, 500); //blink all leds 5 times at 1/2 second intervals
patternAlternateOddsEvens(5, 500); //alternate odds and evens 5 times at 1/2 second intervals
patternBounceSpaced(3, 100); //bounce spaced leds 3 times at 100 ms intervals
patternBounceTwo(3, 100); //bounce 2 adjacent leds 3 times at 100 ms intervals
patternBounceMirrored(3, 100); //bounce 2 mirrored leds 3 times at 100 ms intervals
}