Advertisement
safwan092

sumoRobot-base-code

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