Sumo

Membuat Robot Sumo
Hardware yang di butuhkan :

1. Arduino Uno
2. Sensor Ultrasonic

 

3. Sensor Infrared TCRT5000
 
4. Motor Driver L298N
 

Skema Rangkaian






Sketch
masukan sketch atau program di bawah ini

/*
Project Sumo Robot
Asep Hermawan
omnitracs7labtech.blogspot.com
*/
#include "Ultrasonic.h"
Ultrasonic ultrasonic(4,3);
const int IN1=5;
const int IN2=6;
const int IN3=9;
const int IN4=10;
#define IR_sensor_front A0 // front sensor
#define IR_sensor_back A1 // rear senson
int distance ;

void setup() {
Serial.begin(9600);
delay (5000); // as per sumo compat roles
}

void loop(){
 
 int IR_front = analogRead(IR_sensor_front);
 int IR_back = analogRead(IR_sensor_back);
 distance = ultrasonic.Ranging(CM) ;
 ROTATE(200); // start rotete

 if (distance < 20){
    Stop();
    while (distance < 20 ) {
    FORWARD(255);
    distance = ultrasonic.Ranging(CM);
    IR_front = analogRead(IR_sensor_front);
    IR_back = analogRead(IR_sensor_back);
    if ( IR_front > 650 || IR_back > 650 ) { break;}
    delay(10); }
  }
 
 if (IR_front < 650 )  // < 650 means white line
   {
   Stop();
   delay (50);
   BACKWARD(255);
   delay (500);
   }
 
 if (IR_back < 650 )  //
   {
   Stop();
   delay (50);
   FORWARD(255);
   delay (500);
   }

/* ----------- debugging ----------------
  Serial.print(ultrasonic.Ranging(CM));
  Serial.println("cm");
  Serial.println("IR front :");
  Serial.println(IR_front);
  Serial.println("IR back :");
  Serial.println(IR_back);
*/ --------------------------------------

}

//--------------------------------------------
void FORWARD (int Speed){
  //When we want to let Motor To move forward,
  // just void this part on the loop section .
  analogWrite(IN1,Speed);
  analogWrite(IN2,0);
  analogWrite(IN3,0);
  analogWrite(IN4,Speed);
}

//--------------------------------------------
void BACKWARD (int Speed){
  //When we want to let Motor To move forward,
  // just void this part on the loop section .
  analogWrite(IN1,0);
  analogWrite(IN2,Speed);
  analogWrite(IN3,Speed);
  analogWrite(IN4,0);
}

//--------------------------------------------
void ROTATE (int Speed){
  //When we want to let Motor To Rotate ,
  // just void this part on the loop section .
  analogWrite(IN1,Speed);
  analogWrite(IN2,0);
  analogWrite(IN3,Speed);
  analogWrite(IN4,0);
}

//--------------------------------------------
void Stop(){
  //When we want to  Motor To stop ,
  // just void this part on the loop section .
  analogWrite(IN1,0);
  analogWrite(IN2,0);
  analogWrite(IN3,0);
  analogWrite(IN4,0);
}




















Comments

Popular Posts