/********* 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: Sensor Control - Source Code NOT compiled for: Arduino Uno - Source Code created on: 2024-09-30 17:18:14 ********* Pleasedontcode.com **********/ /****** SYSTEM REQUIREMENTS *****/ /****** SYSTEM REQUIREMENT 1 *****/ /* The application must implement the Ultrasonic */ /* sensor for real-time distance detection and */ /* utilize EasyButton for user-triggered actions, */ /* enhancing interaction and responsiveness in the */ /* CROSSING project environment. */ /****** END SYSTEM REQUIREMENTS *****/ /****** DEFINITION OF LIBRARIES *****/ #include // https://github.com/evert-arias/EasyButton #include // https://github.com/ErickSimoes/Ultrasonic /****** FUNCTION PROTOTYPES *****/ void setup(void); void loop(void); void updateOutputs(void); void buttonPressedTwoSeconds(void); void buttonISR(void); /***** DEFINITION OF DIGITAL INPUT PINS *****/ const uint8_t OD_HC_SR04_Echo_PIN_D3 = 3; /***** DEFINITION OF DIGITAL OUTPUT PINS *****/ const uint8_t OD_HC_SR04_Trigger_PIN_D2 = 2; /***** DEFINITION OF OUTPUT RAW VARIABLES *****/ /***** used to store raw data *****/ bool OD_HC_SR04_Trigger_PIN_D2_rawData = 0; /***** DEFINITION OF OUTPUT PHYSICAL VARIABLES *****/ /***** used to store data after characteristic curve transformation *****/ float OD_HC_SR04_Trigger_PIN_D2_phyData = 0.0; /****** DEFINITION OF LIBRARIES CLASS INSTANCES *****/ // Initialize EasyButton object with the button pin EasyButton button(2); // Assuming button is connected to pin 2 // Initialize Ultrasonic object with the trigger and echo pins Ultrasonic ultrasonic(OD_HC_SR04_Trigger_PIN_D2, OD_HC_SR04_Echo_PIN_D3); // Trigger pin, Echo pin void setup(void) { // Set up the ultrasonic sensor pins pinMode(OD_HC_SR04_Echo_PIN_D3, INPUT); pinMode(OD_HC_SR04_Trigger_PIN_D2, OUTPUT); // Initialize serial communication for debugging Serial.begin(115200); Serial.println(); Serial.println(">>> Ultrasonic and EasyButton Example <<<"); // Initialize the button button.begin(); button.onPressedFor(2000, buttonPressedTwoSeconds); // Set action for button press duration if (button.supportsInterrupt()) { button.enableInterrupt(buttonISR); // Enable interrupt for button Serial.println("Button will be used through interrupts"); } } void loop(void) { // Refresh output data updateOutputs(); button.update(); // Update button state // Read distance from ultrasonic sensor and print it int distance = ultrasonic.read(); // Get distance in cm Serial.print("Distance in CM: "); Serial.println(distance); } void updateOutputs() { digitalWrite(OD_HC_SR04_Trigger_PIN_D2, OD_HC_SR04_Trigger_PIN_D2_rawData); } // Function called when the button is pressed for two seconds void buttonPressedTwoSeconds(void) { Serial.println("Button pressed for two seconds"); } // Interrupt service routine for button void buttonISR(void) { button.read(); // Read the button state } /* END CODE */