Created
April 24, 2013 07:13
-
-
Save VincentK16/5450215 to your computer and use it in GitHub Desktop.
My First Stackable Circuit
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
int led1 = 5; | |
int led2 = 6; | |
int led3 = 7; | |
int led4 = 8; | |
int led5= 9; | |
int led6= 10; | |
int led7 = 11; | |
int BUTTON = 12; | |
void setup() { | |
pinMode (led1, OUTPUT); | |
pinMode (led2, OUTPUT); | |
pinMode(led3, OUTPUT); | |
pinMode (led4, OUTPUT); | |
pinMode(led5, OUTPUT); | |
pinMode(led6, OUTPUT); | |
pinMode(led7,OUTPUT); | |
pinMode (BUTTON, INPUT); | |
digitalWrite(BUTTON, HIGH); | |
} | |
// | |
// Delay for a specified amount of time. Test the button and return to caller with the value 1 | |
// if the button is pressed. | |
// | |
int MyDelay(int cnt) { | |
int i; | |
for (i=0; i<cnt; i++) { | |
delay(1); | |
if (digitalRead(BUTTON)==LOW) return 1; | |
} | |
return 0; | |
} | |
// | |
// Show the first pattern on the leds. Return to main loop to go to the next pattern if the | |
// button is pressed. | |
// | |
void Pattern1() { | |
while (true) { | |
digitalWrite(led1, 100); | |
digitalWrite(led2,100); | |
if (MyDelay(500)==1)return; | |
digitalWrite(led1,LOW); | |
digitalWrite(led2,LOW); | |
if (MyDelay(5)==1) return; | |
digitalWrite(led3,HIGH); | |
digitalWrite(led4, HIGH); | |
if (MyDelay(500)==1) return; | |
digitalWrite(led3,LOW); | |
digitalWrite(led4,LOW); | |
if (MyDelay(5)==1) return; | |
digitalWrite(led5,HIGH); | |
if (MyDelay(500)==1) return; | |
analogWrite(led5,LOW); | |
if (MyDelay(5)==1) return; | |
digitalWrite(led6,HIGH); | |
if (MyDelay(500)==1) return; | |
digitalWrite(led6,LOW); | |
if (MyDelay(5)==1) return; | |
digitalWrite(led7,HIGH); | |
if (MyDelay(500)==1) return; | |
digitalWrite(led7,LOW); | |
if (MyDelay(5)==1) return; | |
} | |
} | |
// | |
// Show the second pattern on the leds. Return to main loop to go to the next pattern if the | |
// button is pressed. | |
// | |
void Pattern2() { | |
while (true) { | |
digitalWrite(led1,100 ); | |
digitalWrite(led2, 100); | |
digitalWrite(led3, HIGH); | |
digitalWrite(led4, HIGH); | |
digitalWrite(led5, HIGH); | |
digitalWrite(led6, HIGH); | |
digitalWrite(led7, HIGH); | |
if (MyDelay(100)==1)return; | |
} | |
} | |
void Pattern3() | |
{ | |
while(true){ | |
analogWrite(led1,130 ); | |
analogWrite(led2, 130); | |
digitalWrite(led3, HIGH); | |
digitalWrite(led4, HIGH); | |
digitalWrite(led5, HIGH); | |
digitalWrite(led6, HIGH); | |
digitalWrite(led7, HIGH); | |
if (MyDelay(500)==1)return; | |
analogWrite(led1,0 ); | |
analogWrite(led2, 0); | |
digitalWrite(led3, LOW); | |
digitalWrite(led4, LOW); | |
digitalWrite(led5, LOW); | |
digitalWrite(led6, LOW); | |
digitalWrite(led7, LOW); | |
if (MyDelay(500)==1)return; | |
} | |
} | |
void Pattern4() | |
{ | |
while(true) | |
{ | |
analogWrite(led1,0 ); | |
analogWrite(led2, 0); | |
digitalWrite(led3, LOW); | |
digitalWrite(led4, LOW); | |
digitalWrite(led5, LOW); | |
digitalWrite(led6, LOW); | |
digitalWrite(led7, LOW); | |
if (MyDelay(100)==1)return; | |
} | |
} | |
void Pattern5() | |
{ | |
while(true){ | |
analogWrite(led1,130); | |
analogWrite(led2,130); | |
if (MyDelay(500)==1)return; | |
analogWrite(led1,0); | |
analogWrite(led2,0); | |
if (MyDelay(20)==1)return; | |
digitalWrite(led3,HIGH); | |
digitalWrite(led4,HIGH); | |
if (MyDelay(500)==1)return; | |
digitalWrite(led3,LOW); | |
digitalWrite(led4,LOW); | |
if (MyDelay(20)==1)return; | |
// fade in from min to max in increments of 5 points: | |
for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) { | |
// sets the value (range from 0 to 255): | |
analogWrite(led5, fadeValue); | |
analogWrite(led6, fadeValue); | |
analogWrite(led7, fadeValue); | |
// wait for 30 milliseconds to see the dimming effect | |
if (MyDelay(30)==1)return; | |
} | |
// fade out from max to min in increments of 5 points: | |
for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) { | |
// sets the value (range from 0 to 255): | |
analogWrite(led5, fadeValue); | |
analogWrite(led6, fadeValue); | |
analogWrite(led7, fadeValue); | |
// wait for 30 milliseconds to see the dimming effect | |
if (MyDelay(30)==1)return; | |
} | |
if (MyDelay(200)==1)return; | |
} | |
} | |
void OffAndWait() { | |
digitalWrite(led1,LOW); | |
digitalWrite(led2,LOW); | |
digitalWrite(led3,LOW); | |
digitalWrite(led4,LOW); | |
digitalWrite(led5,LOW); | |
digitalWrite(led6,LOW); | |
digitalWrite(led7,LOW); | |
delay(100); // Wait for button to stop bouncing | |
while (digitalRead(BUTTON)==LOW) { | |
// Wait for button release | |
} | |
delay(1); // Wait for button to stop bouncing on release | |
} | |
void loop() { | |
while (true) { | |
Pattern2(); | |
OffAndWait(); | |
Pattern3(); | |
OffAndWait(); | |
Pattern1(); | |
OffAndWait(); | |
Pattern5(); | |
OffAndWait(); | |
Pattern4(); | |
OffAndWait(); | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment