| Switch Colors by CAMILO VILLEGAS Demonstrates how to read multiple input from five switches and send data using the serial port to a processing application. The processing application change the color of a rectangle according to the data sent. Created 1 November 2005 Revised 1 May 2007 |

    // Switch Colors
    // by CAMILO VILLEGAS

    int sent = 0;
    int ledpin = 48;     // LED connected to pin 48 (on-board LED)
    int switchpin_a = 0; // switch connected to pin 0
    int switchpin_b = 1; // switch connected to pin 1
    int switchpin_c = 2; // switch connected to pin 2
    int switchpin_d = 3; // switch connected to pin 3
    int switchpin_e = 4; // switch connected to pin 4

    void setup()
    {
      pinMode(ledpin, OUTPUT); // pin 48 (on-board LED) as OUTPUT
      pinMode(switchpin_a, INPUT); // pin 0 as INPUT
      pinMode(switchpin_b, INPUT); // pin 1 as INPUT
      pinMode(switchpin_c, INPUT); // pin 2 as INPUT
      pinMode(switchpin_d, INPUT); // pin 3 as INPUT
      pinMode(switchpin_e, INPUT); // pin 4 as INPUT
      Serial.begin(9600); // start serial communication at 9600bps
      digitalWrite(ledpin, HIGH); // turn ON the Wiring board LED
    }

    void loop()
    {
      if(digitalRead(switchpin_a) == HIGH) // if switch connected to pin 0 is ON
      {
        Serial.print('1'); 	// send 1 to Processing
        sent = 0;
      }
      else if(digitalRead(switchpin_b) == HIGH) // if switch connected to pin 1 is ON
      {
        Serial.print('2'); 	// send 2 to Processing
        sent = 0;
      }
      else if(digitalRead(switchpin_c) == HIGH) // if switch connected to pin 2 is ON
      {
        Serial.print('3'); 	// send 3 to Processing
        sent = 0;
      }
      else if(digitalRead(switchpin_d) == HIGH) // if switch connected to pin 3 is ON
      {
        Serial.print('4'); 	// send 4 to Processing
        sent = 0;
      }
      else if(digitalRead(switchpin_e) == HIGH) // if switch connected to pin 4 is ON
      {
        Serial.print('5'); 	// send 5 to Processing
        sent = 0;
      }
      else {
        if (sent == 0) {
          Serial.print('0'); // send 0 to Processing
          sent = 1;
        }
      }
      delay(100); 	// wait 100ms for next reading
    }

    /* Processing code for this example

    // Switch Colors
    // by CAMILO VILLEGAS

    // depending on the data received from Wiring through the serial port it
    // changes the fill color of a rectangle

    // Created 1 November 2005

    import processing.serial.*;

    Serial port; // create serial port object
    int val; // variable to receive data from the serial port

    void setup()
    {
      size(200, 200);
      noStroke();

      // List all the available serial ports in the output pane.
      // You will need to choose the port that the Wiring board is
      // connected to from this list. The first port in the list is
      // port #0 and the third port in the list is port #2.
      println(Serial.list());

      // Open the port that the Wiring board is connected to (in this case #2)
      // Make sure to open the port at the same speed Wiring is using (9600bps)
      port = new Serial(this, Serial.list()[2], 9600);
    }

    void draw()
    {
      if( 0 < port.available() ) // if data is available to read
      {
        val = port.read(); // read it and store it in 'val'
      }

      background(0); // clear background

      if( val == '1' ) // if 1 was received
      {
        fill(100); // set fill color
      }
      else if( val == '2' ) // if 2 was received
      {
        fill(0); // set fill color
      }
      else if( val == '3' ) // if 3 was received
      {
        fill(0,100,0); // set fill color
      }
      else if( val == '4' ) // if 4 was received
      {
        fill(0,0,100); // set fill color
      }
      else if( val == '5' ) // if 5 was received
      {
        fill(100,0,0); // set fill color
      }
      else { // if other data was received (in this case 0)
        fill(255); // set fill to a different color
      }

      rect(50, 50, 100, 100); // draw rect
    }

    */

|  | Circuit schematics: Each button switch is connected to Wiring digital pins 0-5.