Advertisement
safwan092

sumo-test-ultrasonic

Jan 31st, 2018
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.50 KB | None | 0 0
  1.  
  2. #define sensorPin 4           // the number of the sensor pin
  3. int sensorState = 0;         // variable for reading the sensor status
  4.  
  5. #define echoPin 11 // Echo Pin
  6. #define trigPin 12 // 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.   delay(5000);
  22.   for (int i = 5; i < 11; i ++)
  23.   {
  24.     pinMode(i, OUTPUT);
  25.   }
  26.   pinMode(trigPin, OUTPUT);
  27.   pinMode(echoPin, INPUT);
  28.   pinMode(sensorPin, INPUT);
  29.   pinMode(LEDPin, OUTPUT);
  30.  
  31.   front();
  32.   delay(300);
  33. }
  34.  
  35. void loop() {
  36.  
  37.   fight();
  38.   delay(50);
  39. /*
  40.   sensorState = digitalRead(sensorPin);
  41.   // if the sensorState is HIGH:
  42.   if (sensorState == HIGH) {
  43.     digitalWrite(LEDPin, HIGH);
  44.     //fight();
  45.     ///////////////////
  46.     stopM();
  47.     delay(1000);
  48.     ///////////////////
  49.   }
  50.   else {
  51.     digitalWrite(LEDPin, LOW);
  52.     back();
  53.     delay(200);
  54.     ///////////////////
  55.     //left();
  56.     //delay(500);
  57.     ///////////////////
  58.   }*/
  59. }
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81. void stopM() {
  82.   analogWrite(ENA, 0);
  83.   analogWrite(ENB, 0);
  84. }
  85.  
  86. void left() {
  87.   digitalWrite(IN1, 0);
  88.   digitalWrite(IN2, 1);
  89.   digitalWrite(IN3, 0);
  90.   digitalWrite(IN4, 1);
  91.   analogWrite(ENA, 255);
  92.   analogWrite(ENB, 255);
  93. }
  94.  
  95. void right() {
  96.   digitalWrite(IN1, 1);
  97.   digitalWrite(IN2, 0);
  98.   digitalWrite(IN3, 1);
  99.   digitalWrite(IN4, 0);
  100.   analogWrite(ENA, 255);
  101.   analogWrite(ENB, 255);
  102. }
  103.  
  104. void back() {
  105.   digitalWrite(IN1, 1);
  106.   digitalWrite(IN2, 0);
  107.   digitalWrite(IN3, 0);
  108.   digitalWrite(IN4, 1);
  109.   analogWrite(ENA, 150);
  110.   analogWrite(ENB, 150);
  111. }
  112.  
  113. void front() {
  114.   digitalWrite(IN1, 0);
  115.   digitalWrite(IN2, 1);
  116.   digitalWrite(IN3, 1);
  117.   digitalWrite(IN4, 0);
  118.   analogWrite(ENA, 150);
  119.   analogWrite(ENB, 150);
  120. }
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127. void fight() {
  128.   digitalWrite(trigPin, LOW);
  129.   delayMicroseconds(2);
  130.  
  131.   digitalWrite(trigPin, HIGH);
  132.   delayMicroseconds(10);
  133.   digitalWrite(trigPin, LOW);
  134.   duration = pulseIn(echoPin, HIGH);
  135.  
  136.   //Calculate the distance (in cm) based on the speed of sound.
  137.   distance = duration / 58.2;
  138.  
  139.   if (distance <= maximumRange) {
  140.     Serial.println("Attacking !!");
  141.     digitalWrite(LEDPin, HIGH);
  142.     front();
  143.     delay(200);
  144.   }
  145.   else {
  146.     Serial.println(distance);
  147.     digitalWrite(LEDPin, LOW);
  148.     left();
  149.     delay(500);
  150.   }
  151.   //Delay 50ms before next reading.
  152.   //delay(5);
  153. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement