This sketch is used by Exercise: Soft Blink.
Full Source Code
The full code is all in one file SoftBlink1.ino.

// SoftBlink1 - fades the onboard LED on and off. // // Copyright (c) 2016, Garth Zeglin. All rights reserved. Licensed under the // terms of the BSD 3-clause license as included in LICENSE. // // The Arduino UNO we use has an onboard LED on pin 13. This sketch varies the // visible LED intensity using a form of "pulse width modulation" (PWM) // implemented in software. The example turns the LED on and off very fast // using short delays within a loop; the average energy emitted is lower than // constantly being ON. // // The output voltage signal looks something like this as a function of time: // // ---- ---- ---- ---- // | | | | | | | // --- ---- ---- ---- // // For even dimmer output, the proportion of 'ON' time can be reduced: // // -- -- -- -- // | | | | | | | // --- ------ ------ ----- // // This sketch also introduces several conventional programming structures. // // ================================================================================ // Configure the hardware once after booting up. This runs once after pressing // reset or powering up the board. void setup() { // Initialize the hardware digital pin 13 as an output. The 'OUTPUT' symbol // is pre-defined by the Arduino system. pinMode(LED_BUILTIN, OUTPUT); } // ================================================================================ // Define constant values. The following lines defines "pre-processor macros" // which can be used to replace one text symbol with a value as the first step // in compiling the code. In general, this a recommended practice for making // the intent of the code more legible. // Define the period of the PWM waveform in milliseconds. E.g., the text // 'PWMPERIOD' will be replaced by the text '10' in the code which follows. const int PWMPERIOD = 10; // Define the duration of each fade ramp in millisconds. const int RAMPPERIOD = 1000; // Note that constant values can include expressions. The following line // determines how many discrete steps will be required to complete the ramp in // approximately the specified time: const int RAMPSTEPS = RAMPPERIOD/PWMPERIOD; // ================================================================================ // Run one iteration of the main event loop. The Arduino system will call this // function over and over forever.
Read more: Arduino Sketch SoftBlink1