safwan092

Untitled

Dec 8th, 2022
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.95 KB | None | 0 0
  1. #include <Servo.h> //servo library
  2.  
  3. Servo servo;
  4. //******************************************
  5. int maxDistanceForFullBin = 7; // distance from sensor for full bin in (CM)
  6. int redLedPin = 4;
  7. //******************************************
  8. int trigPin = 5;
  9. int echoPin = 6;
  10. int trigPin1 = 7;
  11. int echoPin1 = 8;
  12. int servoPin = 9;
  13. int led1 = 10;
  14. long duration, dist, average;
  15. long duration1, dist1, average1;
  16. long aver[3]; //array for average
  17. //******************************************
  18. long aver1[3]; //array for average1
  19. int flag = 0;
  20. //******************************************
  21. void setup() {
  22. Serial.begin(9600);
  23. servo.attach(servoPin);
  24. pinMode(trigPin, OUTPUT);
  25. pinMode(echoPin, INPUT);
  26. pinMode(trigPin1, OUTPUT);
  27. pinMode(echoPin1, INPUT);
  28. pinMode(LED1, OUTPUT);
  29. //******************************************
  30. pinMode(redLedPin, OUTPUT);
  31. digitalWrite(redLedPin, LOW);
  32. //******************************************
  33. //servo.detach();
  34. }
  35.  
  36.  
  37. void loop() {
  38. //******************************************
  39. readSensorsAndCalculateAverageDistance();
  40. //******************************************
  41. if (dist < 50 && flag == 0) {
  42. digitalWrite(redLedPin, LOW);
  43. //Change distance as per your need
  44. //servo.attach(servoPin);
  45. //delay(1);
  46. // servo.write(1);
  47. //delay(800);
  48. servo.write(0);
  49. delay(3000);
  50. servo.write(90);
  51. delay(900);
  52. //servo.detach();
  53. //delay(3000);
  54. }
  55.  
  56. //******************************************
  57. if (dist1 <= maxDistanceForFullBin) {
  58. //turn flag to 1 so bin does not open
  59. flag = 1;
  60. //turn red led ON
  61. digitalWrite(redLedPin, HIGH);
  62. }
  63. else if (dist1 > maxDistanceForFullBin) {
  64. //turn flag to 0 so bin can open
  65. flag = 0;
  66. //turn red led OFF
  67. digitalWrite(redLedPin, LOW);
  68. }
  69. //******************************************
  70.  
  71. }//end of LOOP
  72.  
  73. //******************************************
  74. void readSensorsAndCalculateAverageDistance() {
  75. for (int i = 0; i <= 2; i++) { //average distance
  76. measure();
  77. measure1();
  78. aver[i] = dist;
  79. aver1[i] = dist1;
  80. delay(10); //delay between measurements
  81. }
  82. dist = (aver[0] + aver[1] + aver[2]) / 3;
  83. dist1 = (aver1[0] + aver1[1] + aver1[2]) / 3;
  84. Serial.print(dist);
  85. Serial.print(dist1);
  86. }
  87. //******************************************
  88. void measure() {
  89. digitalWrite(10, HIGH);
  90. digitalWrite(trigPin, LOW);
  91. delayMicroseconds(5);
  92. digitalWrite(trigPin, HIGH);
  93. delayMicroseconds(15);
  94. digitalWrite(trigPin, LOW);
  95. pinMode(echoPin, INPUT);
  96. duration = pulseIn(echoPin, HIGH);
  97. dist = (duration / 2) / 29.1; //obtain distance
  98. }
  99.  
  100. void measure1() {
  101. digitalWrite(10, HIGH);
  102. digitalWrite(trigPin1, LOW);
  103. delayMicroseconds(5);
  104. digitalWrite(trigPin1, HIGH);
  105. delayMicroseconds(15);
  106. digitalWrite(trigPin1, LOW);
  107. pinMode(echoPin1, INPUT);
  108. duration1 = pulseIn(echoPin1, HIGH);
  109. dist1 = (duratio1 / 2) / 29.1; //obtain distance
  110. }
  111.  
Advertisement
Add Comment
Please, Sign In to add comment