# Learn to code

Arduino Home

### Connecting LEDs with Arduino

Turning an LED on and off is easy to do with Arduino, and some of the tutorials in previous chapters have included this capability. This tutorial will provide some insights into choosing external LEDs. You will connect three LEDs and use a function to blink the LEDs.

#### Parts Required

 Arduino Uno Rev3 × 1 Breadboard 400 point × 1 Dupont Wires × 7 220 ohm resistor × 3 LED × 3

Arduinoplatform is a participant in several affiliate programs. This means that I will earn a commision if you buy a product from the affiliated websites through clicking on the links provided above.

#### Circuit Diagram

Connect 3 LED with the longer lead, the anode, with three wires that go to pin 3,5 and 6. The short lead of the LEDs, the cathodes, are wired to the GND by connecting them with 220-ohmn resistors.

#### The Code

```LEDs sketch
Blink three LEDs each connected to a different digital pin
*/
const int firstLedPin = 3; // choose the pin for each of the LEDs
const int secondLedPin = 5;
const int thirdLedPin = 6;
void setup()
{
pinMode(firstLedPin, OUTPUT); // declare LED pins as output
pinMode(secondLedPin, OUTPUT); // declare LED pins as output
pinMode(thirdLedPin, OUTPUT); // declare LED pins as output
}
void loop()
{
// flash each of the LEDs for 1000 milliseconds (1 second)
}

// blink the LED on the given pin for the duration in milliseconds
{
digitalWrite(pin, HIGH); // turn LED on
delay(duration);
digitalWrite(pin, LOW); // turn LED off
delay(duration);
}
```

#### Code Explanation

Because anode pins of the LEDs are connected to the Arduino pins and the cathodes are connected to the ground, the LEDs will light when the pin is HIGH and will be off when the pin is LOW. If you connected the anode and cathode the other way around the LEDs will light when the pin is LOW and will turn off if the pin is HIGH.

To be able to control the amount of current that will flow to the LEDs we can use resistors. We need to resist the current since LED’s normally cannot handle 5v of the Arduino.

To calculate the resistor value you need to know the input power supply voltage (Vs, usually 5 volts), the LED voltage (Vf), and the amount of current (I) that you want to flow through the LED. The formula for the resistance in ohms (known as Ohm’s law) is:

R = (Vs – Vf) / I

For example, driving an LED with a voltage of 1.8 volts with 15 mA of current using an input supply voltage of 5 volts would use the following values:

Vs = 5 (for a 5V Arduino board)
Vf = 1.8 (the voltage of the LED)
I = 0.015 (1 milliamp [mA] is one one-thousandth of an amp, so 15 mA is 0.015 amps)

The voltage across the LED when it is on (Vs – Vf) is: 5 – 1.8, which is 3.2 volts. Therefore, the calculation for the series resistor is: 3.2 / 0.015, which is 213 ohms. The value of 213 ohms is not a standard resistor value, so you can round this up to 220 ohms.

##### Create Global Variables

At the beginning of your program, you will need to declare the variables that hold the pins of the LEDs. These should be set to an output mode because you will be using digitalWrite() in your sketch.

```const int firstLedPin = 3; // choose the pin for each of the LEDs
const int secondLedPin = 5;
const int thirdLedPin = 6;
```

##### Set the pinModes

Since you will want to light up an LED

```pinMode(firstLedPin, OUTPUT); // declare LED pins as output
pinMode(secondLedPin, OUTPUT); // declare LED pins as output
pinMode(thirdLedPin, OUTPUT); // declare LED pins as output
```
##### Void loop() part

The void loop() part enables you to control the LEDs by using a funtion that is explained below. The LEDs will blink for 1 second (10000 milliseconds).

```// flash each of the LEDs for 1000 milliseconds (1 second)
```
```void blinkLED(int pin, int duration)