Lukas4186

Robot Test

Sep 10th, 2016
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.80 KB | None | 0 0
  1. //Lukas Klett - 2016
  2. #include <NewPing.h>
  3. #define Trigger_Pin1 3
  4. #define Trigger_Pin2 5
  5.  
  6. #define Echo_Pin1  2  //Left Sensor
  7. #define Echo_Pin2 4   //Right Sensor
  8.  
  9. #define MotorPin1 11 //Left Forward
  10. #define MotorPin2 10 //Left Backwards
  11. #define MotorPin3 9  //Right Forward
  12. #define MotorPin4 6  //Right Backwards
  13.  
  14. #define Max_Distance 200
  15.  
  16. NewPing sonar1(Trigger_Pin1, Echo_Pin1, Max_Distance);
  17. NewPing sonar2(Trigger_Pin2, Echo_Pin2, Max_Distance);
  18.  
  19. int number = 0;
  20.  
  21. void setup() {
  22.   Serial.begin(115200);
  23.   pinMode(MotorPin1, OUTPUT);
  24.   pinMode(MotorPin2, OUTPUT);
  25.   pinMode(MotorPin3, OUTPUT);
  26.   pinMode(MotorPin4, OUTPUT);
  27. }
  28.  
  29. void loop() {
  30.   delay(50);        
  31.                
  32.   unsigned int uS_1 = sonar1.ping();
  33.   unsigned int uS_2 = sonar2.ping();
  34.  
  35.   int distance1 = sonar1.convert_cm(uS_1); //Left Distance
  36.   int distance2 = sonar2.convert_cm(uS_2); //Right Distance
  37.  
  38.   /*Serial.print("Left distance to object: ");
  39.   Serial.print(distance1);
  40.   Serial.println("cm");
  41.  
  42.   Serial.print("Right distance to object: ");
  43.   Serial.print(distance2);
  44.   Serial.println("cm");*/
  45.  
  46.   if((distance1 <= 10 && distance2 <= 10)){  //Move Backwards
  47.     analogWrite(MotorPin1, 0);
  48.     analogWrite(MotorPin2, 255);
  49.     analogWrite(MotorPin3, 0);
  50.     analogWrite(MotorPin4, 255);
  51.     number++;
  52.     delay(1500);
  53.     Serial.println("Moves Backwards");
  54.    
  55.     if((number % 2 == 0) && (distance1 > 10 && distance2 > 10)){
  56.       analogWrite(MotorPin1, 255);
  57.       analogWrite(MotorPin2, 0);
  58.       analogWrite(MotorPin3, 0);
  59.       analogWrite(MotorPin4, 255);
  60.       delay(1000);
  61.       Serial.println("Turns to the right");
  62.     }
  63.     if(number % 2 != 0 && (distance1 > 10 && distance2 > 10)){
  64.       analogWrite(MotorPin1, 0);
  65.       analogWrite(MotorPin2, 255);
  66.       analogWrite(MotorPin3, 255);
  67.       analogWrite(MotorPin4, 0);
  68.       delay(1000);
  69.       Serial.println("Turns to the left");
  70.     }
  71.   }
  72.  
  73.   if(number > 100){
  74.     number == 0;
  75.   }
  76.  
  77.   if(distance1 <= 10 && distance2 > 10){ //If Object appears on the left side dodge it to the right
  78.     analogWrite(MotorPin1, 255);
  79.     analogWrite(MotorPin2, 0);
  80.     analogWrite(MotorPin3, 0);
  81.     analogWrite(MotorPin4, 255);
  82.     delay(1000);
  83.     Serial.println("Dodges Object to the right");
  84.   }
  85.  
  86.   if(distance2 <= 10 && distance1 > 10){ //If Object appears on the right side dodge it to the left
  87.     analogWrite(MotorPin1, 0);
  88.     analogWrite(MotorPin2, 255);
  89.     analogWrite(MotorPin3, 255);
  90.     analogWrite(MotorPin4, 0);
  91.     delay(1000);
  92.     Serial.println("Dodges Object to the left");
  93.   }
  94.  
  95.   if(distance1 > 10 && distance2 > 10){
  96.     analogWrite(MotorPin1, 255);
  97.     analogWrite(MotorPin2, 0);
  98.     analogWrite(MotorPin3, 255);
  99.     analogWrite(MotorPin4, 0);
  100.     Serial.println("Moves forward");
  101.   }
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109. }
Advertisement
Add Comment
Please, Sign In to add comment