Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /********* 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 Toggle
- - Source Code compiled for: Arduino Uno
- - Source Code created on: 2024-02-09 19:56:20
- ********* Pleasedontcode.com **********/
- /****** SYSTEM REQUIREMENTS *****/
- /****** SYSTEM REQUIREMENT 1 *****/
- /* if trigger is pressed, output 7 will turn on off */
- /* for 10 times, then will stay on for 10 seconds */
- /* then will turn on off 3 times then turn off */
- /****** END SYSTEM REQUIREMENTS *****/
- /****** DEFINITION OF LIBRARIES *****/
- #include <EasyButton.h> // https://github.com/evert-arias/EasyButton
- /****** FUNCTION PROTOTYPES *****/
- void setup(void);
- void loop(void);
- /***** DEFINITION OF DIGITAL INPUT PINS *****/
- const uint8_t trigger_PushButton_PIN_D2 = 2;
- const uint8_t output_PIN_D7 = 7;
- /****** DEFINITION OF LIBRARIES CLASS INSTANCES*****/
- EasyButton triggerButton(trigger_PushButton_PIN_D2);
- // State variables
- bool isTriggered = false;
- bool isToggleOn = false;
- int toggleCount = 0;
- unsigned long startTime = 0;
- void setup(void)
- {
- // put your setup code here, to run once:
- pinMode(trigger_PushButton_PIN_D2, INPUT_PULLUP);
- pinMode(output_PIN_D7, OUTPUT);
- // Initialize the EasyButton object
- triggerButton.begin();
- }
- void loop(void)
- {
- // put your main code here, to run repeatedly:
- // Read the state of the button
- triggerButton.read();
- // Check if the button is pressed
- if (triggerButton.isPressed())
- {
- // Toggle the output pin if the button is pressed
- isTriggered = true;
- toggleOutputPin();
- }
- // Check if the toggle count has reached 10
- if (toggleCount == 10)
- {
- // Turn on the output pin for 10 seconds
- if (isToggleOn)
- {
- digitalWrite(output_PIN_D7, HIGH);
- startTime = millis();
- isToggleOn = false;
- }
- else
- {
- // Check if 10 seconds have passed
- if (millis() - startTime >= 10000)
- {
- // Turn off the output pin
- digitalWrite(output_PIN_D7, LOW);
- isToggleOn = true;
- toggleCount = 0;
- isTriggered = false;
- }
- }
- }
- // Check if the toggle count has reached 3 after the 10 seconds
- if (toggleCount >= 10 && toggleCount < 13)
- {
- // Toggle the output pin
- toggleOutputPin();
- }
- }
- void toggleOutputPin()
- {
- if (isToggleOn)
- {
- digitalWrite(output_PIN_D7, HIGH);
- }
- else
- {
- digitalWrite(output_PIN_D7, LOW);
- }
- isToggleOn = !isToggleOn;
- toggleCount++;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement