Variable not updating unless printed, or something else?

remember the loop runs "super fast" and you keep incrementing buzzerTimer which will go negative because it's a signed int...

you should rethink the code as a state machine (Here is a small introduction to the topic: Yet another Finite State Machine introduction )

the machine would look something like this

1 Like