Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void setup()
- {
- int index;
- for(index = 0; index <= 7; index++)
- {
- pinMode(ledPins[index],OUTPUT);
- // ledPins[index] is replaced by the value in the array.
- // For example, ledPins[0] is 2
- }
- }
- void loop()
- {
- oneAfterAnotherNoLoop(); // Light up all the LEDs in turn
- //oneAfterAnotherLoop(); // Same as oneAfterAnotherNoLoop,
- // but with much less typing
- //oneOnAtATime(); // Turn on one LED at a time,
- // scrolling down the line
- //pingPong(); // Light the LEDs middle to the edges
- //marquee(); // Chase lights like you see on signs
- //randomLED(); // Blink LEDs randomly
- }
- /*
- oneAfterAnotherNoLoop()
- This function will light one LED, delay for delayTime, then light
- the next LED, and repeat until all the LEDs are on. It will then
- turn them off in the reverse order.
- This function does NOT use a for() loop. We've done it the hard way
- to show you how much easier life can be when you use for() loops.
- Take a look at oneAfterAnotherLoop() further down, which does
- exactly the same thing with much less typing.
- */
- void oneAfterAnotherNoLoop()
- {
- int delayTime = 100; // time (milliseconds) to pause between LEDs
- // make this smaller for faster switching
- // turn all the LEDs on:
- digitalWrite(ledPins[0], HIGH); //Turns on LED #0 (pin 2)
- delay(delayTime); //wait delayTime milliseconds
- digitalWrite(ledPins[1], HIGH); //Turns on LED #1 (pin 3)
- delay(delayTime); //wait delayTime milliseconds
- digitalWrite(ledPins[2], HIGH); //Turns on LED #2 (pin 4)
- delay(delayTime); //wait delayTime milliseconds
- digitalWrite(ledPins[3], HIGH); //Turns on LED #3 (pin 5)
- delay(delayTime); //wait delayTime milliseconds
- digitalWrite(ledPins[4], HIGH); //Turns on LED #4 (pin 6)
- delay(delayTime); //wait delayTime milliseconds
- digitalWrite(ledPins[5], HIGH); //Turns on LED #5 (pin 7)
- delay(delayTime); //wait delayTime milliseconds
- digitalWrite(ledPins[6], HIGH); //Turns on LED #6 (pin 8)
- delay(delayTime); //wait delayTime milliseconds
- digitalWrite(ledPins[7], HIGH); //Turns on LED #7 (pin 9)
- delay(delayTime); //wait delayTime milliseconds
- // turn all the LEDs off:
- digitalWrite(ledPins[7], LOW); //Turn off LED #7 (pin 9)
- delay(delayTime); //wait delayTime milliseconds
- digitalWrite(ledPins[6], LOW); //Turn off LED #6 (pin 8)
- delay(delayTime); //wait delayTime milliseconds
- digitalWrite(ledPins[5], LOW); //Turn off LED #5 (pin 7)
- delay(delayTime); //wait delayTime milliseconds
- digitalWrite(ledPins[4], LOW); //Turn off LED #4 (pin 6)
- delay(delayTime); //wait delayTime milliseconds
- digitalWrite(ledPins[3], LOW); //Turn off LED #3 (pin 5)
- delay(delayTime); //wait delayTime milliseconds
- digitalWrite(ledPins[2], LOW); //Turn off LED #2 (pin 4)
- delay(delayTime); //wait delayTime milliseconds
- digitalWrite(ledPins[1], LOW); //Turn off LED #1 (pin 3)
- delay(delayTime); //wait delayTime milliseconds
- digitalWrite(ledPins[0], LOW); //Turn off LED #0 (pin 2)
- delay(delayTime); //wait delayTime milliseconds
- }
- /*
- oneAfterAnotherLoop()
- This function does exactly the same thing as oneAfterAnotherNoLoop(),
- but it takes advantage of for() loops and the array to do it with
- much less typing.
- */
- void oneAfterAnotherLoop()
- {
- int index;
- int delayTime = 100; // milliseconds to pause between LEDs
- // make this smaller for faster switching
- // Turn all the LEDs on:
- // This for() loop will step index from 0 to 7
- // (putting "++" after a variable means add one to it)
- // and will then use digitalWrite() to turn that LED on.
- for(index = 0; index <= 7; index++)
- {
- digitalWrite(ledPins[index], HIGH);
- delay(delayTime);
- }
- // Turn all the LEDs off:
- // This for() loop will step index from 7 to 0
- // (putting "--" after a variable means subtract one from it)
- // and will then use digitalWrite() to turn that LED off.
- for(index = 7; index >= 0; index--)
- {
- digitalWrite(ledPins[index], LOW);
- delay(delayTime);
- }
- }
- /*
- oneOnAtATime()
- This function will step through the LEDs,
- lighting only one at at time.
- */
- void oneOnAtATime()
- {
- int index;
- int delayTime = 100; // milliseconds to pause between LEDs
- // make this smaller for faster switching
- // step through the LEDs, from 0 to 7
- for(index = 0; index <= 7; index++)
- {
- digitalWrite(ledPins[index], HIGH); // turn LED on
- delay(delayTime); // pause to slow down
- digitalWrite(ledPins[index], LOW); // turn LED off
- }
- }
- /*
- pingPong()
- This function will step through the LEDs,
- lighting one at at time in both directions.
- */
- void pingPong()
- {
- int index;
- int delayTime = 100; // milliseconds to pause between LEDs
- // make this smaller for faster switching
- // step through the LEDs, from 0 to 7
- for(index = 0; index <= 7; index++)
- {
- digitalWrite(ledPins[index], HIGH); // turn LED on
- delay(delayTime); // pause to slow down
- digitalWrite(ledPins[index], LOW); // turn LED off
- }
- // step through the LEDs, from 7 to 0
- for(index = 7; index >= 0; index--)
- {
- digitalWrite(ledPins[index], HIGH); // turn LED on
- delay(delayTime); // pause to slow down
- digitalWrite(ledPins[index], LOW); // turn LED off
- }
- }
- /*
- marquee()
- This function will mimic "chase lights" like those around signs.
- */
- void marquee()
- {
- int index;
- int delayTime = 200; // milliseconds to pause between LEDs
- // Make this smaller for faster switching
- // Step through the first four LEDs
- // (We'll light up one in the lower 4 and one in the upper 4)
- for(index = 0; index <= 3; index++) // Step from 0 to 3
- {
- digitalWrite(ledPins[index], HIGH); // Turn a LED on
- digitalWrite(ledPins[index+4], HIGH); // Skip four, and turn that LED on
- delay(delayTime); // Pause to slow down the sequence
- digitalWrite(ledPins[index], LOW); // Turn the LED off
- digitalWrite(ledPins[index+4], LOW); // Skip four, and turn that LED off
- }
- }
- /*
- randomLED()
- This function will turn on random LEDs. Can you modify it so it
- also lights them for random times?
- */
- void randomLED()
- {
- int index;
- int delayTime;
- // The random() function will return a semi-random number each
- // time it is called. See http://arduino.cc/en/Reference/Random
- // for tips on how to make random() even more random.
- index = random(8); // pick a random number between 0 and 7
- delayTime = 100;
- digitalWrite(ledPins[index], HIGH); // turn LED on
- delay(delayTime); // pause to slow down
- digitalWrite(ledPins[index], LOW); // turn LED off
- }
- void binaryCount()
- {
- for (int i=0; i<256; i++) {
- showBinNumber(i);
- delay(256-i);
- }
- }
- void showBinNumber(int num) {
- for (int i=0; i<8; i++) {
- if (num%2)
- digitalWrite(ledPins[i], HIGH);
- else
- digitalWrite(ledPins[i], LOW);
- num/=2;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement