0% found this document useful (0 votes)
47 views

Introduction To Arduino Microcontroller: Experiment 3: Multiple Leds

This document describes an Arduino experiment that controls multiple LEDs. It defines an array to store the pin numbers for 8 LEDs. The code sets the LED pins as outputs, then defines functions to turn the LEDs on and off in different patterns - one at a time, moving from one to the next, or moving two center LEDs in and out. The functions use for loops to iterate through the LED pins, writing high or low values to turn individual LEDs on and off over time delays.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
47 views

Introduction To Arduino Microcontroller: Experiment 3: Multiple Leds

This document describes an Arduino experiment that controls multiple LEDs. It defines an array to store the pin numbers for 8 LEDs. The code sets the LED pins as outputs, then defines functions to turn the LEDs on and off in different patterns - one at a time, moving from one to the next, or moving two center LEDs in and out. The functions use for loops to iterate through the LED pins, writing high or low values to turn individual LEDs on and off over time delays.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

12/8/2018

Introduction to Arduino Microcontroller


Experiment 3: Multiple LEDs

The Circuit

Schematic Diagram

8/12/2018 1

Introduction to Arduino Microcontroller


The components

8/12/2018 2

1
12/8/2018

Introduction to Arduino Microcontroller


The Code

Declaration int ledPins[] = {2,3,4,5,6,7,8,9}; //An array to hold the pin each LED is connected to

void setup()
{ //Set each pin connected to an LED to output mode (high (on) or low (off)
for(int i = 0; i < 8; i++){ //this is a loop and will repeat eight times
pinMode(ledPins[i],OUTPUT); //we use this to set each LED pin to output
}
pinMode(ledPins[0],OUTPUT);
pinMode(ledPins[1],OUTPUT); Void Setup
pinMode(ledPins[2],OUTPUT);
pinMode(ledPins[3],OUTPUT);
pinMode(ledPins[4],OUTPUT);
pinMode(ledPins[5],OUTPUT);
pinMode(ledPins[6],OUTPUT);
pinMode(ledPins[7],OUTPUT);
}

void loop()
{
oneAfterAnotherNoLoop(); //this will turn on each LED one by one then turn each off

Void Loop //oneAfterAnotherLoop(); //does the same as oneAfterAnotherNoLoop but with much less typing
//oneOnAtATime(); //this will turn one LED on then turn the next one on turning the /former off
//inAndOut(); //lights the two middle LEDs then moves them out then back in again
}

8/12/2018 3

void oneAfterAnotherNoLoop(){
int delayTime = 100; //the time (in milliseconds) to pause between LEDs
digitalWrite(ledPins[0], HIGH); //Turns on LED #0 (connected to pin 2 )
delay(delayTime); //waits delayTime milliseconds void oneAfterAnotherLoop(){
digitalWrite(ledPins[1], HIGH); //Turns on LED #1 (connected to pin 3 ) int delayTime = 100; //the time (in milliseconds) to pause between LEDs
delay(delayTime); //waits delayTime milliseconds
digitalWrite(ledPins[2], HIGH); //Turns on LED #2 (connected to pin 4 ) //Turn Each LED on one after another
delay(delayTime); //waits delayTime milliseconds for(int i = 0; i <= 7; i++){
digitalWrite(ledPins[3], HIGH); //Turns on LED #3 (connected to pin 5 ) digitalWrite(ledPins[i], HIGH); //Turns on LED #i each time this runs i
delay(delayTime); //waits delayTime milliseconds delay(delayTime); //gets one added to it so this will repeat
digitalWrite(ledPins[4], HIGH); //Turns on LED #4 (connected to pin 6 ) } //8 times the first time i will = 0 the final time i will equal 7;
delay(delayTime); //waits delayTime milliseconds
digitalWrite(ledPins[5], HIGH); //Turns on LED #5 (connected to pin 7 ) //Turn Each LED off one after another
delay(delayTime); //waits delayTime milliseconds for(int i = 7; i >= 0; i--){ //same as above but rather than starting at 0 and counting up
digitalWrite(ledPins[6], HIGH); //Turns on LED #6 (connected to pin 8 ) //we start at seven and count down
delay(delayTime); //waits delayTime milliseconds digitalWrite(ledPins[i], LOW); //Turns off LED #i each time this runs i
digitalWrite(ledPins[7], HIGH); //Turns on LED #7 (connected to pin 9 ) delay(delayTime); //gets one subtracted from it so this will repeat
delay(delayTime); //waits delayTime milliseconds } //8 times the first time i will = 7 the final time it will equal 0
}
//Turns Each LED Off
digitalWrite(ledPins[7], LOW); //Turns on LED #0 (connected to pin 2 )
delay(delayTime); //waits delayTime milliseconds
digitalWrite(ledPins[6], LOW); //Turns on LED #1 (connected to pin 3 )
delay(delayTime); //waits delayTime milliseconds void oneOnAtATime(){
digitalWrite(ledPins[5], LOW); //Turns on LED #2 (connected to pin 4 ) int delayTime = 100; //the time (in milliseconds) to pause between LEDs
delay(delayTime); //waits delayTime milliseconds
digitalWrite(ledPins[4], LOW); //Turns on LED #3 (connected to pin 5 ) for(int i = 0; i <= 7; i++){
delay(delayTime); //waits delayTime milliseconds int offLED = i - 1; //Calculate which LED was turned on last time through
digitalWrite(ledPins[3], LOW); //Turns on LED #4 (connected to pin 6 ) if(i == 0) { //for i = 1 to 7 this is i minus 1 (i.e. if i = 2 we will
delay(delayTime); //waits delayTime milliseconds offLED = 7; //turn on LED 2 and off LED 1)
digitalWrite(ledPins[2], LOW); //Turns on LED #5 (connected to pin 7 ) } //however if i = 0 we don't want to turn of led -1 (doesn't exist) instead we turn off LED 7, (looping around)
delay(delayTime); //waits delayTime milliseconds digitalWrite(ledPins[i], HIGH); //turn on LED #i
digitalWrite(ledPins[1], LOW); //Turns on LED #6 (connected to pin 8 ) digitalWrite(ledPins[offLED], LOW); //turn off the LED we turned on last time
delay(delayTime); //waits delayTime milliseconds delay(delayTime);
digitalWrite(ledPins[0], LOW); //Turns on LED #7 (connected to pin 9 ) }
delay(delayTime); //waits delayTime milliseconds }
}

8/12/2018 4

2
12/8/2018

void inAndOut(){
int delayTime = 100; //the time (in milliseconds) to pause between LEDs
for(int i = 0; i <= 3; i++){ //runs the LEDs out from the middle
int offLED = i - 1; //Calculate which LED was turned on last time through
if(i == 0) { //for i = 1 to 7 this is i minus 1 (i.e. if i = 2 we will
offLED = 3; //turn on LED 2 and off LED 1)
} //however if i = 0 we don't want to turn of led -1 (doesn't exist) instead we turn off LED 7, (looping around)
int onLED1 = 3 - i; //this is the first LED to go on ie. LED #3 when i = 0 and LED //#0 when i = 3
int onLED2 = 4 + i; //this is the first LED to go on ie. LED #4 when i = 0 and LED //#7 when i = 3
int offLED1 = 3 - offLED; //turns off the LED we turned on last time
int offLED2 = 4 + offLED; //turns off the LED we turned on last time

digitalWrite(ledPins[onLED1], HIGH);
digitalWrite(ledPins[onLED2], HIGH);
digitalWrite(ledPins[offLED1], LOW);
digitalWrite(ledPins[offLED2], LOW);
delay(delayTime);
}
for(int i = 3; i >= 0; i--){//runs the LEDs into the middle
int offLED = i + 1; //Calculate which LED was turned on last time through
if(i == 3) { //for i = 1 to 7 this is i minus 1 (i.e. if i = 2 we will
offLED = 0; //turn on LED 2 and off LED 1)
} //however if i = 0 we don't want to turn of led -1 (doesn't exist) instead we turn off LED 7, (looping around)
int onLED1 = 3 - i; //this is the first LED to go on ie. LED #3 when i = 0 and LED //#0 when i = 3
int onLED2 = 4 + i; //this is the first LED to go on ie. LED #4 when i = 0 and LED //#7 when i = 3
int offLED1 = 3 - offLED; //turns off the LED we turned on last time
int offLED2 = 4 + offLED; //turns off the LED we turned on last time

digitalWrite(ledPins[onLED1], HIGH);
digitalWrite(ledPins[onLED2], HIGH);
digitalWrite(ledPins[offLED1], LOW);
digitalWrite(ledPins[offLED2], LOW);
delay(delayTime);
}
}

8/12/2018 5

8/12/2018 DEPARTMENT OF COMPUTER AND COMMUNICATIONS SYSTEMS ENGINEERING , UPM 6

You might also like