Robot Esquiva Obstaculos
Robot Esquiva Obstaculos
Robot Esquiva Obstaculos
#include <Servo.h>
Servo myservo;
// Definición de los pines de control de giro de los motores In1, In2, In3 e In4
int Motor1A = 13;
int Motor1B = 12;
int Motor2C = 8;
int Motor2D = 10;
// Configuración inicial
void setup() {
delay(1000);
// Ejecución contínua
void loop() {
delay(50);
distance = medirDistancia();
Serial.println(distance);
// Miramos a la derecha
myservo.write(10);
delay(600);
servoReadRight = medirDistancia();
// Miramos a la izquierda
myservo.write(170);
delay(600);
servoReadLeft = medirDistancia();
// Miramos de frente
myservo.write(90);
delay(600);
void stopCar(){
// Paramos el carrito
digitalWrite(Motor1A, LOW);
digitalWrite(Motor2D, LOW);
digitalWrite(Motor1A, LOW);
digitalWrite(Motor2D,LOW);
}
void turnRightCar(){
// Configuramos sentido de giro para dirar a la derecha
digitalWrite(Motor1A, LOW);
digitalWrite(Motor2D,LOW);
digitalWrite(Motor1A, HIGH);
digitalWrite(Motor2D,LOW);
delay(250);
}
void turnLeftCar(){
// Configuramos sentido de giro para dirar a la izquierda
digitalWrite(Motor1A,LOW);
digitalWrite(Motor2D, LOW);
digitalWrite(Motor1A,LOW);
digitalWrite(Motor2D, HIGH);
delay(250);
}
void moveForwardCar(){
// Configuramos sentido de giro para avanzar
digitalWrite(Motor1A, LOW);
digitalWrite(Motor2D, LOW);
digitalWrite(Motor1A, HIGH);
digitalWrite(Motor2D,HIGH);
}
int medirDistancia(){
// Lanzamos pulso de sonido
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);