   Serial.begin(9600); // See the connection status in Serial Monitor
   Blynk.begin(auth);
 
+  // Setup physical button pin (active low)
+  pinMode(btnPin, INPUT_PULLUP);
+
   while (Blynk.connect() == false) {
     // Wait until connected
   }
 
   timer.setInterval(1000L, blinkLedWidget);
-  timer.setInterval(200L, fadeLedWidget);
+  timer.setInterval(300L, fadeLedWidget);
+  timer.setInterval(500L, buttonLedWidget);
 }
 
+// V1 LED Widget is blinking
 void blinkLedWidget()
 {
   if (led1.getValue()) {

 * App project setup:
 *   LED widget on V1
 *   LED widget on V2
 *
 *
 * WARNING :
 * For this example you'll need SimpleTimer library:

  }
}

// V3 LED Widget represents the physical button state
boolean btnState = false;
void buttonLedWidget()
{
  // Read button
  boolean isPressed = (digitalRead(btnPin) == LOW);

  // If state has changed...
  if (isPressed != btnState) {
    if (isPressed) {
      led3.on();
    } else {
      led3.off();
    }
    btnState = isPressed;
  }
}

void loop()
{
  Blynk.run();
  timer.run();
}

