0% found this document useful (0 votes)
7 views

Arduino Code

The document provides an Arduino code for controlling a robot using ultrasonic and infrared sensors. It includes functions for moving forward, backward, rotating, and stopping based on sensor readings. The code is designed to navigate obstacles and follow lines using the specified sensors.

Uploaded by

fatmagulc2003
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

Arduino Code

The document provides an Arduino code for controlling a robot using ultrasonic and infrared sensors. It includes functions for moving forward, backward, rotating, and stopping based on sensor readings. The code is designed to navigate obstacles and follow lines using the specified sensors.

Uploaded by

fatmagulc2003
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

/*

by ahmed Azouz
https://www.instructables.com/id/How-to-Make-Ardu...

Download the lib from here first


https://github.com/ErickSimoes/Ultrasonic/blob/ma...

*/
#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.read();
ROTATE(200); // start rotete if (distance < 20){
Stop();
while (distance < 20 ) {
FORWARD(255);
distance = ultrasonic.read();
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);
}

You might also like