Advertisement
Erfinator

Work in Progress - Rover

Dec 20th, 2014
222
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.09 KB | None | 0 0
  1. #include <Servo.h>
  2. const int pingPin = 7;
  3. const int minsafedistance = 10;
  4. int rightDistance, leftDistance;
  5. int leftMotor2 = 3;
  6. int leftMotor7 = 4;
  7. int rightMotor10 = 5;
  8. int rightMotor15 = 6;
  9. // int enablePin1 = 9;
  10. // int enablePin9 = 10;
  11.  
  12.  
  13.  
  14. long duration;
  15. Servo servo;
  16. void setup()
  17. {
  18. servo.attach(8);
  19. servo.write(90);
  20.  
  21. pinMode(leftMotor2, OUTPUT);
  22. pinMode(leftMotor7, OUTPUT);
  23. pinMode(rightMotor10, OUTPUT);
  24. pinMode(rightMotor15, OUTPUT);
  25. // pinMode(enablePin1, OUTPUT);
  26. // pinMode(enablePin9, OUTPUT);
  27.  
  28. // digitalWrite(enablePin1, HIGH);
  29. // digitalWrite(enablePin9, HIGH);
  30.  
  31.  
  32.  
  33. }
  34.  
  35. void loop()
  36. {
  37.  
  38. int fwdDistance = ping();
  39. if(fwdDistance>minsafedistance)
  40. {
  41. GoForward();
  42. }
  43. else
  44. {
  45. Stop();
  46.  
  47. // rightDistance = ping();
  48.  
  49.  
  50.  
  51. // leftDistance = ping();
  52.  
  53. }
  54. }
  55.  
  56. long ping()
  57. {
  58. // Send out PING))) signal pulse
  59. pinMode(pingPin, OUTPUT);
  60. digitalWrite(pingPin, LOW);
  61. delayMicroseconds(2);
  62. digitalWrite(pingPin, HIGH);
  63. delayMicroseconds(5);
  64. digitalWrite(pingPin, LOW);
  65.  
  66. //Get duration it takes to receive echo
  67. pinMode(pingPin, INPUT);
  68. duration = pulseIn(pingPin, HIGH);
  69.  
  70. //Convert duration into distance
  71. return duration / 29.3866966 / 2;
  72. }
  73.  
  74.  
  75.  
  76. void GoForward()
  77. {
  78. digitalWrite(leftMotor7, LOW);
  79. digitalWrite(leftMotor2, HIGH);
  80. digitalWrite(rightMotor15, LOW);
  81. digitalWrite(rightMotor10, HIGH);
  82. }
  83.  
  84.  
  85. void GoBackward()
  86. {
  87. digitalWrite(leftMotor2, LOW);
  88. digitalWrite(leftMotor7, HIGH);
  89. digitalWrite(rightMotor10, LOW);
  90. digitalWrite(rightMotor15, HIGH);
  91. }
  92.  
  93.  
  94. void GoLeft()
  95. {
  96. digitalWrite(leftMotor2, LOW);
  97. digitalWrite(leftMotor7, HIGH);
  98. digitalWrite(rightMotor15, LOW);
  99. digitalWrite(rightMotor10, HIGH);
  100. }
  101.  
  102.  
  103. void GoRight()
  104. {
  105. digitalWrite(leftMotor7, LOW);
  106. digitalWrite(leftMotor2, HIGH);
  107. digitalWrite(rightMotor10, LOW);
  108. digitalWrite(rightMotor15, HIGH);
  109. }
  110.  
  111.  
  112. void Stop()
  113. {
  114. digitalWrite(leftMotor7, LOW);
  115. digitalWrite(leftMotor2, LOW);
  116. digitalWrite(rightMotor10, LOW);
  117. digitalWrite(rightMotor15, LOW);
  118. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement