Home > Projects > Fading an LED off and on using Arduino

Fading an LED off and on using Arduino

Summary of Fading an LED off and on using Arduino


This article demonstrates how to fade an LED on and off using the Arduino `analogWrite()` function with Pulse Width Modulation (PWM). The circuit connects an LED's anode to digital pin 9 via a 220-ohm resistor, while the cathode connects to ground. The code gradually adjusts the PWM value from 0 to 255 and back to create a smooth fading effect, controlled by a variable delay.

Parts used in Fading an LED:

  • Arduino board
  • Breadboard
  • LED
  • 220 ohm resistor

Demonstrates the use of the analogWrite() function in fading an LED off and on. AnalogWrite uses pulse width modulation (PWM), turning a digital pin on and off very quickly, to create a fading effect.

Circuit

Fading with Arduino circuit

Connect the anode (the longer, positive leg) of your LED to digital output pin 9 on your Arduino through a 220-ohm resistor. Connect the cathode (the shorter, negative leg) directly to ground.

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

Schematic

Fading with Arduino Schematic

Code

After declaring pin 9 to be your ledPin, there is nothing to do in the setup() function of your code.

The analogWrite() function that you will be using in the main loop of your code requires two arguments: One telling the function which pin to write to, and one indicating what PWM value to write.

In order to fade your LED off and on, gradually increase your PWM value from 0 (all the way off) to 255 (all the way on), and then back to 0 once again to complete the cycle. In the sketch below, the PWM value is set using a variable calledbrightness. Each time through the loop, it increases by the value of the variable fadeAmount.

If brightness is at either extreme of its value (either 0 or 255), then fadeAmount is changed to its negative. In other words, if fadeAmount is 5, then it is set to -5. If it’s 55, then it’s set to 5. The next time through the loop, this change causesbrightness to change direction as well.

analogWrite() can change the PWM value very fast, so the delay at the end of the sketch controls the speed of the fade. Try changing the value of the delay and see how it changes the program.

/*
Fade

This example shows how to fade an LED on pin 9
using the analogWrite() function.

This example code is in the public domain.
*/

Major Components in Project

Hardware Required

  • Arduino board
  • Breadboard
  • a LED
  • a 220 ohm resistor

Quick Solutions to Questions related to Fading an LED:

  • How does analogWrite() create a fading effect?
    It uses pulse width modulation (PWM) to turn a digital pin on and off very quickly.
  • What is the correct way to connect the LED anode?
    Connect the longer, positive leg of the LED to digital output pin 9 through a 220-ohm resistor.
  • Where should the LED cathode be connected?
    The shorter, negative leg should be connected directly to ground.
  • What values represent the full range for PWM in this project?
    0 represents all the way off, and 255 represents all the way on.
  • How does the code change the direction of the fade?
    If brightness reaches 0 or 255, the fadeAmount variable is changed to its negative value.
  • Which part of the sketch controls the speed of the fade?
    The delay at the end of the sketch controls the speed of the fade.
  • Can I modify the fade speed?
    Yes, you can try changing the value of the delay to see how it changes the program.

About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us:
LinkedinTwitter
Scroll to Top