Advertisement
Guest User

Untitled

a guest
Oct 13th, 2015
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.19 KB | None | 0 0
  1. #include <Servo.h>
  2. #define trigRight 11
  3. #define echoRight 10
  4. #define trigLeft 13
  5. #define echoLeft 12
  6.  
  7. Servo esc;
  8. Servo steering;
  9.  
  10. long i, j, duration, left_distance, right_distance, distance, r0, r1, r2, r3, r4, l0, l1, l2, l3, l4;
  11.  
  12. void setup() {
  13. esc.attach(9);
  14. steering.attach(8);
  15. Serial.begin(9600);
  16. pinMode(trigRight, OUTPUT);
  17. pinMode(echoRight, INPUT);
  18. pinMode(trigLeft, OUTPUT);
  19. pinMode(echoLeft, INPUT);
  20. esc.write(90);
  21. delay(100);
  22. esc.write(180);
  23. delay(100);
  24. esc.write(0);
  25. delay(100);
  26. esc.write(90);
  27. }
  28.  
  29. void loop() {
  30.  
  31. restart:
  32.  
  33. esc.write(99.5);
  34.  
  35. SonarSensor(trigRight, echoRight);
  36. right_distance = distance;
  37. SonarSensor(trigLeft, echoLeft);
  38. left_distance = distance;
  39.  
  40. Serial.print(left_distance);
  41. Serial.print(" - ");
  42. Serial.println(right_distance);
  43.  
  44. if (left_distance <= 3 || left_distance >= 2000){
  45. goto restart;
  46. }
  47.  
  48. if (right_distance <= 3 || right_distance >= 2000){
  49. goto restart;
  50. }
  51.  
  52. if (left_distance < right_distance){
  53. if ( left_distance <= 100 && left_distance > 3) {
  54. steering.write(180);
  55. delay(200);
  56. steering.write(90);
  57. delay(200);
  58. }
  59.  
  60. else if ((left_distance > 100) && (left_distance < 150)){
  61. steering.write(180);
  62. delay(200);
  63. steering.write(90);
  64. delay(200);
  65. }
  66.  
  67. else{
  68. steering.write(90);
  69. delay(200);
  70. }
  71. }
  72.  
  73. else if (right_distance < left_distance){
  74. if (right_distance <= 100 && right_distance > 3){
  75. steering.write(0);
  76. delay(200);
  77. steering.write(90);
  78. delay(200);
  79. }
  80. else if( (right_distance > 100) && (right_distance < 150)){
  81. steering.write(0);
  82. delay(200);
  83. steering.write(90);
  84. delay(200);
  85. }
  86. else{
  87. steering.write(90);
  88. delay(200);
  89. }
  90. }
  91. else {
  92. esc.write(99.5);
  93. }
  94. }
  95.  
  96. void SonarSensor(int trigPin,int echoPin)
  97. {
  98. digitalWrite(trigPin, LOW);
  99. delayMicroseconds(2);
  100. digitalWrite(trigPin, HIGH);
  101. delayMicroseconds(10);
  102. digitalWrite(trigPin, LOW);
  103. duration = pulseIn(echoPin, HIGH);
  104. distance = (duration/2) / 29.1;
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement