const int buttonPin = 3; // the number of the pushbutton pin const int ledPin = 7; // the number of the LED pin int led = 7; // the PWM pin the LED is attached to int brightness = 0; // how bright the LED is int fadeAmount = 5; // how many points to fade the LED by // variables will change: int buttonState = 0; // variable for reading the pushbutton status void setup() { // initialize the LED pin as an output: pinMode(ledPin, OUTPUT); // initialize the pushbutton pin as an input: pinMode(buttonPin, INPUT); } void loop() { // read the state of the pushbutton value: buttonState = digitalRead(buttonPin); // check if the pushbutton is pressed. If it is, the buttonState is HIGH: if (buttonState == LOW) { // turn LED on: digitalWrite(led, HIGH); } else { // turn LED off: analogWrite(led, brightness); // change the brightness for next time through the loop: brightness = brightness + fadeAmount; // optional 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); } }