const byte fogButton = 7;
const byte fogLamp = 8;
# define ON HIGH
# define OFF LOW
# define PRESST LOW
boolean fogButtonCurrent;
boolean fogButtonPrevious;
boolean fogState;
unsigned long fogTimer;
unsigned long debounce = 200;
void setup() {
pinMode(fogButton, INPUT_PULLUP);
pinMode(fogLamp, OUTPUT);
}
void loop() {
unsigned long now;
fogButtonCurrent = digitalRead(fogButton) == PRESST;
if (fogButtonCurrent && !fogButtonPrevious && millis() - fogTimer > debounce) {
fogState = !fogState;
fogTimer = millis();
}
fogButtonPrevious = fogButtonCurrent;
digitalWrite(fogLamp, fogState ? ON : OFF);
}