Analog Write with 12 LEDs on an Arduino Mega

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


Arduino Analog Write with 12 LEDs

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 Write with 12 LEDs 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);

[box color=”#985D00″ bg=”#FFF8CB” font=”verdana” fontsize=”14 ” radius=”20 ” border=”#985D12″ float=”right” head=”Major Components in Project” headbg=”#FFEB70″ headcolor=”#985D00″]

Hardware Required

  • Arduino Mega Board
  • (12) LEDs
  • (12) 220 ohm resistors
  • hook up wire
  • breadboard


About The Author

Scroll to Top
Read previous post:
CAN to USB Interface

This project started out from a need to build a simple device for monitoring the CAN bus. I choose the...