Door Open Serial 

Run Settings
LanguageC++
Language Version
Run Command
// *************************************************************************** // this constant won't change: const int buttonPin = 2; // the pin that the pushbutton is attached to const int ledPin = 13; // the pin that the LED is attached to // Variables will change: int DOCounter = 0; // counter for the number of Door Opened int doorState = 0; // current state of the Door int lastdoorState = 0; // previous state of the Door unsigned long Dtemps = 0; // Duration of the operation unsigned long SDtemps = 0; // Duration of the operation in second unsigned long DtimeO = 0; // Exact time the door is opened unsigned long SDtimeO = 0; // Exact time the door is opened in seconds unsigned long DtimeC = 0; // Exact time the door is closed unsigned long SDtimeC = 0; // Exact time the door is Closed in seconds unsigned long DOtime = 0; // Door Previous opening time unsigned long SDOtime = 0; // Door Previous opening time in seconds unsigned long DOTotaltime = 0; // Cumulative time of all Door openings unsigned long SDOTotaltime = 0; // Cumulative time of all Door openings in seconds float DOpercent = 0; // Percentage of door opening time // ******************************************************** void setup() { // initialize the button pin as a input: pinMode(buttonPin, INPUT); // initialize the LED as an output: pinMode(ledPin, OUTPUT); // initialize serial communication: Serial.begin(9600); //Program Start Phrase Serial.println( " Starting the program: Hello ... "); Serial.println(" "); /* Op : Opening D. O .T. : Door opening time D. C .T. : Door closing time D. O. : Door open time C. D. O. : Cumulative door open time D. S. O. : Duration of the operation % : Percentage of door opening time */ Serial.println(" Op : Opening | D. O .T. : Door opening time | D. C .T. : Door closing time"); Serial.println(" D. O. : Door open time | C. D. O. : Cumulative door open time "); Serial.println(" D. S. O. : Duration of the operation | % : Percentage of door opening time "); Serial.println(" "); Serial.println("********************************************************************"); Serial.println(" Op | D. O .T. | D. C. T. | D. O. | C. D. O. | D. S. O. | % "); Serial.println("--------------------------------------------------------------------"); } //void setup // *************************************************************************** void loop() { // read the pushbutton input pin: doorState = digitalRead(buttonPin); Dtemps = millis(); // Exact time the operation began // compare the buttonState to its previous state if (doorState != lastdoorState) { // if the state has changed, increment the counter if (doorState == LOW) { // turn LED ON: digitalWrite(ledPin, HIGH); // if the current state is HIGH then the button went from off to on: DOCounter++; // Adds 1 to the counter DtimeO = millis(); // Exact time the door is opened } //if (doorState == LOW) else { // turn LED OFF: digitalWrite(ledPin, LOW); // if the current state is LOW then the button went from on to off: SDtemps = 0.001 * Dtemps; // Expression of time in seconds SDtimeO = 0.001 * DtimeO; // Expression of time in seconds DtimeC = millis(); // Exact time the door is closed SDtimeC = 0.001 * DtimeC;// Expression of time in seconds DOtime = DtimeC - DtimeO; // Calculation of door opening time SDOtime = 0.001 * DOtime; // Expression of time in seconds DOTotaltime = DOTotaltime + DOtime; // Calculation of the total duration of all door openings SDOTotaltime = 0.001 * DOTotaltime; // Expression of time in seconds float fDtimeC = (float)DtimeC; // Conversion to Float float fDOTotaltime = (float)DOTotaltime; // Conversion to Float DOpercent = 100 * (fDOTotaltime / fDtimeC); // percentage calculation // Display values // Op: if (DOCounter < 10){Serial.print(" ");} else if (DOCounter < 100){Serial.print(" ");} Serial.print(DOCounter); Serial.print(" | "); // D. O. T. if ( SDtimeO < 10){ Serial.print(" ");} else if ( SDtimeO < 100){ Serial.print(" ");} else if ( SDtimeO < 1000){ Serial.print(" ");} else if ( SDtimeO < 10000){ Serial.print(" ");} Serial.print(SDtimeO); Serial.print(" | "); // D. C. T. if ( SDtimeC < 10){ Serial.print(" ");} else if ( SDtimeC < 100){ Serial.print(" ");} else if ( SDtimeC < 1000){ Serial.print(" ");} else if ( SDtimeC < 10000){ Serial.print(" ");} Serial.print(SDtimeC); Serial.print(" | "); // D. O. if ( SDOtime < 10){ Serial.print(" ");} else if ( SDOtime < 100){ Serial.print(" ");} else if ( SDOtime < 1000){ Serial.print(" ");} else if ( SDOtime < 10000){ Serial.print(" ");} Serial.print(SDOtime); Serial.print(" | "); // C. D. O. if ( SDOTotaltime < 10){ Serial.print(" ");} else if ( SDOTotaltime < 100){ Serial.print(" ");} else if ( SDOTotaltime < 1000){ Serial.print(" ");} else if ( SDOTotaltime < 10000){ Serial.print(" ");} Serial.print(SDOTotaltime); Serial.print(" | "); // D. S. O. if ( SDtemps < 10){ Serial.print(" ");} else if ( SDtemps < 100){ Serial.print(" ");} else if ( SDtemps < 1000){ Serial.print(" ");} else if ( SDtemps < 10000){ Serial.print(" ");} Serial.print(SDtemps); Serial.print(" | "); // % if ( DOpercent < 10){ Serial.print(" ");} else if ( DOpercent < 100){ Serial.print(" ");} Serial.println(DOpercent); Serial.println("--------------------------------------------------------------------"); } //else // Delay a little bit to avoid bouncing delay(10); } //if (doorState != lastdoorState) // save the current state as the last state, for next time through the loop lastdoorState = doorState; } //void loop
Editor Settings
Theme
Key bindings
Full width
Lines