/* Blink without Delay Turns on and off a light emitting diode (LED) connected to a digital pin, without using the delay() function. This means that other code can run at the same time without being interrupted by the LED code. The circuit: - Use the onboard LED. - Note: Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to the correct LED pin independent of which board is used. If you want to know what pin the on-board LED is connected to on your Arduino model, check the Technical Specs of your board at: https://www.arduino.cc/en/Main/Products created 2005 by David A. Mellis modified 8 Feb 2010 by Paul Stoffregen modified 11 Nov 2013 by Scott Fitzgerald modified 9 Jan 2017 by Arturo Guadalupi This example code is in the public domain. http://www.arduino.cc/en/Tutorial/BlinkWithoutDelay */ //=============================================================================== //DEFINITIONS // constants: const int ledPin = 7;// the number of the LED pin const int buttonPin = 3; // the number of the pushbutton pin const long interval = 100; // interval at which to blink (milliseconds) // variables: int ledState = LOW; // ledState used to set the LED int buttonState = 0; // variable for reading the pushbutton status //=============================================================================== //PROGRAM void setup() { // set the digital pin as output: pinMode(ledPin, OUTPUT); } // Generally, you should use "unsigned long" for variables that hold time // The value will quickly become too large for an int to store unsigned long previousMillis = 0; // will store last time LED was updated void loop() { // here is where you'd put code that needs to be running all the time. buttonState = digitalRead(buttonPin); // check if the pushbutton is pressed. If it is, the buttonState is HIGH: if (buttonState == LOW) { unsigned long currentMillis = millis(); if (currentMillis - previousMillis >= interval) { // save the last time you blinked the LED previousMillis = currentMillis; // if the LED is off turn it on and vice-versa: if (ledState == LOW) { ledState = HIGH; } else { ledState = LOW; } } // check to see if it's time to blink the LED; that is, if the difference // between the current time and last time you blinked the LED is bigger than // the interval at which you want to blink the LED. // set the LED with the ledState of the variable: digitalWrite(ledPin, ledState); } else { digitalWrite(ledPin, LOW); } }