01.Basic, LED Fade

OK, looking at the LED fade code It looks a lot like the blink tutorial with what looks like a slower turn on. I am playing with the code and would like to see the LED turn on slower, that is with more steps, but fadeamount only goes up to 5?

Thanks

/*
 Fade
 
 This example shows how to fade an LED on pin 9
 using the analogWrite() function.
 
 This example code is in the public domain.
 */

int led = 13;           // the pin that the LED is attached to
int brightness = 0;    // how bright the LED is
int fadeAmount = 5;    // how many points to fade the LED by

// the setup routine runs once when you press reset:
void setup()  { 
  // declare pin 9 to be an output:
  pinMode(led, OUTPUT);
} 

// the loop routine runs over and over again forever:
void loop()  { 
  // set the brightness of pin 9:
  analogWrite(led, brightness);    

  // change the brightness for next time through the loop:
  brightness = brightness + fadeAmount;

  // reverse the direction of the fading at the ends of the fade: 
  if (brightness == 0 || brightness == 255) {
    fadeAmount = -fadeAmount ; 
  }     
  // wait for 30 milliseconds to see the dimming effect    
  delay(30);                            
}

Change fadeamount to 1 and it will go 5 times slower and have 5 times as many steps.

Just be careful if you make fadeamount anything that doesn't go evenly into 255 then you'll have to work on this part:

 if (brightness == 0 || brightness == 255) {
    fadeAmount = -fadeAmount ;

or it will just wrap around and start fading in again.

Is pin 13 even PWM enabled?

I'm pretty sure its not! :slight_smile:

No, it's not. So it will just turn on when >= 128 and off below that.

int led = 13;           // the pin that the LED is attached to
...
  // declare pin 9 to be an output:
  pinMode(led, OUTPUT);

Try pin 9.

You'll need an external LED and a resistor (say around 220 ohms).

Wow, super quick reply :slight_smile:

I see, I should look at the pinout for the chip! I am new and as usual want to rush into it. I have a resistor soldered to a LED and thought I would use the pin closest to the gnd pin so I could just shove it right into the Arduino board :blush:

Thanks all, will go back and try it in the correct pins!

Spend some time browsing the Arduino main site pages and build yourself a set of bookmarks. You will find gems like pin maps and a link to the AVR C++ libraries.

http://www.nongnu.org/avr-libc/user-manual/modules.html

Get the Reference, Libraries, Examples/Tutorials, Foundations, Hacking and tour the Playground.
It's quite a mix and yet not comprehensive, you might find you need links off-site as well.

Thanks for the links, I am amazed at the resources available (I have come from a picaxe) . Too much information is great!