| Ghost > 2nd Prototype Code | ||
|
Ghost |
![]() |
|
| 2nd Prototype Code 1 aruion board + 3 LEDs + 2 switches
int leftSwitchPin=2;
int rightSwitchPin=12;
int leftLEDPin=3;
int ghostLEDPin=5;
int rightLEDPin=10;
int leftVal = 0; // left variable for reading the pin status
int leftCounter = 0;
int leftCurrentState = 0;
int leftPreviousState = 0;
int rightVal = 0; // right variable for reading the pin status
int rightCounter = 0;
int rightCurrentState = 0;
int rightPreviousState = 0;
void setup() {
pinMode(leftSwitchPin,INPUT);
pinMode(rightSwitchPin,INPUT);
pinMode(leftLEDPin, OUTPUT);
pinMode(ghostLEDPin, OUTPUT);
pinMode(rightLEDPin, OUTPUT);
beginSerial(9600);
}
void loop(){
//left side start
leftVal = digitalRead(leftSwitchPin); // read input value
if (leftVal == HIGH) { // check if the input is HIGH (button released)
leftCurrentState = 1;
}
else {
leftCurrentState = 0;
}
if(leftCurrentState != leftPreviousState){
if(leftCurrentState == 1){
leftCounter = leftCounter + 1;
Serial.print("leftCounter = ");
Serial.println(leftCounter);
}
}
leftPreviousState = leftCurrentState;
switch(leftCounter){
case 0:
delay(30);
// turn LED off
digitalWrite(leftLEDPin,LOW);
digitalWrite(ghostLEDPin,LOW);
digitalWrite(rightLEDPin,LOW);
break;
case 1:
delay(30);
// turn LED on
digitalWrite(leftLEDPin,HIGH);
digitalWrite(ghostLEDPin,HIGH);
digitalWrite(rightLEDPin,LOW);
break;
case 2:
//delay(30);
leftCounter = 0;
}
// right side start
rightVal = digitalRead(rightSwitchPin); // read input value
if (rightVal == HIGH) { // check if the input is HIGH (button released)
rightCurrentState = 1;
}
else {
rightCurrentState = 0;
}
if(rightCurrentState != rightPreviousState){
if(rightCurrentState == 1){
rightCounter = rightCounter + 1;
Serial.print("rightCounter = ");
Serial.println(rightCounter);
}
}
rightPreviousState = rightCurrentState;
switch(rightCounter){
case 0:
delay(30);
// turn LED off
digitalWrite(leftLEDPin,LOW);
digitalWrite(ghostLEDPin,LOW);
digitalWrite(rightLEDPin,LOW);
break;
case 1:
delay(30);
// turn LED on
digitalWrite(leftLEDPin,LOW);
digitalWrite(ghostLEDPin,HIGH);
digitalWrite(rightLEDPin,HIGH);
break;
case 2:
//delay(30);
rightCounter = 0;
}
if (leftCounter == 1 && rightCounter == 1){
digitalWrite(leftLEDPin,HIGH);
digitalWrite(ghostLEDPin,HIGH);
digitalWrite(rightLEDPin,HIGH);
delay(30);
digitalWrite(leftLEDPin,LOW);
digitalWrite(ghostLEDPin,LOW);
digitalWrite(rightLEDPin,LOW);
delay(30);
}
if((leftCounter+rightCounter)>2) {
leftCounter=0;
rightCounter=0;
}
}
|
||
| Do you want to contact us? Ji Sun Lee, Emery Martin, Robert C. Moon | ||