Advertisement
safwan092

Untitled

Feb 7th, 2023
18
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.74 KB | None | 0 0
  1.  
  2. #define left A5
  3. #define center A4
  4. #define right A3
  5.  
  6. //motor one
  7. #define ENA 5
  8. #define IN1 2
  9. #define IN2 7
  10.  
  11. //motor two
  12. #define ENB 6
  13. #define IN3 4
  14. #define IN4 3
  15.  
  16. #define echoPin A0 // Echo Pin
  17. #define trigPin A1 // Trigger Pin
  18.  
  19. int maximumRange = 20; // Maximum range to start attacking
  20.  
  21. long duration, distance; // Variables to calculate distance
  22.  
  23. int Speed = 100; // speed of this robot
  24. int buzzer = 8;
  25. bool leftV ;
  26. bool centerV ;
  27. bool rightV ;
  28.  
  29.  
  30. void setup()
  31. {
  32. Serial.begin(9600);
  33. pinMode(left, INPUT);
  34. pinMode(center, INPUT);
  35. pinMode(right, INPUT);
  36.  
  37. pinMode(ENA, OUTPUT);
  38. pinMode(IN1, OUTPUT);
  39. pinMode(IN2, OUTPUT);
  40. pinMode(IN3, OUTPUT);
  41. pinMode(IN4, OUTPUT);
  42. pinMode(ENB, OUTPUT);
  43.  
  44. pinMode(trigPin, OUTPUT);
  45. pinMode(echoPin, INPUT);
  46. pinMode(buzzer, OUTPUT);
  47. }
  48.  
  49. void loop() {
  50. //carforward();
  51. //delay(1000);
  52. //carturnleft();
  53. //delay(1000);
  54. //carturnright();
  55. //delay(1000);
  56.  
  57.  
  58. leftV = digitalRead(left);
  59. centerV = digitalRead(center);
  60. rightV = digitalRead(right);
  61.  
  62. Serial.print(leftV);
  63. Serial.print(" ");
  64. Serial.print(centerV);
  65. Serial.print(" ");
  66. Serial.println(rightV);
  67. // Triggering the Ultrasonic Wave :
  68. digitalWrite(trigPin, LOW);// |
  69. delayMicroseconds(2);// |
  70. digitalWrite(trigPin, HIGH);// |
  71. delayMicroseconds(10);// |
  72. digitalWrite(trigPin, LOW);// |
  73. //---------------------------------
  74. //Sensing Ultrasonic Wave on echo Pin and callculating the duration
  75. duration = pulseIn(echoPin, HIGH);
  76.  
  77. //Calculate the distance (in cm) based on the speed of sound.
  78. distance = duration / 58.2;
  79. // Serial.println(distance);
  80. // If object in range of attack start Attacking:
  81. // Conrolling car direction based on Infra-Red Sensors:
  82. //Serial.println(rightV);
  83. if (distance <= maximumRange) {
  84. carStop();
  85. digitalWrite(buzzer, HIGH);
  86. }
  87. else {
  88. LineFollowing();
  89. digitalWrite(buzzer, LOW);
  90. }
  91.  
  92. }//end of LOOP
  93. void LineFollowing() {
  94. if (leftV == 0 && centerV == 1 && rightV == 0) {
  95. carforward();
  96. Serial.println("forward");
  97. delay(200);
  98. }
  99. else if (leftV == 1 && centerV == 1 && rightV == 1) {
  100. carStop();
  101. delay(5000);
  102. }
  103. else if (leftV == 1 && centerV == 0 && rightV == 0) {
  104. carturnleft();
  105. Serial.println("Left");
  106. delay(200);
  107. }
  108. else if (leftV == 1 && centerV == 1 && rightV == 0) {
  109. carturnleft();
  110. Serial.println("Left");
  111. delay(200);
  112. } else if (leftV == 0 && centerV == 0 && rightV == 0) {
  113. carturnright();
  114. delay(200);
  115. } else if (leftV == 0 && centerV == 1 && rightV == 1) {
  116. carturnright();
  117. Serial.println("Right");
  118. delay(200);
  119. }
  120. else if (leftV == 0 && centerV == 0 && rightV == 1) {
  121. carturnright();
  122. Serial.println("Right");
  123. delay(200);
  124. }
  125. }
  126.  
  127.  
  128.  
  129. void carforward() {
  130. analogWrite(ENA, Speed);
  131. analogWrite(ENB, Speed);
  132. digitalWrite(IN1, HIGH);
  133. digitalWrite(IN2, LOW);
  134. digitalWrite(IN3, HIGH);
  135. digitalWrite(IN4, LOW);
  136. }
  137. void carturnright() {
  138. analogWrite(ENA, Speed + 40);
  139. analogWrite(ENB, Speed + 40);
  140. digitalWrite(IN1, LOW);
  141. digitalWrite(IN2, HIGH);
  142. digitalWrite(IN3, HIGH);
  143. digitalWrite(IN4, LOW);
  144. }
  145. void carturnleft() {
  146. analogWrite(ENA, Speed + 40);
  147. analogWrite(ENB, Speed + 40);
  148. digitalWrite(IN1, HIGH);
  149. digitalWrite(IN2, LOW);
  150. digitalWrite(IN3, LOW);
  151. digitalWrite(IN4, HIGH);
  152. }
  153. void carStop() {
  154. digitalWrite(IN1, LOW);
  155. digitalWrite(IN2, LOW);
  156. digitalWrite(IN3, LOW);
  157. digitalWrite(IN4, LOW);
  158. }
  159. void carforwardFast() {
  160. analogWrite(ENA, Speed + 40);
  161. analogWrite(ENB, Speed + 40);
  162. digitalWrite(IN1, HIGH);
  163. digitalWrite(IN2, LOW);
  164. digitalWrite(IN3, HIGH);
  165. digitalWrite(IN4, LOW);
  166. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement