switch
by BARRAGAN <http://barraganstudio.com>

Demonstrates the use of digital pins and a switch. The pin used as input is connected to a switch and the pin used as output is the onboard LED When the switch is pressed, the light blinks, the light goes off when the switch is released.

Created 5 December 2003
Revised 4 April 2007
 

   
// switch 
// by BARRAGAN <http://barraganstudio.com> 

int direction = 1;  // used for the blinking cycle 
int switchPin = 0;  // digital pin to attach the switch 
int ledPin = 48;    // Wiring onboard LED 
 
 
void setup() 
{ 
  pinMode(switchPin, INPUT);   // sets digital pin 0 as input 
  pinMode(ledPin, OUTPUT);     // sets digital pin 48 as output 
} 
 
void loop() 
{ 
  if(digitalRead(switchPin) == HIGH)  // if the switch is pressed 
  { 
    direction *= -1;                  // alternate between 1 or -1 
    if (direction == 1)               // to decide to turn on or off the light 
    { 
      digitalWrite(ledPin, HIGH);     // turns the light on 
    } 
    else                              
    { 
      digitalWrite(ledPin, LOW);      // turns the light off 
    } 
    delay(200);                       // waits 200 milliseconds 
  } 
  else                                // if switch not pressed 
  { 
    digitalWrite(ledPin, LOW);        // keeps the light off 
  } 
}