Advertisement
Jim421616

L298N_car_motor_servo

Jul 15th, 2018
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.30 KB | None | 0 0
  1. #include <Servo.h>
  2.  
  3. // motor one
  4. int enA = 9;    //enable PWM for right motor
  5. int rightFwd = 7;    //right forward
  6. int rightBack = 6;    //right backward
  7. // motor two
  8. int enB = 10;   //enable PWM for left motor
  9. int leftFwd = 5;    //left forward
  10. int leftBack = 4;    //left backward
  11.  
  12. //ultrasonic sensor
  13. int trig = 2;
  14. int echo = 3;
  15.  
  16. //servo for looking left and right
  17. //int servoPin = 8;
  18.  
  19. int runSpeed = 255;
  20. int distance;
  21. int leftDistance;
  22. int rightDistance;
  23. //int servoCenter = 100;
  24. //int lookAngle = 60;
  25.  
  26. //Servo servoMotor;
  27.  
  28. void setup()
  29. {
  30.   Serial.begin(9600);
  31.   pinMode(enA, OUTPUT);
  32.   pinMode(enB, OUTPUT);
  33.   pinMode(rightFwd, OUTPUT);
  34.   pinMode(rightBack, OUTPUT);
  35.   pinMode(leftFwd, OUTPUT);
  36.   pinMode(leftBack, OUTPUT);
  37.   pinMode(trig, OUTPUT);
  38.   pinMode(echo, INPUT);
  39. //  pinMode(servoPin, OUTPUT);
  40.  
  41. //  servoMotor.attach(servoPin);
  42. //  servoMotor.write(servoCenter);
  43. }
  44.  
  45. void loop()
  46. {
  47.   test();
  48. }
  49.  
  50. void goForward()
  51. {
  52.   Serial.println("Going forward");
  53.   analogWrite(enA, runSpeed*3/4);
  54.   analogWrite(enB, runSpeed*3/4);
  55.   digitalWrite(leftBack,LOW);
  56.   digitalWrite(leftFwd,HIGH);
  57.   digitalWrite(rightBack,LOW);
  58.   digitalWrite(rightFwd,HIGH);
  59. }
  60.  
  61. void goBackward()
  62. {
  63.   Serial.println("Going backward");
  64.   analogWrite(enA, runSpeed*3/4);
  65.   analogWrite(enB, runSpeed*3/4);
  66.   digitalWrite(leftBack,HIGH);
  67.   digitalWrite(leftFwd,LOW);
  68.   digitalWrite(rightBack,HIGH);
  69.   digitalWrite(rightFwd,LOW);
  70. }
  71.  
  72. void turnLeft()
  73. {
  74.   Serial.println("Turning left");
  75.   analogWrite(enA, runSpeed*3/4);
  76.   analogWrite(enB, runSpeed*3/4);
  77.   digitalWrite(leftBack,HIGH);
  78.   digitalWrite(leftFwd,LOW);
  79.   digitalWrite(rightBack,LOW);
  80.   digitalWrite(rightFwd,HIGH);
  81. }
  82.  
  83. void turnRight()
  84. {
  85.   Serial.println("Turning right");
  86.   analogWrite(enA, runSpeed*3/4);
  87.   analogWrite(enB, runSpeed*3/4);
  88.   digitalWrite(leftBack,LOW);
  89.   digitalWrite(leftFwd,HIGH);
  90.   digitalWrite(rightBack,HIGH);
  91.   digitalWrite(rightFwd,LOW);
  92. }
  93.  
  94. void allStop()
  95. {
  96.   Serial.println("Stopping");
  97.   digitalWrite(leftBack,LOW);
  98.   digitalWrite(leftFwd,LOW);
  99.   digitalWrite(rightBack,LOW);
  100.   digitalWrite(rightFwd,LOW);
  101. }
  102.  
  103. int getDistance()
  104. {
  105.   //  Getting the distance from the sensor
  106.   long duration, distance;
  107.   digitalWrite(trig,HIGH);
  108.   delayMicroseconds(1000);
  109.   digitalWrite(trig, LOW);
  110.   duration=pulseIn(echo, HIGH);
  111.   distance =(duration/2)/29.1;
  112.   Serial.print(distance);
  113.   Serial.println("CM");
  114.   delay(10);
  115.   return distance;
  116. }
  117.  
  118. //int lookRight()
  119. //{
  120. //  Serial.println("Looking right\n");  
  121. //  servoMotor.write(50);
  122. //  delay(500);
  123. //  int distance = getDistance();
  124. //  delay(100);
  125. //  servoMotor.write(servoCenter - lookAngle);
  126. //  delay(100);
  127. //  servoMotor.write(servoCenter);
  128. //  return distance;
  129. //}
  130. //
  131. //int lookLeft()
  132. //{
  133. //  Serial.println("Looking left\n");
  134. //  servoMotor.write(servoCenter + lookAngle);
  135. //  delay(500);
  136. //  int distance = getDistance();
  137. //  delay(100);
  138. //  servoMotor.write(servoCenter);
  139. //  return distance;
  140. //  delay(100);
  141. //}
  142.  
  143. void test()
  144. {
  145.   getDistance();
  146.   goForward();
  147.   delay(1000);
  148.   allStop();
  149.   delay(1000);
  150.   goBackward();
  151.   delay(1000);
  152.   allStop();
  153.   delay(1000);
  154.   turnLeft();
  155.   delay(1000);
  156.   allStop();
  157.   delay(1000);
  158.   turnRight();
  159.   delay(1000);
  160.   allStop();
  161.   delay(1000);
  162. //  lookLeft();
  163. //  lookRight();
  164. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement