safwan092

project_10463

Nov 19th, 2022
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.27 KB | None | 0 0
  1. unsigned long limit = 5000; // 5 Seconds = 5 * 1000 = 5000
  2. //unsigned long limit = 60000; // 1 Minute = 1 * 60 * 1000 = 60000
  3. //unsigned long limit = 300000; // 5 Minutes = 5 * 60 * 1000 = 300000
  4.  
  5. #define ledPin 13
  6. #define cameraPin 12
  7. #define sensorPin 2
  8.  
  9. bool sensorState;
  10. bool startState = LOW;
  11. bool resetState = LOW;
  12. bool flag = LOW;
  13. bool photo_flag = LOW;
  14.  
  15. unsigned long startMillis;
  16. unsigned long currentMillis;
  17. unsigned long elapsedMillis;
  18.  
  19.  
  20. void setup() {
  21. pinMode(sensorPin, INPUT);
  22. pinMode(cameraPin, OUTPUT);
  23. pinMode(ledPin, OUTPUT);
  24. digitalWrite(cameraPin, LOW);
  25. digitalWrite(ledPin, LOW);
  26. delay(500);
  27. Serial.begin(9600);
  28. Serial.println("Starting...");
  29. }
  30. void loop() {
  31. sensorState = !digitalRead(sensorPin);
  32. Serial.println(sensorState);
  33. if ((sensorState == 1) && (flag == 0)) {
  34. Serial.println("Timer Started");
  35. startMillis = millis();
  36. startState = 1;
  37. flag = 1;
  38. }
  39. else if ((sensorState == 0) && (flag == 1)) {
  40. Serial.println("Timer Stoped");
  41. startState = 0;
  42. flag = 0;
  43. photo_flag = 0;
  44. digitalWrite(ledPin, LOW);
  45. }
  46.  
  47. if (startState == 1)
  48. {
  49. currentMillis = millis();
  50. elapsedMillis = (currentMillis - startMillis);
  51. Serial.print("elapsedMillis: ");
  52. Serial.print(elapsedMillis);
  53. Serial.println("");
  54. if ((elapsedMillis > limit) && (photo_flag == 0)) {
  55. Serial.println("Photo Taken");
  56. //take Photo to cloud storage
  57. digitalWrite(cameraPin, HIGH);
  58. delay(500);
  59. digitalWrite(cameraPin, LOW);
  60. digitalWrite(ledPin, HIGH);
  61. photo_flag = 1;
  62. delay(1000);
  63. }
  64. unsigned long durMS = (elapsedMillis % 1000); //Milliseconds
  65. unsigned long durSS = (elapsedMillis / 1000) % 60; //Seconds
  66. unsigned long durMM = (elapsedMillis / (60000)) % 60; //Minutes
  67. unsigned long durHH = (elapsedMillis / (3600000)); //Hours
  68. durHH = durHH % 24;
  69.  
  70. Serial.print("Time: ");
  71. Serial.print(durHH);
  72. Serial.print(" : ");
  73. Serial.print(durMM);
  74. Serial.print(" : ");
  75. Serial.print(durSS);
  76. Serial.print(" : ");
  77. Serial.print(durMS);
  78. Serial.println("");
  79. Serial.println("******************************");
  80. Serial.println("");
  81. delay(150);
  82. }
  83.  
  84. }// end of loop
Advertisement
Add Comment
Please, Sign In to add comment