/* * Bike Safely... with Lasers! - A Build18 Project * * Subproject - Bike Turn Signal Jacket * * This code uses a momentary pushbutton as an on/off toggle * for a set of LEDs sewn to a jacket. So far, the pushcutton * activates a simple blink that bikes for seven seconds * while lighting an indicator light. * * TODO: Add XBee communication sending state of system to * other half of project. * * Created: Jan 10, 2010 * Modified: Jan 11, 2010 * * Author: Nicolas Paris * Email: bobabot1@gmail.com * Website: http://hacktastico.com * * Code is based off of Leah Buechley's Turn Signal Biiking Jacket * found here: http://web.media.mit.edu/~leah/LilyPad/build/turn_signal_jacket.html * as well as the StateChangeDetection code example by Tom Igoe * * */ const int leftLED = 13; const int leftButton = 3; const int leftIndicator = 10; const int rightLED = 12; const int rightButton = 11; const int rightIndicator = 10; int leftState = 0; int leftStatePrevious = 0; int rightState = 0; int rightStatePrevious = 0; int i = 0; void setup() { pinMode(leftLED,OUTPUT); pinMode(rightLED,OUTPUT); pinMode(leftIndicator,OUTPUT); pinMode(rightIndicator,OUTPUT); pinMode(leftButton,INPUT); pinMode(rightButton,INPUT); } void loop() { leftState = digitalRead(leftButton); rightState = digitalRead(rightButton); if(leftState != leftStatePrevious) { if(leftState == HIGH) { digitalWrite(leftIndicator,HIGH); // Send some sort of notice through XBee to start flashing for(i=0;i<7;i++) { digitalWrite(leftLED,HIGH); delay(500); digitalWrite(leftLED,LOW); delay(500); } digitalWrite(leftIndicator,LOW); } leftStatePrevious = leftState; } if(rightState != rightStatePrevious) { if(rightState == HIGH) { digitalWrite(rightIndicator,HIGH); // Send some sort of notice through XBee to start flashing for(i=0;i<7;i++) { digitalWrite(rightLED,HIGH); delay(500); digitalWrite(rightLED,LOW); delay(500); } digitalWrite(rightIndicator,LOW); } rightStatePrevious = rightState; } }