/********* Pleasedontcode.com **********
Pleasedontcode thanks you for automatic code generation! Enjoy your code!
- Terms and Conditions:
You have a non-exclusive, revocable, worldwide, royalty-free license
for personal and commercial use. Attribution is optional; modifications
are allowed, but you're responsible for code maintenance. We're not
liable for any loss or damage. For full terms,
please visit pleasedontcode.com/termsandconditions.
- Project: Button Blink
- Source Code compiled for: Arduino Uno
- Source Code created on: 2024-04-07 11:22:41
********* Pleasedontcode.com **********/
/****** SYSTEM REQUIREMENTS *****/
/****** SYSTEM REQUIREMENT 1 *****/
/* When the EasyButton connected to pin D2 is */
/* pressed, the green LED connected to pin D4 shall */
/* blink precisely 10 times and then stop blinking, */
/* waiting for the EasyButton to be pressed again. */
/****** SYSTEM REQUIREMENT 2 *****/
/* Αφού η πράσινη λυχνία LED στον ακροδέκτη D4 */
/* τελειώσει να αναβοσβήνει, η κόκκινη λυχνία LED */
/* στον ακροδέκτη D3 θα πρέπει να παραμείνει αναμμένη */
/* για διάστημα 10 δευτερολέπτων και στη συνέχεια να */
/* σβήσει. */
/****** END SYSTEM REQUIREMENTS *****/
/****** DEFINITION OF LIBRARIES *****/
#include // https://github.com/evert-arias/EasyButton
/****** FUNCTION PROTOTYPES *****/
void setup();
void loop();
void blinkGreenLED();
void turnOffRedLED();
/***** DEFINITION OF DIGITAL INPUT PINS *****/
const uint8_t BUTTON_PIN = 2;
/***** DEFINITION OF DIGITAL OUTPUT PINS *****/
const uint8_t RED_LED_PIN = 3;
const uint8_t GREEN_LED_PIN = 4;
/****** DEFINITION OF LIBRARIES CLASS INSTANCES*****/
EasyButton button(BUTTON_PIN); // Instance of the EasyButton class
// Flag to track if the button is pressed
bool buttonPressed = false;
void setup()
{
// Initialize the digital input and output pins
pinMode(BUTTON_PIN, INPUT_PULLUP);
pinMode(RED_LED_PIN, OUTPUT);
pinMode(GREEN_LED_PIN, OUTPUT);
// Initialize the button object
button.begin();
// Attach a callback function to be called when the button is pressed
button.onPressed(blinkGreenLED);
}
void loop()
{
// Continuously read the status of the button
button.read();
// Check if the button is pressed
if (button.isPressed())
{
// Check if the button is not already pressed
if (!buttonPressed)
{
// Set the flag to indicate that the button is pressed
buttonPressed = true;
// Blink the green LED precisely 10 times
for (int i = 0; i < 10; i++)
{
digitalWrite(GREEN_LED_PIN, HIGH);
delay(250);
digitalWrite(GREEN_LED_PIN, LOW);
delay(250);
}
// Stop blinking the green LED
digitalWrite(GREEN_LED_PIN, LOW);
// Turn on the red LED for 10 seconds
digitalWrite(RED_LED_PIN, HIGH);
delay(10000);
digitalWrite(RED_LED_PIN, LOW);
// Reset the flag
buttonPressed = false;
}
}
}
void blinkGreenLED()
{
// Blink the green LED once when the button is pressed
digitalWrite(GREEN_LED_PIN, HIGH);
delay(250);
digitalWrite(GREEN_LED_PIN, LOW);
}
void turnOffRedLED()
{
// Turn off the red LED
digitalWrite(RED_LED_PIN, LOW);
}