Advertisement
safwan092

Sumo-test

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