
Notes and explanations
There are times when it is not actually possible or desireable to use an analog input device. To simulate analog behavior there is PWM - Pulse Width Modulation. It can be used to fade an LED by switching it on and off at high speed. The speed determines the 'intensity' of the visible light. This sketch comes directly from http://arduino.cc/en/Tutorial/Fading. Not using a for statement and manipulating fadeValue will keep it at a steady controllable brightness. NOt all the digital pins on an arduino support PWM. You must use the digital PWM pins on the arduino - see the information on the model you have.
Parts & Symbols
LED
Resistor

Copy & Paste the following code to the Arduino IDE.
/*
Fading
This example shows how to fade an LED using the analogWrite() function.
The circuit:
* LED attached from digital pin 9 to ground.
Created 1 Nov 2008
By David A. Mellis
modified 30 Aug 2011
By Tom Igoe
http://arduino.cc/en/Tutorial/Fading
This example code is in the public domain.
*/
int ledPin = 9; // LED connected to digital pin 9
void setup() {
// nothing happens in setup
}
void loop() {
// fade in from min to max in increments of 5 points:
for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) {
// sets the value (range from 0 to 255):
analogWrite(ledPin, fadeValue);
// wait for 30 milliseconds to see the dimming effect
delay(30);
}
// fade out from max to min in increments of 5 points:
for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) {
// sets the value (range from 0 to 255):
analogWrite(ledPin, fadeValue);
// wait for 30 milliseconds to see the dimming effect
delay(30);
}
}