Advertisement
safwan092

Untitled

Jun 10th, 2023
22
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. #include <Servo.h>
  2.  
  3. int maxDistanceDoorEmpty = 30;
  4.  
  5. int flag = 0;
  6. #define trigPin 11
  7. #define echoPin 10
  8. #define servoPin 9
  9.  
  10. Servo myservo;
  11.  
  12. long duration;//1000 ms = 1 sec
  13. int distanceCM;
  14.  
  15. void setup() {
  16. Serial.begin(9600);
  17. pinMode(trigPin, OUTPUT);
  18. pinMode(echoPin, INPUT);
  19. myservo.attach(servoPin);
  20. delay(1000);
  21. Serial.println("Setup Complete");
  22. }
  23.  
  24. void loop() {
  25. messureDistance();
  26. if (distanceCM > maxDistanceDoorEmpty)
  27. distanceCM = maxDistanceDoorEmpty;
  28. distanceCM = map(distanceCM, 0, maxDistanceDoorEmpty, maxDistanceDoorEmpty, 0);
  29. Serial.print("Distance: ");
  30. Serial.println(distanceCM);
  31.  
  32.  
  33. if (distanceCM > 10 && distanceCM < 19)
  34. {
  35. Serial.println("protect");
  36. // protect child
  37. myservo.write(90);
  38. delay(500);
  39. flag = 1;
  40. }
  41. else if (distanceCM >= 19 || distanceCM < 10) {
  42. if (flag == 0) {
  43. // normal people walking
  44.  
  45. Serial.println("normal");
  46. myservo.write(0);
  47. delay(50);
  48. }
  49. }
  50.  
  51. }//end of loop
  52.  
  53.  
  54. void messureDistance() {
  55. digitalWrite(trigPin, LOW);
  56. delayMicroseconds(2);
  57. digitalWrite(trigPin, HIGH);
  58. delayMicroseconds(10);
  59. digitalWrite(trigPin, LOW);
  60. duration = pulseIn(echoPin, HIGH);//1000 ms = 1 sec
  61. distanceCM = duration * 0.034 / 2;
  62.  
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement