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: LCD Timer
- - Source Code compiled for: Arduino Mega
- - Source Code created on: 2024-04-04 15:33:53
- ********* Pleasedontcode.com **********/
- /****** SYSTEM REQUIREMENTS *****/
- /****** SYSTEM REQUIREMENT 1 *****/
- /* create a 5 minutes timer that starts when i push */
- /* the button and stops when i push it again */
- /****** END SYSTEM REQUIREMENTS *****/
- /****** DEFINITION OF LIBRARIES *****/
- #include <Wire.h>
- #include <LiquidCrystal_I2C.h> // https://github.com/marcoschwartz/LiquidCrystal_I2C
- #include <EasyButton.h> // https://github.com/evert-arias/EasyButton
- /****** FUNCTION PROTOTYPES *****/
- void setup();
- void loop();
- /***** DEFINITION OF DIGITAL INPUT PINS *****/
- const uint8_t BUTTON_PIN = 2;
- /***** DEFINITION OF I2C PINS *****/
- const uint8_t LCD_I2C_PIN_SDA = 20;
- const uint8_t LCD_I2C_PIN_SCL = 21;
- const uint8_t LCD_I2C_SLAVE_ADDRESS = 39;
- /****** DEFINITION OF LIBRARIES CLASS INSTANCES*****/
- LiquidCrystal_I2C lcd(LCD_I2C_SLAVE_ADDRESS, 20, 4); // Initialize the LiquidCrystal_I2C class instance
- EasyButton pushButton(BUTTON_PIN); // Initialize the EasyButton with the button pin
- bool timerRunning = false;
- unsigned long timerStartTime;
- const unsigned long TIMER_DURATION = 5 * 60 * 1000; // 5 minutes in milliseconds
- void onPressedForDuration()
- {
- if (timerRunning) {
- // Stop the timer
- unsigned long elapsed = millis() - timerStartTime;
- timerRunning = false;
- // Display the elapsed time on the LCD
- lcd.setCursor(0, 0);
- lcd.print("Elapsed Time: ");
- lcd.setCursor(0, 1);
- lcd.print(elapsed / 1000);
- lcd.print(" seconds");
- } else {
- // Start the timer
- timerStartTime = millis();
- timerRunning = true;
- // Clear the LCD
- lcd.clear();
- }
- }
- void setup()
- {
- // put your setup code here, to run once:
- pushButton.begin(); // Initialize the EasyButton
- pushButton.onPressedFor(2000, onPressedForDuration); // Add the callback function to be called when the button is pressed for at least the given time.
- lcd.begin(20, 4); // Initialize the LCD
- }
- void loop()
- {
- // put your main code here, to run repeatedly:
- pushButton.read(); // Continuously read the status of the button.
- // Check if the timer has reached the desired duration
- if (timerRunning && millis() - timerStartTime >= TIMER_DURATION) {
- // Stop the timer
- timerRunning = false;
- // Display the timer finished message on the LCD
- lcd.setCursor(0, 0);
- lcd.print("Timer Finished!");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement