/* Blink an LED without using delay() */
#define LED 9
#define BUTTON 12
unsigned long timeOn = 500;
unsigned long changeTime = 0;
void setup() {
pinMode(LED, OUTPUT);
pinMode(BUTTON, INPUT_PULLUP);
}
unsigned char ledValue = 0;
void loop() {
if (millis() >= changeTime) {
ledValue = !ledValue;
analogWrite(LED, ledValue);
changeTime = millis() + timeOn;
}
if (digitalRead(BUTTON) == 0) {
ledValue = ledValue + 20;
if (ledValue > 240) {
ledValue = 0;
}
}
}