Advertisement
safwan092

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

Feb 2nd, 2018
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.30 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);
  31.  
  32.   front();
  33.   delay(300);
  34. }
  35.  
  36. void loop() {
  37.  
  38.   sensorState = digitalRead(sensorPin);
  39.  
  40.   if (sensorState == HIGH) {
  41.     digitalWrite(LEDPin, HIGH);
  42.     fight();
  43.   }
  44.   else {
  45.     digitalWrite(LEDPin, LOW);
  46.     back();
  47.     delay(200);
  48.     right();
  49.     delay(500);
  50.   }
  51.  
  52. }
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74. void stopM() {
  75.   analogWrite(ENA, 0);
  76.   analogWrite(ENB, 0);
  77. }
  78.  
  79. void front() { //left
  80.   digitalWrite(IN1, 0);
  81.   digitalWrite(IN2, 1);
  82.   digitalWrite(IN3, 0);
  83.   digitalWrite(IN4, 1);
  84.   analogWrite(ENA, 150);//255);
  85.   analogWrite(ENB, 150);//255);
  86. }
  87.  
  88. void back() { //right
  89.   digitalWrite(IN1, 1);
  90.   digitalWrite(IN2, 0);
  91.   digitalWrite(IN3, 1);
  92.   digitalWrite(IN4, 0);
  93.   analogWrite(ENA, 150);//255);
  94.   analogWrite(ENB, 150);//255);
  95. }
  96.  
  97. void right() { //back
  98.   digitalWrite(IN1, 1);
  99.   digitalWrite(IN2, 0);
  100.   digitalWrite(IN3, 0);
  101.   digitalWrite(IN4, 1);
  102.   analogWrite(ENA, 255);//150);
  103.   analogWrite(ENB, 255);//150);
  104. }
  105.  
  106. void left() { //front
  107.   digitalWrite(IN1, 0);
  108.   digitalWrite(IN2, 1);
  109.   digitalWrite(IN3, 1);
  110.   digitalWrite(IN4, 0);
  111.   analogWrite(ENA, 255);//150);
  112.   analogWrite(ENB, 255);//150);
  113. }
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120. void fight() {
  121.   digitalWrite(trigPin, LOW);
  122.   delayMicroseconds(2);
  123.  
  124.   digitalWrite(trigPin, HIGH);
  125.   delayMicroseconds(10);
  126.   digitalWrite(trigPin, LOW);
  127.   duration = pulseIn(echoPin, HIGH);
  128.  
  129.   //Calculate the distance (in cm) based on the speed of sound.
  130.   distance = duration / 58.2;
  131.  
  132.   if (distance <= maximumRange) {
  133.     digitalWrite(LEDPin, HIGH);
  134.     front();
  135.     delay(200);
  136.   }
  137.   else {
  138.     digitalWrite(LEDPin, LOW);
  139.     right();
  140.     delay(500);
  141.   }
  142. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement