Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.24 KB | None | 0 0
  1. #include <Servo.h>
  2. #include <Timer.h>
  3.  
  4. #define trig_pin 11//set trigpin
  5. #define echo_pin 10//set echopin
  6.  
  7. Servo claw_servo;// declare servo name type servo
  8. int duration, distance, previous_distance;//declare variable for unltrasonic sensor
  9.  
  10. bool isInOperation = false;
  11.  
  12. Timer timer;
  13.  
  14. void setup()
  15. {
  16. timer.update();
  17. Serial.begin(9600);
  18. pinMode(trig_pin, OUTPUT);
  19. pinMode(echo_pin, INPUT);
  20.  
  21. timer.every(1000, updatePreviousDistance);
  22.  
  23. claw_servo.attach(2);// attaching servo
  24. claw_servo.writeMicroseconds(1500);
  25. }
  26. void loop()
  27. {
  28. timer.update();
  29. digitalWrite(trig_pin, HIGH);
  30. _delay_ms(500);
  31. digitalWrite(trig_pin, LOW);
  32.  
  33. duration = pulseIn(echo_pin, HIGH);
  34. distance = (duration / 2) / 29.1;
  35. Serial.print("cm"); //print distance unit cm
  36. Serial.println(distance);//distance
  37.  
  38. if (distance > -1 && distance <= 10 && previous_distance > distance && isInOperation == false)
  39. {
  40. claw_servo.write(5);
  41. isInOperation = true;
  42.  
  43. timer.after(3000, closeClaw);
  44. }
  45. }
  46.  
  47. void updatePreviousDistance()
  48. {
  49. previous_distance = distance;
  50. }
  51.  
  52. void closeClaw()
  53. {
  54. claw_servo.write(175);
  55. timer.after(5000, setOperationFalse);
  56. }
  57.  
  58. void setOperationFalse()
  59. {
  60. isInOperation = false;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement