const int xP = 2; const int yP = 3; int frontPin = 10; // Green LED connected to digital pin 11 int backPin = 13; int leftPin = 11; int rightPin = 12; int shuffle = 0; int numbers[] = { 0, 1, 2, 3 }; void setup() { // put your setup code here, to run once: Serial.begin(9600); beep(50); beep(50); beep(50); // declare pin 9 to be sound output: pinMode(9, OUTPUT); pinMode(xP, INPUT); pinMode(yP, INPUT); pinMode(frontPin, OUTPUT); // sets the digital pin as output pinMode(backPin, OUTPUT); pinMode(leftPin, OUTPUT); pinMode(rightPin, OUTPUT); } void loop() { // put your main code here, to run repeatedly: int px, py; int ax, ay; px = pulseIn(xP, HIGH); py = pulseIn(yP, HIGH); ax = ((px / 10) - 500) * 8; ay = ((py / 10) - 500) * 8; //Serial.print(ax); //Serial.print("\t"); //Serial.print(ay); //Serial.println(); Serial.println(shuffle); if (shuffle == 0) { //FRONT PIN HIGH digitalWrite(frontPin, HIGH); digitalWrite(backPin, LOW); digitalWrite(leftPin, LOW); digitalWrite(rightPin, LOW); //back swing if (ay >= 800) { //Serial.println("BACK"); beep(200); shuffle = (int) random(4); } } else if (shuffle == 1) { //BACK PIN HIGH digitalWrite(backPin, HIGH); digitalWrite(frontPin, LOW); digitalWrite(leftPin, LOW); digitalWrite(rightPin, LOW); //front swing if (ay <= -600) { //Serial.println("FRONT"); beep(200); shuffle = (int) random(4); } } else if (shuffle == 2) { //LEFT PIN HIGH digitalWrite(leftPin, HIGH); digitalWrite(frontPin, LOW); digitalWrite(backPin, LOW); digitalWrite(rightPin, LOW); //right swing if (ax <= -800) { // Serial.println("RIGHT"); beep(200); shuffle = (int) random(4); } } else if (shuffle == 3) { //RIGHT PIN HIGH digitalWrite(rightPin, HIGH); digitalWrite(frontPin, LOW); digitalWrite(backPin, LOW); digitalWrite(leftPin, LOW); //left swing if (ax >= 800) { //Serial.println("LEFT"); beep(200); shuffle = (int) random(4); } } delay(100); } void beep(unsigned char delayms) { analogWrite(9, 20); // Almost any value can be used except 0 and 255 // experiment to get the best tone delay(delayms); // wait for a delayms ms analogWrite(9, 0); // 0 turns it off delay(delayms); // wait for a delayms ms }