//Arduino Laser Tag Gun with sensor and buzzer
//Code by Captain Richard
// ===== SENSOR SELECTION =====
// Set to 1 for the brown sensor, or 0 for the blue sensor
#define SENSOR_BROWN 1 // Change to 0 if using the blue sensor
void setup(void) {
Serial.begin(9600);
pinMode(2, INPUT); // Sensor "out"
pinMode(A0, OUTPUT); // LED
pinMode(A1, OUTPUT); // LED
pinMode(7, OUTPUT); // Laser
pinMode(10, OUTPUT); // Buzzer
pinMode(4, INPUT); // Button
digitalWrite(4, HIGH); // Turn Button on
// Print selected sensor type to Serial Monitor
#if SENSOR_BROWN
Serial.println("Sensor Type: Brown (Normal)");
#else
Serial.println("Sensor Type: Blue (Inverted)");
#endif
}
void loop() {
// Laser Sensor code
int detected = digitalRead(2); // Read Laser sensor
// Adjust for sensor type
bool isHit = SENSOR_BROWN ? (detected == HIGH) : (detected == LOW);
if (isHit) {
// Disable Gun and Buzz
digitalWrite(A1, LOW);
digitalWrite(A0, HIGH);
digitalWrite(7, LOW);
tone(10, 3000, 1000); // 1st beep
delay(1000);
noTone(10);
delay(1000);
tone(10, 2000, 1000); // 2nd beep
delay(1000);
noTone(10);
delay(1000);
tone(10, 1000, 1000); // 3rd beep
delay(1000);
noTone(10);
delay(1000);
digitalWrite(A0, LOW);
} else {
// Shoot Laser
if (digitalRead(4) == LOW) {
digitalWrite(7, HIGH);
} else {
digitalWrite(7, LOW);
}
digitalWrite(A1, HIGH);
}
}