Está en la página 1de 1

const int activadorPin = 2; // Pin para activar la sirena

const int detenerSirenaPin = 3; // Pin para detener la sirena inmediatamente


const int sirena_tone = 4; // Pin donde se conecta el buzzer
bool sirenaActiva = false;

void setup() {
pinMode(activadorPin, INPUT_PULLUP);
pinMode(detenerSirenaPin, INPUT_PULLUP);
pinMode(sirena_tone, OUTPUT);
}

void loop() {
int activadorEstado = digitalRead(activadorPin);
int detenerSirenaEstado = digitalRead(detenerSirenaPin);

if (activadorEstado == LOW && !sirenaActiva) {


activarSirena();
}

if (detenerSirenaEstado == LOW && sirenaActiva) {


detenerSirena();
}
}

void activarSirena() {
sirenaActiva = true;
for (int x = 0; x < 180; x++) {
float sinVal = sin(x * (3.1412 / 180));
int toneVal = 2000 + (int(sinVal * 1000));
tone(sirena_tone, toneVal);
delay(2);
}
}

void detenerSirena() {
noTone(sirena_tone);
sirenaActiva = false;
}

También podría gustarte