Assignment 4.2

posted Jun 27, 2010, 8:54 PM by Unknown user   [ updated Jul 5, 2010, 2:48 PM ]
 
I attached a bit of wire to each glove on the giraffe and taped one arm so it was always out. I attached wires together so I could get a length where I could easily move the giraffe around without moving the whole breadboard. The wires are attached to pin 2 using the basic push button example. Every time the arm not taped down is pressed, the wires touch, completing the circuit, and causing the Serial Monitor to display a different message each time. It will cycle through the messages, displaying "BAM," "POW," "THUNK," "KAPOW," and then "K.O."
 
Here's the code:
 
int switchPin = 2;              // switch is connected to pin 2
int val;                        // variable for reading the pin status
int buttonState;                // variable to hold the button state
int buttonPresses;             // how many times the button has been pressed

void setup() {
  pinMode(switchPin, INPUT);    // Set the switch pin as input
  Serial.begin(9600);           // Set up serial communication at 9600bps  buttonState = digitalRead(switchPin);   // read the initial state
}

void loop(){
  val = digitalRead(switchPin);      // read input value and store it in val
  if (val != buttonState) {          // the button state has changed!
    if (val == LOW) {                // check if the button is pressed
      if (buttonPresses == 0) {      // if number of buttons pressed is this much
      buttonPresses = 1; }           // run this function
      else{                          // if not, do this:
        if (buttonPresses == 1) {
        buttonPresses = 2; }
        else{
          if (buttonPresses == 2) {
          buttonPresses = 3; }
          else{
            if (buttonPresses == 3) {
            buttonPresses = 4; }
            else{
              if (buttonPresses == 4) {
              buttonPresses = 5;
            }
          }
        }
      }
    }
    }
  buttonState = val;                 // save the new state in our variable
 
 
  if (buttonPresses == 1)  {         // if  buttonPresses is this many,
  Serial.println("BAM");             // display this message and
  buttonPresses = 2;                // change variable to this value
  }
  if (buttonPresses == 2)  {
    Serial.println("POW");
    buttonPresses =  3;
  }
  if (buttonPresses == 3)  {
    Serial.println("THUNK");
    buttonPresses = 4;
  }
  if (buttonPresses == 4)  {
    Serial.println("KAPOW");
    buttonPresses = 5;
  }
  if (buttonPresses == 5)  {
    Serial.println("K.O.");
    buttonPresses = 0;                  // resets value to 0
  }
}
}
Comments