Advertisement
safwan092

sumo-robot-after-motor-positions-edited-and-speeds

Feb 2nd, 2018
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.03 KB | None | 0 0
  1.  
  2. #define sensorPin 4//3     // the number of the sensor pin
  3. int sensorState = 0;         // variable for reading the sensor status
  4.  
  5. #define echoPin 11//7 // Echo Pin
  6. #define trigPin 12//8 // Trigger Pin
  7. int maximumRange = 20; // Maximum range needed
  8. long duration, distance; // Duration used to calculate distance
  9.  
  10.  
  11. #define LEDPin 13 // Onboard LED
  12.  
  13. int IN1 = 5;
  14. int IN2 = 6;
  15. int IN3 = 7;
  16. int IN4 = 8;
  17. int ENA = 9;
  18. int ENB = 10;
  19.  
  20. void setup() {
  21.   //Serial.begin (9600);
  22.   delay(5000);
  23.   for (int i = 5; i < 11; i ++)
  24.   {
  25.     pinMode(i, OUTPUT);
  26.   }
  27.   pinMode(trigPin, OUTPUT);
  28.   pinMode(echoPin, INPUT);
  29.   pinMode(sensorPin, INPUT);
  30.   pinMode(LEDPin, OUTPUT); // Use LED indicator (if required)
  31.  
  32.   front();
  33.   delay(300);
  34. }
  35.  
  36. void loop() {
  37.  
  38.   sensorState = digitalRead(sensorPin);
  39.   // if the sensorState is HIGH:
  40.   if (sensorState == HIGH) {
  41.     digitalWrite(LEDPin, HIGH);
  42.     fight();
  43.   }
  44.   else {
  45.     digitalWrite(LEDPin, LOW);
  46.     back();
  47.     delay(200);
  48.     left();
  49.     delay(500);
  50.     //stopM();
  51.     //delay(250);
  52.   }
  53.   /*
  54.     if (black() == 0) {
  55.     //digitalWrite(LEDPin, HIGH);
  56.     right();
  57.     delay(250);
  58.     front();
  59.     delay(250);
  60.     fight();
  61.     } else if (black() == 1) {
  62.     digitalWrite(LEDPin, LOW);
  63.     back();
  64.     delay(250);
  65.     left();
  66.     delay(250);
  67.     stopM();
  68.     delay(250);
  69.     }*/
  70.  
  71. }
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93. void stopM() {
  94.   analogWrite(ENA, 0);
  95.   analogWrite(ENB, 0);
  96. }
  97.  
  98. void front() { //left
  99.   digitalWrite(IN1, 0);
  100.   digitalWrite(IN2, 1);
  101.   digitalWrite(IN3, 0);
  102.   digitalWrite(IN4, 1);
  103.   analogWrite(ENA, 150);//255);
  104.   analogWrite(ENB, 150);//255);
  105. }
  106.  
  107. void back() { //right
  108.   digitalWrite(IN1, 1);
  109.   digitalWrite(IN2, 0);
  110.   digitalWrite(IN3, 1);
  111.   digitalWrite(IN4, 0);
  112.   analogWrite(ENA, 150);//255);
  113.   analogWrite(ENB, 150);//255);
  114. }
  115.  
  116. void right() { //back
  117.   digitalWrite(IN1, 1);
  118.   digitalWrite(IN2, 0);
  119.   digitalWrite(IN3, 0);
  120.   digitalWrite(IN4, 1);
  121.   analogWrite(ENA, 255);//150);
  122.   analogWrite(ENB, 255);//150);
  123. }
  124.  
  125. void left() { //front
  126.   digitalWrite(IN1, 0);
  127.   digitalWrite(IN2, 1);
  128.   digitalWrite(IN3, 1);
  129.   digitalWrite(IN4, 0);
  130.   analogWrite(ENA, 255);//150);
  131.   analogWrite(ENB, 255);//150);
  132. }
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139. void fight() {
  140.   digitalWrite(trigPin, LOW);
  141.   delayMicroseconds(2);
  142.  
  143.   digitalWrite(trigPin, HIGH);
  144.   delayMicroseconds(10);
  145.   digitalWrite(trigPin, LOW);
  146.   duration = pulseIn(echoPin, HIGH);
  147.  
  148.   //Calculate the distance (in cm) based on the speed of sound.
  149.   distance = duration / 58.2;
  150.  
  151.   if (distance <= maximumRange) {
  152.     /* Send a negative number to computer and Turn LED ON
  153.       to indicate "out of range" */
  154.     //Serial.println(distance);
  155.     digitalWrite(LEDPin, HIGH);
  156.     front();
  157.     delay(200);
  158.   }
  159.   else {
  160.     /* Send the distance to the computer using Serial protocol, and
  161.       turn LED OFF to indicate successful reading. */
  162.     //Serial.println(distance);
  163.     digitalWrite(LEDPin, LOW);
  164.     left();
  165.     delay(500);
  166.   }
  167.   //Delay 50ms before next reading.
  168.   //delay(5);
  169. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement