Arduino Obstacle Avoiding Robot (Tinkercad Tutorial)
by marcosan in Circuits > Arduino
10 Views, 0 Favorites, 0 Comments
Arduino Obstacle Avoiding Robot (Tinkercad Tutorial)
learn how to code and this robot
Supplies
dc motors, Arduino, servo motor, ultrasonic sensor ,battery(powersupply), L293D
Open Tinkercad .Start a new circuit project. Use all the components needed
connect everything follow the picture above
coding:
#define RMS 5
#define RMP 6
#define RMN 7
#define LMS 4
#define LMP 2
#define LMN 3
const int trigPin = 11;
const int echoPin = 12;
float duration, distance;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(RMS, OUTPUT);
pinMode(RMP, OUTPUT);
pinMode(RMN, OUTPUT);
pinMode(LMS, OUTPUT);
pinMode(LMP, OUTPUT);
pinMode(LMN, OUTPUT);
digitalWrite(RMS, HIGH);
digitalWrite(LMS, HIGH);
Serial.begin(9600);
}
void loop() {
sense();
if ( distance > 50 ){
forward();
}
else {
stops();
}
}
void sense() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration*.0343)/2;
Serial.print("Distance: ");
Serial.println(distance);
delay(100);
}
void forward() {
digitalWrite(RMS, HIGH);
digitalWrite(LMS, HIGH);
digitalWrite(RMP, HIGH);
digitalWrite(RMN, LOW);
digitalWrite(LMP, HIGH);
digitalWrite(LMN, LOW);
}
void stops(){
digitalWrite(RMP, LOW);
digitalWrite(RMN, LOW);
digitalWrite(LMP, LOW);
digitalWrite(LMN, LOW);
}
void backward(){
digitalWrite(RMP, LOW);
digitalWrite(RMN, HIGH);
digitalWrite(LMP, LOW);
digitalWrite(LMN, HIGH);
}
void left(){
digitalWrite(RMP, HIGH);
digitalWrite(RMN, LOW);
digitalWrite(LMP, LOW);
digitalWrite(LMN, LOW);
}
void right(){
digitalWrite(RMP, LOW);
digitalWrite(RMN, LOW);
digitalWrite(LMP, HIGH);
digitalWrite(LMN, LOW);
}
the logic:
When the ultrasonic sensor detect a certain object/obstacle it will stop go backward and turn around to other way
congrats now you learn how to make obstacle robot