Analog Write with 12 LEDs on an Arduino Mega

Arduino Analog

This example fades 12 LEDs up and the down, one by one, on an Arduino Mega board.

CircuitArduino Analog

image developed using Fritzing. For more circuit examples, see the Fritzing project page

Connect the longer, positive legs of (anodes) 12 LEDs to digital pins 2-13 through 220 ohm current limiting resistors. Connect the shorter, negative legs (cathodes) to ground.


Arduino Analog schematic


In the setup() function of the code below, a for() loop is used to assign digital pins 2-13 of the Mega as outputs.

Next, in the loop() function of the program below, a trio of nested for() loops are used.

The first of these loops,

for (int thisPin =lowestPin; thisPin <= highestPin; thisPin++)

moves through each of the LEDS one by one, from the lowest pin to the highest. Before this loop is allowed to move from one pin to the next, two things must be accomplished. First, you brighten the individual LED through these lines of code:

for (int brightness = 0; brightness < 255; brightness++) {
analogWrite(thisPin, brightness);


Leave a Comment

Your email address will not be published. Required fields are marked *