//I've been trying for hours :/
#define RUNE1 PA1 //Green
#define RUNE2 PA2 //Red
#define TRAP PA0 //blue
#define LED1 PC13 //green
#define LED2 PA8 // red
#define BUZZER PB13
bool led2State = LOW;
volatile int trap_triggered = 0;
void trapISR() {
trap_triggered = 1;
digitalWrite(BUZZER, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(BUZZER, HIGH);
delay(300);
digitalWrite(LED1, LOW);
delay(300);
}
void setup() {
pinMode(RUNE1, INPUT);
pinMode(RUNE2, INPUT);
pinMode(TRAP, INPUT);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(BUZZER, OUTPUT);
attachInterrupt(digitalPinToInterrupt(TRAP), trapISR, RISING);
}
void loop() {
if (trap_triggered == 0) {
digitalWrite(BUZZER, LOW);
if (digitalRead(RUNE1)) {
digitalWrite(LED1, HIGH); // Clue LED on permenent
delay(300);
}
if (digitalRead(RUNE2)) {
led2State =! led2State;
digitalWrite(LED2, led2State); // Torch toggle
delay(300); // Simple debounce
}
} else {
// Trap mode: LED1 blinks, buzzer on
trapISR();
}
}
Loading
stm32-bluepill
stm32-bluepill