Advertisement
Guest User

Untitled

a guest
May 28th, 2016
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.15 KB | None | 0 0
  1. #include <Servo.h>
  2. #include <Ultrasonic.h>
  3.  
  4. Ultrasonic ultrasonic(9, 10); // trig echo
  5.  
  6. Servo myservo;
  7.  
  8.  
  9. void up() {
  10. digitalWrite (3, HIGH);
  11. digitalWrite (4, LOW); // левый вперед
  12.  
  13. digitalWrite (6, HIGH);
  14. digitalWrite (5, LOW); // правый вперед
  15. }
  16.  
  17. void down(){
  18.  
  19. digitalWrite (3, LOW); // левый назад
  20. digitalWrite (4, HIGH) ;
  21.  
  22. digitalWrite (6, LOW); // правый назад
  23. digitalWrite (5, HIGH) ;
  24. }
  25.  
  26. void left(){
  27. digitalWrite (3, LOW); // левый назад
  28. digitalWrite (4, HIGH) ;
  29.  
  30. digitalWrite (6, HIGH);
  31. digitalWrite (5, LOW); // правый вперед
  32. }
  33.  
  34. void right() {
  35. digitalWrite (6, LOW); // правый назад
  36. digitalWrite (5, HIGH) ;
  37.  
  38. digitalWrite (3, HIGH);
  39. digitalWrite (4, LOW); // левый вперед
  40.  
  41. }
  42.  
  43. void stopm() {
  44.  
  45. digitalWrite (6, LOW);
  46. digitalWrite (5, LOW) ;
  47.  
  48. digitalWrite (3, LOW);
  49. digitalWrite (4, LOW);
  50. }
  51.  
  52.  
  53.  
  54. int servo_points[5] = {0, 45, 90, 135,180};
  55.  
  56. void setup()
  57. {
  58. Serial.begin(9600);
  59. myservo.attach(8);
  60. // input1 pin 3
  61. // input 2 pin 4
  62. // input 3 pin 5
  63. // input 4 pin 6
  64. pinMode(3, OUTPUT);
  65. pinMode(4, OUTPUT);
  66. pinMode(5, OUTPUT);
  67. pinMode(6, OUTPUT);
  68.  
  69.  
  70.  
  71. }
  72.  
  73.  
  74. void loop()
  75.  
  76. // 550 - 90 градусов
  77. {
  78. int rast [5];
  79. int rast_max = 0;
  80. int pos ;
  81. for ( int i = 0; i < 6 ; i++ )
  82. {
  83. myservo.write(servo_points[i]);
  84. delay(400);
  85. rast[i] = ultrasonic.Ranging(CM);
  86.  
  87. Serial.println(rast[i]);
  88.  
  89. }
  90.  
  91. for ( int i = 0; i < 6 ; i++ )
  92. {
  93. if (rast[i] > rast_max )
  94. {
  95. rast_max = rast[i];
  96. pos = servo_points[i];
  97. }
  98. }
  99. Serial.print("rast_max");
  100. Serial.println(rast_max);
  101. Serial.print("pos");
  102. Serial.println(pos);
  103.  
  104. if (pos = 0)
  105. {
  106. left();
  107. delay(650);
  108. stopm();
  109. Serial.println("go left 90");
  110. }
  111. if (pos = 45)
  112. {
  113. left();
  114. delay(325);
  115. stopm();
  116. Serial.println("go left 45");
  117. }
  118.  
  119. if (pos = 135)
  120. {
  121. right();
  122. delay(325);
  123. stopm();
  124. Serial.println("go right 45");
  125. }
  126. if (pos = 180)
  127. {
  128. right();
  129. delay(650);
  130. stopm();
  131. Serial.println("go right 90");
  132. }
  133.  
  134.  
  135. myservo.write(90);
  136. delay(1000);
  137.  
  138.  
  139.  
  140. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement